Paul Boddie <p...@boddie.org.uk> skribis: > On Wednesday 31. August 2016 22.04.35 Ludovic Courtès wrote:
[...] >> > 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. I should mention that native builds are also subject to offloading. So if your main machine is x86_64 and has a machines.scm file that lists other x86_64 machines, then native builds can be offloaded to them. If you cross-compile from x86_64, it’s a native build that can be offloaded to another x86_64 machine. Hope this clarifies things! Ludo’.