On Wednesday 31. August 2016 22.04.35 Ludovic Courtès wrote: > > Paul Boddie <p...@boddie.org.uk> skribis: > > > > OK. I tend to run things in chroots for basic protection against things > > deciding to install stuff in places I would rather keep "clean", and to > > use different distro versions and packages. > > Precisely: Guix only ever touches /gnu/store, /var/guix, and optionally > /etc/guix; nothing else, I swear. ;-)
Right! Well, I may have another try outside a chroot and take your word for it. ;-) [...] > > I noticed that Arch Linux and its relative Parabola GNU/Linux support the > > target machine using distcc as a client and having distcc servers cross- > > compile code for the target architecture. That seems to require the > > coordinating host to be running Arch/Parabola, which then means that some > > bootstrapping needs to be done already. Could a similar thing be done > > with GuixSD? > > Yes, using offloading: > > > https://www.gnu.org/software/guix/manual/html_node/Daemon-Offload-Setup.html > > If your master node is x86_64 and its machines.scm lists a mips64el > machine as in the example above, then “guix build foo -s mips64el-linux” > automatically offloads to that mips machine. (This is the mechanism our > hydra.gnu.org build farm uses.) But this seems like the opposite of the approach in Arch/Parabola: there, the target machine (mips64el) coordinates the build, with the farm machines (x86_64) cross-compiling the sources. The benefit is that architectures with less powerful hardware can have their packages built for them, but this would presumably be contrary to the principles employed by Guix, where native builds are mandatory for viability and, I guess, reproducibility reasons. [...] > When bootstrapping a new architecture, we cross-build the relevant > “bootstrap binaries”, which are statically-linked tools such as GCC, > Guile, as well as libc, and from there we can start building natively: > > https://www.gnu.org/software/guix/manual/html_node/Porting.html Understood, thanks! Paul