substitute-binary: Implement `--substitute'.
authorLudovic Courtès <ludo@gnu.org>
Fri, 12 Apr 2013 15:30:27 +0000 (17:30 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 12 Apr 2013 15:31:01 +0000 (17:31 +0200)
commitfe0cff14f6c5facee4192529f5c7b7a972f185ca
tree6e8c21cbcb5a4b0656d2184940457fe87dd92095
parentd7c5d27795500c1db3bca6c2ebf9066e32d36adb
substitute-binary: Implement `--substitute'.

This allows build outputs to be transparently downloaded from
http://hydra.gnu.org, for example.

* config-daemon.ac: Check for `gzip', `bzip2', and `xz'.
* guix/config.scm.in (%gzip, %bzip2, %xz): New variable.
* guix/scripts/substitute-binary.scm (fetch): Return SIZE as a second value.
  (<narinfo>): Change `url' to `uri'.
  (make-narinfo): Rename to...
  (narinfo-maker): ... this.  Handle relative URLs.
  (fetch-narinfo): Adjust accordingly.
  (filtered-port, decompressed-port): New procedures.
  (guix-substitute-binary): Implement the `--substitute' case.
* tests/store.scm ("substitute query"): Use (%store-prefix) instead
  of (getenv "NIX_STORE_DIR").
  ("substitute"): New test.
config-daemon.ac
guix/config.scm.in
guix/scripts/substitute-binary.scm
tests/store.scm