~ruther/guix-local

079d1273912da55c69113601b48bb704ed354c86 — Ludovic Courtès 12 years ago 56fbf26
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.
1 files changed, 11 insertions(+), 2 deletions(-)

M guix/scripts/package.scm
M guix/scripts/package.scm => guix/scripts/package.scm +11 -2
@@ 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*))))