l...@gnu.org (Ludovic Courtès) skribis: > Fixed-output derivations for HTTPS downloads depend on GnuTLS. However, > pkg-config, one of GnuTLS’s dependencies, is now available exclusively > over HTTPS, which creates a bootstrapping issue, as reported by > Christopher W Carpenter and others: > > https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00354.html
The ‘wip-oob-download’ implements “out-of-band downloads”, whereby downloads are performed by the daemon on behalf of clients. This works by adding a “built-in builder” in the daemon (idea stolen from the Nix daemon): if you specify “builtin:download” as the builder of your derivation, then guix-daemon invokes ‘guix download’ to download the thing. The derivation has to be fixed-output, of course. The branch is not ready yet, notably because we’d need a way to pass mirror lists to ‘guix download’, as an attribute of the derivation. Another question is compatibility: what if a recent client creates a “builtin:download” derivation on an old daemon? The problem is that currently old daemons do not check the builder of the .drv file until you call ‘build-derivations’. So I think we’ll need to bump the protocol version so client code can check whether the daemon is new enough. Thoughts? The good thing is that this should allow us to get rid of the bootstrap binaries that are currently distributed in the source tarball of Guix and downloaded upon ‘make’: https://www.gnu.org/software/guix/manual/html_node/Bootstrapping.html#Preparing-to-Use-the-Bootstrap-Binaries This was motivated precisely by the need for an out-of-band download mechanism for bootstrapping, which we’ll then have within guix-daemon. Ludo’.