[email protected] (Ludovic Courtès) skribis: > 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.
Fixed! > 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. To address that, I bumped the protocol number in worker-protocol.hh and added a ‘built-in-builders’ RPC that returns the list of supported built-in builders (a list of strings.) That way, clients can check what the daemon supports. For instance, ‘url-fetch’ can return either a “normal” fixed-output derivation or one that uses “builtin:download”, depending on what the daemon supports. Feedback welcome. Ludo’.
