> Thomas Sigurdsen writes: > > >> Secondly, I noted that with, e.g., 'guix package -i kodi' software gets > >> compiled. I understood that GNU Guix is capable of both binary and > >> source packages. Which should I typically expect? Can I choose? Guix is a build-from-source system that can transparently download pre-compiled binary "substitutes" when they are available, and when this substitution method has been authorized by the user. On GuixSD, it's authorized by default. Here's the documentation of substitution: https://www.gnu.org/software/guix/manual/guix.html#Substitutes If your Guix is relatively up to date [0], you've authorized a substitute server, and you can connect to the European internet, then most things will be substituted. But usually there will be a few things to build from source anyways. You can choose to never use substitutes by de-authorizing all substitute signing keys [1] or by passing --no-substitutes to the guix-daemon or any of the commands that build things [2]. Since Guix is ultimately a build-from-source system, there is currently no way to disable building from source. [...] On Thu, Nov 09, 2017 at 09:58:30PM -0800, Chris Marusich wrote: > Anecdotally, I swear I've seen guix build some things from source even > when I did not specify --fallback. Has anybody else seen that occur? That's expected. If substitutes are enabled, when running a command that builds things, Guix asks the substitute servers what can be substituted. If some thing is not available as a substitute, Guix will build it. However, if a substitute is reported to be available, but then the substitution fails for any reason, Guix will stop. '--fallback' is relevant in this case, and is meant to work around flaky substitute servers, network connections, etc. The documentation says: "When substituting a pre-built binary fails, fall back to building packages locally." [2] Substition is considered to fail when Guix is expecting a substitute but the server returns 404, 504, or some other unexpected problem occurs. It is not considered to fail if the server initially reports that no substitute is available. [0] Not more than a few months behind, I'd guess. [1] https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-archive.html [2] --no-substitutes and --fallback are "common build options": https://www.gnu.org/software/guix/manual/html_node/Common-Build-Options.html