From 94d609aba8e14963459c21863ab56da2b5f01517 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 Mar 2016 23:57:23 +0100 Subject: guix build: -S returns the replacement's source. Reported by Mark H Weaver. * guix/scripts/build.scm (options->derivations): When SRC and GRAFT? are true, use the source of P's replacement. * tests/guix-build.sh: Add test. --- guix/scripts/build.scm | 19 ++++++++++--------- tests/guix-build.sh | 9 +++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index d6bb35c99a..a8becea2de 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -592,15 +592,16 @@ build." (parameterize ((%graft? graft?)) (append-map (match-lambda ((? package? p) - (match src - (#f - (list (package->derivation store p system))) - (#t - (let ((s (package-source p))) - (list (package-source-derivation store s)))) - (proc - (map (cut package-source-derivation store <>) - (proc p))))) + (let ((p (or (and graft? (package-replacement p)) p))) + (match src + (#f + (list (package->derivation store p system))) + (#t + (let ((s (package-source p))) + (list (package-source-derivation store s)))) + (proc + (map (cut package-source-derivation store <>) + (proc p)))))) ((? derivation? drv) (list drv)) ((? procedure? proc) diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 5821e509af..ae75bcfab0 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -43,6 +43,7 @@ trap "rm -rf $module_dir" EXIT cat > "$module_dir/foo.scm"< "$module_dir/foo.scm"<