summaryrefslogtreecommitdiff
path: root/guix/scripts/substitute-binary.scm
AgeCommit message (Expand)Author
2013-04-25web: Factorize `http-get' hackery....This should fix `substitute-binary --query' on Guile 2.0.5. * guix/web.scm: New file. * Makefile.am (MODULES): Add it. * po/POTFILES.in: Add it. * guix/gnu-maintenance.scm (http-fetch): Remove. (%package-list-url): Turn into a URI. (official-gnu-packages): Add #:text? #t to `http-fetch' call. * guix/scripts/substitute-binary.scm (fetch): Remove `http' case, and use `http-fetch' instead. Ludovic Courtès
2013-04-20substitute-binary: Remove expired cache entries once in a while....* guix/scripts/substitute-binary.scm (%narinfo-expired-cache-entry-removal-delay): New variable. (obsolete?): New procedure, formerly in `lookup-narinfo'. (lookup-narinfo): Adjust accordingly. (remove-expired-cached-narinfos, maybe-remove-expired-cached-narinfo): New procedures. (guix-substitute-binary): Call `maybe-remove-expired-cached-narinfo'. Ludovic Courtès
2013-04-15substitute-binary: Skip servers that use a different store prefix....* guix/scripts/substitute-binary.scm (fetch-narinfo): Return #f when CACHE uses a store directory different from (%store-prefix). Ludovic Courtès
2013-04-15substitute-binary: Call `open-cache' only when needed....* guix/scripts/substitute-binary.scm (lookup-narinfo): Force CACHE when passing it to `fetch-narinfo'. (guix-substitute-binary): Delay calls to `open-cache'. Ludovic Courtès
2013-04-15substitute-binary: Add a local cache....* guix/scripts/substitute-binary.scm (%narinfo-cache-directory, %narinfo-ttl, %narinfo-negative-ttl): New variables. (with-atomic-file-output, object->fields, read-narinfo, write-narinfo, narinfo->string, string->narinfo, lookup-narinfo): New procedures. (fetch-narinfo): Adjust to use `read-narinfo'. (guix-substitute-binary): Ensure the existence of %NARINFO-CACHE-DIRECTORY. Use `lookup-narinfo' instead of `fetch-narinfo'. Ludovic Courtès
2013-04-12substitute-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. Ludovic Courtès
2013-04-12substitute-binary: Correctly handle missing narinfos in `--query' mode....* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]("have", "info"): Filter SUBSTITUTABLE through `narinfo?'. Ludovic Courtès
2013-04-04substitute-binary: Fix communication of several store paths to the daemon....* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]: Emit blank lines only after the complete list of store paths has been returned. Ludovic Courtès
2013-04-03Add preliminary binary substituter....* guix/scripts/substitute-binary.scm: New file. * Makefile.am (MODULES): Add it. * nix/scripts/substitute-binary.in: New file. * config-daemon.ac: Produce nix/scripts/substitute-binary. * daemon.am (nodist_pkglibexec_SCRIPTS): Add nix/scripts/substitute-binary. * guix/store.scm (substitutable-path-info): Use the `query-substitutable-path-infos' RPC. * nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'. * pre-inst-env.in: Set `NIX_SUBSTITUTERS'. * test-env.in: Leave `NIX_SUBSTITUTERS' unchanged. Set `GUIX_BINARY_SUBSTITUTE_URL, and create $NIX_STATE_DIR/substituter-data. Run `guix-daemon' within `./pre-inst-env'. * tests/store.scm ("substitute query"): New test. Ludovic Courtès