diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-03-16 18:13:02 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-03-16 18:34:53 +0100 |
commit | 71e2065a38cf2641b7eb8c557b0f043f5a42a649 (patch) | |
tree | 441454804855b4c78d4378652884af9f3c930d69 | |
parent | 1ac94ae1666b9f4a0991174fb43076d31be0ee72 (diff) | |
download | guix-71e2065a38cf2641b7eb8c557b0f043f5a42a649.tar guix-71e2065a38cf2641b7eb8c557b0f043f5a42a649.tar.gz |
substitute: Honor client-provided empty URL list.
Before that, 'guix build --substitute-urls=""' would lead to using the
daemon's own URL list instead of the empty list. The 'or*' hack, which
is to blame, had become unnecessary since commit
fb4bf72be3fbc23bca35ba4b842b7e1517ef0e3a.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/substitute.scm (or*): Remove.
(%cache-urls): Use 'or' instead of 'or*'.
* tests/store.scm ("substitute query, alternating URLs"): Add test with
empty URL list.
* doc/guix.texi (Common Build Options): Mention the empty string.
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rwxr-xr-x | guix/scripts/substitute.scm | 10 | ||||
-rw-r--r-- | tests/store.scm | 6 |
3 files changed, 10 insertions, 9 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 05ce7858d5..ba4fe1a826 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3983,6 +3983,9 @@ This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes}). +When @var{urls} is the empty string, substitutes are effectively +disabled. + @item --no-substitutes Do not use substitutes for build products. That is, always build things locally instead of allowing downloads of pre-built binaries diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index b707accff6..1ab18d0260 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -953,15 +953,9 @@ substitutes may be unavailable\n"))))) found." (assoc-ref (daemon-options) option)) -(define-syntax-rule (or* a b) - (let ((first a)) - (if (or (not first) (string-null? first)) - b - first))) - (define %cache-urls - (match (and=> (or* (find-daemon-option "untrusted-substitute-urls") ;client - (find-daemon-option "substitute-urls")) ;admin + (match (and=> (or (find-daemon-option "untrusted-substitute-urls") ;client + (find-daemon-option "substitute-urls")) ;admin string-tokenize) ((urls ...) urls) diff --git a/tests/store.scm b/tests/store.scm index 3d32d52758..f7db7df966 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -450,7 +450,11 @@ (with-store s ;the right one again (set-build-options s #:use-substitutes? #t #:substitute-urls (%test-substitute-urls)) - (has-substitutes? s o)))))) + (has-substitutes? s o)) + (with-store s ;empty list of URLs + (set-build-options s #:use-substitutes? #t + #:substitute-urls '()) + (not (has-substitutes? s o))))))) (test-assert "substitute" (with-store s |