Hi - I've been using Guix on a couple slower aarch64 machines for a while. One 
of the recurring pain points with doing so has been that very often, when I go 
to build my home environment after a fresh 'guix pull', most of the packages in 
it do not yet have substitutes built.

I do also have a couple more powerful aarch64 machines available, so build 
offloading is an option. However, one of the machines I use most frequently is 
a small laptop (the MNT Pocket Reform), which is meant to be very portable. 
Even on my more powerful machines, building everything in my home environment 
when no (or very few) substitutes are available may take multiple hours or 
sometimes days, and build offloading being synchronous means the machine needs 
to maintain a constant connection to the build servers during a build. This is 
very inconvenient for a portable machine!

What I would *like* to be able to do is to trigger a build on another more 
powerful machine asynchronously, and then later come back and build my home 
environment using the substitutes from that build. The Guix Build Coordinator 
seems like it may serve my needs fairly well based on the description in this 
blog post: 
https://guix.gnu.org/en/blog/2021/building-derivations-how-complicated-can-it-be/

...but in contrast to building a specific package with 'guix build', it doesn't 
look like I'm able to get the derivation path for a home configuration without 
first building the packages! Running 'guix build -d -f /path/to/home/config' 
attempts to build the packages in my home configuration if they're not yet 
built, rather than returning a derivation that I could submit to the build 
coordinator.

I admit that I don't fully grok derivations yet; is this inevitable for 
derivations, or is it just a limitation of 'guix build' and is there actually a 
way to get at the home configuration derivation prior to building its packages?

Thanks,
- jfred

Reply via email to