store: Add preliminary support for client-supplied substitute URLs.

* guix/store.scm (set-build-options): Rename #:binary-caches to
  #:substitute-urls.  Actually pass it in 'pairs' under the
  "substitute-urls" key.
* guix/scripts/substitute-binary.scm (%cache-url): Add comment for
  "untrusted-substitute-urls".
This commit is contained in:
Ludovic Courtès 2015-03-18 14:39:53 +01:00
parent fc1ee09578
commit 41c45e7863
2 changed files with 12 additions and 7 deletions

View File

@ -631,7 +631,12 @@ found."
(assoc-ref (daemon-options) option))
(define %cache-url
(match (and=> (find-daemon-option "substitute-urls")
(match (and=> (string-append
;; TODO: Uncomment the following lines when multiple
;; substitute sources are supported.
;; (find-daemon-option "untrusted-substitute-urls") ;client
;; " "
(find-daemon-option "substitute-urls")) ;admin
string-tokenize)
((url)
url)

View File

@ -459,7 +459,7 @@ encoding conversion errors."
(print-build-trace #t)
(build-cores (current-processor-count))
(use-substitutes? #t)
(binary-caches '())) ; client "untrusted" cache URLs
(substitute-urls '())) ; client "untrusted" cache URLs
;; Must be called after `open-connection'.
(define socket
@ -484,11 +484,11 @@ encoding conversion errors."
(when (>= (nix-server-minor-version server) 10)
(send (boolean use-substitutes?)))
(when (>= (nix-server-minor-version server) 12)
(let ((pairs (if timeout
`(("build-timeout" . ,(number->string timeout))
,@binary-caches)
binary-caches)))
(send (string-pairs pairs))))
(let ((pairs `(,@(if timeout
`(("build-timeout" . ,(number->string timeout)))
'())
("substitute-urls" . ,(string-join substitute-urls)))))
(send (string-pairs (pk 'pairs pairs)))))
(let loop ((done? (process-stderr server)))
(or done? (process-stderr server)))))