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 @@ (define (find-daemon-option option) 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 @@ (define (same? x y) (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