From b86b00567c82e0e16a3cfa65b3f87d95f31506bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Aug 2012 18:36:01 +0200 Subject: build: Pass $(NIX_INSTANTIATE) to the build and test environments. * Makefile.am (.scm.go): Define $NIX_INSTANTIATE. (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH. * guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when defined. * tests/utils.scm (%nix-hash): New variable. ("sha256 & bytevector->nix-base32-string"): Use it. --- Makefile.am | 5 ++++- guix/utils.scm | 5 +++-- tests/utils.scm | 10 +++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index f83c8eb1f5..51266585dc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -52,9 +52,11 @@ TESTS = \ tests/packages.scm TESTS_ENVIRONMENT = \ + NIX_HASH="$(NIX_HASH)"; \ + NIX_INSTANTIATE="$(NIX_INSTANTIATE)"; \ NIXPKGS="$(NIXPKGS)"; \ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"; \ - export NIXPKGS GUILE_LOAD_COMPILED_PATH; + export NIX_HASH NIX_INSTANTIATE NIXPKGS GUILE_LOAD_COMPILED_PATH; LOG_COMPILER = \ $(GUILE) --no-auto-compile -L "$(top_srcdir)" @@ -70,6 +72,7 @@ CLEANFILES = $(GOBJECTS) *.log .scm.go: $(MKDIR_P) `dirname "$@"` + NIX_INSTANTIATE="$(NIX_INSTANTIATE)" \ NIXPKGS="$(NIXPKGS)" \ GUILE_AUTO_COMPILE=0 \ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \ diff --git a/guix/utils.scm b/guix/utils.scm index 66563c727e..cbd51fae73 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -450,8 +450,9 @@ starting from the right of S." (define (nixpkgs-derivation attribute) "Return the derivation path of ATTRIBUTE in Nixpkgs." - (let* ((p (open-pipe* OPEN_READ "nix-instantiate" "-A" - attribute (%nixpkgs-directory))) + (let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE") + "nix-instantiate") + "-A" attribute (%nixpkgs-directory))) (l (read-line p)) (s (close-pipe p))) (and (zero? (status:exit-val s)) diff --git a/tests/utils.scm b/tests/utils.scm index 4a24e23df9..6a90817ec3 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -29,6 +29,10 @@ #:use-module (ice-9 popen) #:use-module (ice-9 match)) +(define %nix-hash + (or (getenv "NIX_HASH") + "nix-hash")) + (test-begin "utils") (test-assert "bytevector->base32-string" @@ -72,7 +76,7 @@ (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar")))) ;; The following tests requires `nix-hash' in $PATH. -(test-skip (if (false-if-exception (system* "nix-hash" "--version")) +(test-skip (if (false-if-exception (system* %nix-hash "--version")) 0 1)) @@ -80,8 +84,8 @@ (let ((file (search-path %load-path "tests/test.drv"))) (equal? (bytevector->nix-base32-string (sha256 (call-with-input-file file get-bytevector-all))) - (let* ((c (format #f "nix-hash --type sha256 --base32 --flat \"~a\"" - file)) + (let* ((c (format #f "~a --type sha256 --base32 --flat \"~a\"" + %nix-hash file)) (p (open-input-pipe c)) (l (read-line p))) (close-pipe p) -- cgit 1.4.1