diff options
-rw-r--r-- | guix/scripts/package.scm | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 68869b4cec..5c3947dd63 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -693,6 +693,12 @@ more information.~%")) (delete-duplicates deps same?)) + (define (same-package? tuple name out) + (match tuple + ((tuple-name _ tuple-output _ ...) + (and (equal? name tuple-name) + (equal? out tuple-output))))) + (define (package->tuple p) ;; Convert package P to a tuple. ;; When given a package via `-e', install the first of its @@ -816,8 +822,11 @@ more information.~%")) (packages (append install* (fold (lambda (package result) (match package - ((name _ ...) - (alist-delete name result)))) + ((name _ out _ ...) + (filter (negate + (cut same-package? <> + name out)) + result)))) (fold alist-delete installed remove) install*)))) |