So, my efforts to flatpak clang-format have succeeded. If you are willing to interpret 750MB for one program as success.
But hey, the first attempt generated a 17GB package (and took three hours to build on a fast four-core machine compared to 15 minutes for the current iteration), so this looks pretty good by comparison. But I'm still remembering that my first $N$ linux boxes had smaller disks than that. Including the one I analyzed my dissertation data on.
Anyway, this being something I did for work I can't share the actual build manifest with you, but I can offer some pieces of advice:
- Get the code from the git repository rather than downloading tarbals. You can do this in the
source
section of the manifest. - Don't use
buildsystem: cmake
(orcmake-ninja
) which will just build everything, but instead usebuildsystem: simple
and issue the build commands yourself. This lets you doninja clang-format
and thereby get the build system to pick out the minimal set for you. - To figure out exactly what was needed by way of installation I put some
find
s amung the build commands and usedflatback-builder -v
so that I could see all the output. With the build down to a quarter of an hour, several passes through the build process to get it right is cumbersome but tolerable. Remember that you are installing libraries as well as the executable.
I imagine that some size could be saved by a fully static build, but this will do so it's no longer worth my time.
Followup: A simple "static" build of the program occupies between 2.3 and 6.8 MB on the platforms I care about. I think this may be the way to go. I put scare quotes in there because on gcc doesn't like to statically link a number of libraries (glibc for one) so these things are not completely static and accordinagly not cross-platform. But the build is less than fifiteen minutes on my fast test machine, so we can afford to build it as needed while setting up a new repository.