How often do packages get rebuilt? Is it only when there’s a new version?
Yes, only if there's a new version.
The problem in that case would be that a package that is no longer developed (or has very long release cycles) would not receive the fix.
We specifically mark these kinds of packages as outdated
(even deprecated
) if they are older than 90 days
Currently, the stats:
This will improve if we can get more builders, currently we use the free CI provided by github actions
Wow! Thank you for that blog post, it was a great read.
I went through similar experience when experimenting with these tools, wish I can write a similar blog one day. Meanwhile, here's my takeaways:
APE/Cosmo
The project still has a long way to go especially for serving as drop-in-replacement for
CC
/compilers. And most programs I tried compiling required too much work (custom patches all over the place), to ever be able to scale up to thousands of packages.Nix Bundle
This actually works & we used it quite a bit before running into the limitations. Ours is/was based on ralismark/nix-appimage, used bubblewrap & bundled to AppImages : https://github.com/pkgforge/nix-appimage
Guix/Guix pack
I was able to make guix pack relocatable, i.e work outside the store on another system with no guix, but the size was huge (even when compared to Nix bundle). And also guix is quite slow & expensive (even with substitutes), so we had to disable it.
You can still find a few packages from when we used to use guix
Appimage
Them requiring
fuse2
is quite an old issue, and no longer true for appimages made post 2022. We have a lot of these properly made AppImages (even steam) that work on both glibc/musl and require no dependency. Check out: https://github.com/pkgforge-dev/Anylinux-AppImagesPython
There's only one project that provides truly static/relocatable python that work on both glibc/musl: https://github.com/leleliu008/python-distribution
All others are only partially static or meant only for either glibc or musl, not both.
Here, I would also like to introduce Sharun. This is the modern successor of staticx with many features, one of those include ability to pack python/pip packages very easily.
Here are some packages we have made using Sharun
Soarpkgs (Formerly ToolPacks)
There are many more packages now (especially if you configure soar with
soar defconfig --external
): https://docs.pkgforge.dev/soar/readme/packages#totalBut this came at the cost of discontinuing support for Android & Windows
We also had to discontinue
upxed
versions because we used up too much storage (yes, ironic)The installation instruction & script have also been improved since, it now shows you what to do & where packages are installed.
Stal/Ix
We also added this as a source: https://github.com/pkgforge/soarpkgs/issues/191 And have a few packages already:
I also worked closely with the author to introduce binary caches & docker image.
Another project you might be interested in is
ppkg
: https://github.com/leleliu008/ppkgThis one can compile static binaries, even for BSDs. We have this in soarpkgs as well.
DockerC
Similar to your experience, dockerC indeed turned out to be quite underwhelming & we are slowly phasing these out from soarpkgs.