guix package: Allow separate install of several outputs of the same package.
* guix/scripts/package.scm (guix-package)[process-actions](same-package?): New procedure. Use it instead of `alist-delete' when filtering out duplicate packages from the profile.
This commit is contained in:
parent
56fbf2629f
commit
079d127391
|
@ -693,6 +693,12 @@ more information.~%"))
|
||||||
|
|
||||||
(delete-duplicates deps same?))
|
(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)
|
(define (package->tuple p)
|
||||||
;; Convert package P to a tuple.
|
;; Convert package P to a tuple.
|
||||||
;; When given a package via `-e', install the first of its
|
;; When given a package via `-e', install the first of its
|
||||||
|
@ -816,8 +822,11 @@ more information.~%"))
|
||||||
(packages (append install*
|
(packages (append install*
|
||||||
(fold (lambda (package result)
|
(fold (lambda (package result)
|
||||||
(match package
|
(match package
|
||||||
((name _ ...)
|
((name _ out _ ...)
|
||||||
(alist-delete name result))))
|
(filter (negate
|
||||||
|
(cut same-package? <>
|
||||||
|
name out))
|
||||||
|
result))))
|
||||||
(fold alist-delete installed remove)
|
(fold alist-delete installed remove)
|
||||||
install*))))
|
install*))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue