Rename 'guix substitute-binary' to 'guix substitute'.

* guix/scripts/substitute-binary.scm: Rename to...
* guix/scripts/substitute.scm: ... this.  Adjust module name, entry
  point, comments, and help string accordingly.
* nix/scripts/substitute-binary.in: Rename to...
* nix/scripts/substitute.in: ... this.
* pre-inst-env.in (NIX_SUBSTITUTERS): Adjust accordingly.
* tests/substitute-binary.scm: Rename to...
* tests/substitute.scm: ... this.  Adjust references to (guix scripts
  substitute) accordingly.
* guix/ui.scm (show-guix-help)[internal?]: Change "substitute-binary" to
  "substitute".
* Makefile.am (MODULES, SCM_TESTS): Adjust to file renames.
* daemon.am (nodist_pkglibexec_SCRIPTS): Likewise.
* config-daemon.ac: Likewise.
* guix/tests.scm (call-with-derivation-narinfo): Adjust comments and
  docstring.
This commit is contained in:
Ludovic Courtès 2015-03-25 10:34:27 +01:00
parent c3a450fb49
commit 2c74fde00e
12 changed files with 60 additions and 60 deletions

2
.gitignore vendored
View File

@ -96,7 +96,7 @@ stamp-h[0-9]
/doc/guix.tp /doc/guix.tp
/doc/guix.vr /doc/guix.vr
/doc/guix.vrs /doc/guix.vrs
/nix/scripts/substitute-binary /nix/scripts/substitute
/doc/images/bootstrap-graph.png /doc/images/bootstrap-graph.png
/doc/images/bootstrap-graph.eps /doc/images/bootstrap-graph.eps
/guix-register /guix-register

View File

@ -96,7 +96,7 @@ MODULES = \
guix/scripts/gc.scm \ guix/scripts/gc.scm \
guix/scripts/hash.scm \ guix/scripts/hash.scm \
guix/scripts/pull.scm \ guix/scripts/pull.scm \
guix/scripts/substitute-binary.scm \ guix/scripts/substitute.scm \
guix/scripts/authenticate.scm \ guix/scripts/authenticate.scm \
guix/scripts/refresh.scm \ guix/scripts/refresh.scm \
guix/scripts/system.scm \ guix/scripts/system.scm \
@ -162,7 +162,7 @@ SCM_TESTS = \
tests/pk-crypto.scm \ tests/pk-crypto.scm \
tests/pki.scm \ tests/pki.scm \
tests/sets.scm \ tests/sets.scm \
tests/substitute-binary.scm \ tests/substitute.scm \
tests/builders.scm \ tests/builders.scm \
tests/derivations.scm \ tests/derivations.scm \
tests/ui.scm \ tests/ui.scm \

View File

@ -133,8 +133,8 @@ if test "x$guix_build_daemon" = "xyes"; then
AC_CONFIG_FILES([nix/scripts/list-runtime-roots], AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
[chmod +x nix/scripts/list-runtime-roots]) [chmod +x nix/scripts/list-runtime-roots])
AC_CONFIG_FILES([nix/scripts/substitute-binary], AC_CONFIG_FILES([nix/scripts/substitute],
[chmod +x nix/scripts/substitute-binary]) [chmod +x nix/scripts/substitute])
AC_CONFIG_FILES([nix/scripts/guix-authenticate], AC_CONFIG_FILES([nix/scripts/guix-authenticate],
[chmod +x nix/scripts/guix-authenticate]) [chmod +x nix/scripts/guix-authenticate])
AC_CONFIG_FILES([nix/scripts/offload], AC_CONFIG_FILES([nix/scripts/offload],

View File

@ -165,7 +165,7 @@ nix/libstore/schema.sql.hh: nix/libstore/schema.sql
nodist_pkglibexec_SCRIPTS = \ nodist_pkglibexec_SCRIPTS = \
nix/scripts/list-runtime-roots \ nix/scripts/list-runtime-roots \
nix/scripts/substitute-binary nix/scripts/substitute
if BUILD_DAEMON_OFFLOAD if BUILD_DAEMON_OFFLOAD

View File

@ -17,7 +17,7 @@
;;; You should have received a copy of the GNU General Public License ;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts substitute-binary) (define-module (guix scripts substitute)
#:use-module (guix ui) #:use-module (guix ui)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix utils) #:use-module (guix utils)
@ -53,7 +53,7 @@
#:export (narinfo-signature->canonical-sexp #:export (narinfo-signature->canonical-sexp
read-narinfo read-narinfo
write-narinfo write-narinfo
guix-substitute-binary)) guix-substitute))
;;; Comment: ;;; Comment:
;;; ;;;
@ -675,7 +675,7 @@ PORT. REPORT-PROGRESS is a two-argument procedure such as that returned by
;;; ;;;
(define (show-help) (define (show-help)
(display (_ "Usage: guix substitute-binary [OPTION]... (display (_ "Usage: guix substitute [OPTION]...
Internal tool to substitute a pre-built binary to a local build.\n")) Internal tool to substitute a pre-built binary to a local build.\n"))
(display (_ " (display (_ "
--query report on the availability of substitutes for the --query report on the availability of substitutes for the
@ -761,7 +761,7 @@ found."
;; daemon. ;; daemon.
"http://hydra.gnu.org"))) "http://hydra.gnu.org")))
(define (guix-substitute-binary . args) (define (guix-substitute . args)
"Implement the build daemon's substituter protocol." "Implement the build daemon's substituter protocol."
(mkdir-p %narinfo-cache-directory) (mkdir-p %narinfo-cache-directory)
(maybe-remove-expired-cached-narinfo) (maybe-remove-expired-cached-narinfo)
@ -882,7 +882,7 @@ substituter disabled~%")
(every (compose zero? cdr waitpid) pids)))) (every (compose zero? cdr waitpid) pids))))
(("--version") (("--version")
(show-version-and-exit "guix substitute-binary")) (show-version-and-exit "guix substitute"))
(("--help") (("--help")
(show-help)) (show-help))
(opts (opts
@ -893,4 +893,4 @@ substituter disabled~%")
;;; eval: (put 'with-timeout 'scheme-indent-function 1) ;;; eval: (put 'with-timeout 'scheme-indent-function 1)
;;; End: ;;; End:
;;; substitute-binary.scm ends here ;;; substitute.scm ends here

View File

@ -126,7 +126,7 @@ Deriver: ~a~%"
(define* (call-with-derivation-narinfo drv thunk (define* (call-with-derivation-narinfo drv thunk
#:key (sha256 (make-bytevector 32 0))) #:key (sha256 (make-bytevector 32 0)))
"Call THUNK in a context where fake substituter data, as read by 'guix "Call THUNK in a context where fake substituter data, as read by 'guix
substitute-binary', has been installed for DRV. SHA256 is the hash of the substitute', has been installed for DRV. SHA256 is the hash of the
expected output of DRV." expected output of DRV."
(let* ((output (derivation->output-path drv)) (let* ((output (derivation->output-path drv))
(dir (%substitute-directory)) (dir (%substitute-directory))
@ -178,7 +178,7 @@ CONTENTS."
(lambda () (lambda ()
(let ((hash (call-with-input-file (string-append dir "/example.nar") (let ((hash (call-with-input-file (string-append dir "/example.nar")
port-sha256))) port-sha256)))
;; Create fake substituter data, to be read by `substitute-binary'. ;; Create fake substituter data, to be read by 'guix substitute'.
(call-with-derivation-narinfo drv (call-with-derivation-narinfo drv
thunk thunk
#:sha256 (or sha256 hash)))) #:sha256 (or sha256 hash))))

View File

@ -815,7 +815,7 @@ parameter of 'args-fold'."
(define (show-guix-help) (define (show-guix-help)
(define (internal? command) (define (internal? command)
(member command '("substitute-binary" "authenticate" "offload"))) (member command '("substitute" "authenticate" "offload")))
(format #t (_ "Usage: guix COMMAND ARGS... (format #t (_ "Usage: guix COMMAND ARGS...
Run COMMAND with ARGS.\n")) Run COMMAND with ARGS.\n"))

View File

@ -1,11 +0,0 @@
#!@SHELL@
# A shorthand for "guix substitute-binary", for use by the daemon.
if test "x$GUIX_UNINSTALLED" = "x"
then
prefix="@prefix@"
exec_prefix="@exec_prefix@"
exec "@bindir@/guix" substitute-binary "$@"
else
exec guix substitute-binary "$@"
fi

11
nix/scripts/substitute.in Normal file
View File

@ -0,0 +1,11 @@
#!@SHELL@
# A shorthand for "guix substitute", for use by the daemon.
if test "x$GUIX_UNINSTALLED" = "x"
then
prefix="@prefix@"
exec_prefix="@exec_prefix@"
exec "@bindir@/guix" substitute "$@"
else
exec guix substitute "$@"
fi

View File

@ -44,7 +44,7 @@ export PATH
# Daemon helpers. # Daemon helpers.
NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots" NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots"
NIX_SUBSTITUTERS="$abs_top_builddir/nix/scripts/substitute-binary" NIX_SUBSTITUTERS="$abs_top_builddir/nix/scripts/substitute"
NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload" NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload"
NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate' NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate'

View File

@ -367,7 +367,7 @@
(with-store s (with-store s
(let* ((d (package-derivation s %bootstrap-guile (%current-system))) (let* ((d (package-derivation s %bootstrap-guile (%current-system)))
(o (derivation->output-path d))) (o (derivation->output-path d)))
;; Create fake substituter data, to be read by `substitute-binary'. ;; Create fake substituter data, to be read by 'guix substitute'.
(with-derivation-narinfo d (with-derivation-narinfo d
;; Remove entry from the local cache. ;; Remove entry from the local cache.
(false-if-exception (false-if-exception
@ -375,7 +375,7 @@
"/guix/substitute-binary/" "/guix/substitute-binary/"
(store-path-hash-part o)))) (store-path-hash-part o))))
;; Make sure `substitute-binary' correctly communicates the above ;; Make sure 'guix substitute' correctly communicates the above
;; data. ;; data.
(set-build-options s #:use-substitutes? #t) (set-build-options s #:use-substitutes? #t)
(and (has-substitutes? s o) (and (has-substitutes? s o)
@ -439,7 +439,7 @@
(with-derivation-substitute d c (with-derivation-substitute d c
(sha256 => (make-bytevector 32 0)) ;select a hash that doesn't match C (sha256 => (make-bytevector 32 0)) ;select a hash that doesn't match C
;; Make sure we use `substitute-binary'. ;; Make sure we use 'guix substitute'.
(set-build-options s (set-build-options s
#:use-substitutes? #t #:use-substitutes? #t
#:fallback? #f) #:fallback? #f)
@ -464,9 +464,9 @@
#:guile-for-build #:guile-for-build
(package-derivation s %bootstrap-guile (%current-system)))) (package-derivation s %bootstrap-guile (%current-system))))
(o (derivation->output-path d))) (o (derivation->output-path d)))
;; Create fake substituter data, to be read by `substitute-binary'. ;; Create fake substituter data, to be read by 'guix substitute'.
(with-derivation-narinfo d (with-derivation-narinfo d
;; Make sure we use `substitute-binary'. ;; Make sure we use 'guix substitute'.
(set-build-options s #:use-substitutes? #t) (set-build-options s #:use-substitutes? #t)
(and (has-substitutes? s o) (and (has-substitutes? s o)
(guard (c ((nix-protocol-error? c) (guard (c ((nix-protocol-error? c)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -17,8 +17,8 @@
;;; You should have received a copy of the GNU General Public License ;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-substitute-binary) (define-module (test-substitute)
#:use-module (guix scripts substitute-binary) #:use-module (guix scripts substitute)
#:use-module (guix base64) #:use-module (guix base64)
#:use-module (guix hash) #:use-module (guix hash)
#:use-module (guix serialization) #:use-module (guix serialization)
@ -95,7 +95,7 @@ version identifier.."
(test-begin "substitute-binary") (test-begin "substitute")
(test-quit "not a number" (test-quit "not a number"
"signature version" "signature version"
@ -156,7 +156,7 @@ a file for NARINFO."
(cute write-file (cute write-file
(string-append narinfo-directory "/example.out") <>)) (string-append narinfo-directory "/example.out") <>))
(set! (@@ (guix scripts substitute-binary) (set! (@@ (guix scripts substitute)
%allow-unauthenticated-substitutes?) %allow-unauthenticated-substitutes?)
#f)) #f))
thunk thunk
@ -166,8 +166,8 @@ a file for NARINFO."
(define-syntax-rule (with-narinfo narinfo body ...) (define-syntax-rule (with-narinfo narinfo body ...)
(call-with-narinfo narinfo (lambda () body ...))) (call-with-narinfo narinfo (lambda () body ...)))
;; Transmit these options to 'guix substitute-binary'. ;; Transmit these options to 'guix substitute'.
(set! (@@ (guix scripts substitute-binary) %cache-url) (set! (@@ (guix scripts substitute) %cache-url)
(getenv "GUIX_BINARY_SUBSTITUTE_URL")) (getenv "GUIX_BINARY_SUBSTITUTE_URL"))
(test-equal "query narinfo without signature" (test-equal "query narinfo without signature"
@ -180,7 +180,7 @@ a file for NARINFO."
(with-input-from-string (string-append "have " (%store-prefix) (with-input-from-string (string-append "have " (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
(lambda () (lambda ()
(guix-substitute-binary "--query")))))))) (guix-substitute "--query"))))))))
(test-equal "query narinfo with invalid hash" (test-equal "query narinfo with invalid hash"
;; The hash in the signature differs from the hash of %NARINFO. ;; The hash in the signature differs from the hash of %NARINFO.
@ -195,7 +195,7 @@ a file for NARINFO."
(with-input-from-string (string-append "have " (%store-prefix) (with-input-from-string (string-append "have " (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
(lambda () (lambda ()
(guix-substitute-binary "--query")))))))) (guix-substitute "--query"))))))))
(test-equal "query narinfo signed with authorized key" (test-equal "query narinfo signed with authorized key"
(string-append (%store-prefix) "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") (string-append (%store-prefix) "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
@ -209,7 +209,7 @@ a file for NARINFO."
(with-input-from-string (string-append "have " (%store-prefix) (with-input-from-string (string-append "have " (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
(lambda () (lambda ()
(guix-substitute-binary "--query")))))))) (guix-substitute "--query"))))))))
(test-equal "query narinfo signed with unauthorized key" (test-equal "query narinfo signed with unauthorized key"
"" ; not substitutable "" ; not substitutable
@ -225,15 +225,15 @@ a file for NARINFO."
(with-input-from-string (string-append "have " (%store-prefix) (with-input-from-string (string-append "have " (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
(lambda () (lambda ()
(guix-substitute-binary "--query")))))))) (guix-substitute "--query"))))))))
(test-quit "substitute, no signature" (test-quit "substitute, no signature"
"lacks a signature" "lacks a signature"
(with-narinfo %narinfo (with-narinfo %narinfo
(guix-substitute-binary "--substitute" (guix-substitute "--substitute"
(string-append (%store-prefix) (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"foo"))) "foo")))
(test-quit "substitute, invalid hash" (test-quit "substitute, invalid hash"
"hash" "hash"
@ -241,10 +241,10 @@ a file for NARINFO."
(with-narinfo (string-append %narinfo "Signature: " (with-narinfo (string-append %narinfo "Signature: "
(signature-field "different body") (signature-field "different body")
"\n") "\n")
(guix-substitute-binary "--substitute" (guix-substitute "--substitute"
(string-append (%store-prefix) (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"foo"))) "foo")))
(test-quit "substitute, unauthorized key" (test-quit "substitute, unauthorized key"
"unauthorized" "unauthorized"
@ -253,10 +253,10 @@ a file for NARINFO."
%narinfo %narinfo
#:public-key %wrong-public-key) #:public-key %wrong-public-key)
"\n") "\n")
(guix-substitute-binary "--substitute" (guix-substitute "--substitute"
(string-append (%store-prefix) (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"foo"))) "foo")))
(test-equal "substitute, authorized key" (test-equal "substitute, authorized key"
"Substitutable data." "Substitutable data."
@ -265,15 +265,15 @@ a file for NARINFO."
(dynamic-wind (dynamic-wind
(const #t) (const #t)
(lambda () (lambda ()
(guix-substitute-binary "--substitute" (guix-substitute "--substitute"
(string-append (%store-prefix) (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"substitute-retrieved") "substitute-retrieved")
(call-with-input-file "substitute-retrieved" get-string-all)) (call-with-input-file "substitute-retrieved" get-string-all))
(lambda () (lambda ()
(false-if-exception (delete-file "substitute-retrieved")))))) (false-if-exception (delete-file "substitute-retrieved"))))))
(test-end "substitute-binary") (test-end "substitute")
(exit (= (test-runner-fail-count (test-runner-current)) 0)) (exit (= (test-runner-fail-count (test-runner-current)) 0))