diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-03-02 23:57:23 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-03-03 00:18:30 +0100 |
commit | 94d609aba8e14963459c21863ab56da2b5f01517 (patch) | |
tree | 8f98c0f83bd4fc2c42d387685fa7751e96adf4dc /guix/scripts | |
parent | 49c4fd2aab0c99c32ec338949ff07bd89d2920f6 (diff) | |
download | gnu-guix-94d609aba8e14963459c21863ab56da2b5f01517.tar gnu-guix-94d609aba8e14963459c21863ab56da2b5f01517.tar.gz |
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.
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/build.scm | 19 |
1 files changed, 10 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) |