~ruther/guix-local

4938b0eead9b1f34883c166a16c769a5db03edd9 — Ludovic Courtès 11 years ago 9176607
substitute-binary: Ignore $GUIX_BINARY_SUBSTITUTE_URL.

* guix/scripts/substitute-binary.scm (%cache-url): Ignore the
  'GUIX_BINARY_SUBSTITUTE_URL' environment variable.
* test-env.in: Invoke 'guix-daemon' with '--substitute-urls'.
* tests/substitute-binary.scm: Set '%cache-url' to the value of
  'GUIX_BINARY_SUBSTITUTE_URL'.
3 files changed, 18 insertions(+), 15 deletions(-)

M guix/scripts/substitute-binary.scm
M test-env.in
M tests/substitute-binary.scm
M guix/scripts/substitute-binary.scm => guix/scripts/substitute-binary.scm +13 -14
@@ 625,20 625,19 @@ found."
  (assoc-ref (daemon-options) option))

(define %cache-url
  (or (getenv "GUIX_BINARY_SUBSTITUTE_URL")
      (match (and=> (find-daemon-option "substitute-urls")
                    string-tokenize)
        ((url)
         url)
        ((head tail ..1)
         ;; Currently we don't handle multiple substitute URLs.
         (warning (_ "these substitute URLs will not be used:~{ ~a~}~%")
                  tail)
         head)
        (#f
         ;; This can only happen when this script is not invoked by the
         ;; daemon.
         "http://hydra.gnu.org"))))
  (match (and=> (find-daemon-option "substitute-urls")
                string-tokenize)
    ((url)
     url)
    ((head tail ..1)
     ;; Currently we don't handle multiple substitute URLs.
     (warning (_ "these substitute URLs will not be used:~{ ~a~}~%")
              tail)
     head)
    (#f
     ;; This can only happen when this script is not invoked by the
     ;; daemon.
     "http://hydra.gnu.org")))

(define (guix-substitute-binary . args)
  "Implement the build daemon's substituter protocol."

M test-env.in => test-env.in +2 -1
@@ 81,7 81,8 @@ then
    # Launch the daemon without chroot support because is may be
    # unavailable, for instance if we're not running as root.
    "@abs_top_builddir@/pre-inst-env"				\
	"@abs_top_builddir@/guix-daemon" --disable-chroot &
	"@abs_top_builddir@/guix-daemon" --disable-chroot	\
	--substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL" &

    daemon_pid=$!
    trap "kill $daemon_pid ; rm -rf $NIX_STATE_DIR" EXIT

M tests/substitute-binary.scm => tests/substitute-binary.scm +3 -0
@@ 166,6 166,9 @@ a file for NARINFO."
(define-syntax-rule (with-narinfo narinfo body ...)
  (call-with-narinfo narinfo (lambda () body ...)))

;; Transmit these options to 'guix substitute-binary'.
(set! (@@ (guix scripts substitute-binary) %cache-url)
      (getenv "GUIX_BINARY_SUBSTITUTE_URL"))

(test-equal "query narinfo without signature"
  ""                                              ; not substitutable