summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-03-04 23:01:47 +0100
committerLudovic Courtès <ludo@gnu.org>2016-03-05 00:19:10 +0100
commitfcadd9ff9dfd57c4d386287477e665d4efe9090d (patch)
treed21ec294d71724db647b1ccb949fb8bccaa12a0a /guix
parentc90cb5c9d84ded26ef44d1e6593508d5b9e4655e (diff)
packages: The result of 'bag-grafts' does not contain duplicates.
* guix/packages.scm (bag-grafts): Add call to 'delete-duplicates'.
Diffstat (limited to 'guix')
-rw-r--r--guix/packages.scm7
1 files changed, 6 insertions, 1 deletions
diff --git a/guix/packages.scm b/guix/packages.scm
index 3e50260069..1769238b5e 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -927,7 +927,12 @@ to (see 'graft-derivation'.)"
#:native? #f))
'()))
- (append native-grafts target-grafts))
+ ;; We can end up with several identical grafts if we stumble upon packages
+ ;; that are not 'eq?' but map to the same derivation (this can happen when
+ ;; using things like 'package-with-explicit-inputs'.) Hence the
+ ;; 'delete-duplicates' call.
+ (delete-duplicates
+ (append native-grafts target-grafts)))
(define* (package-grafts store package
#:optional (system (%current-system))