~ruther/guix-local

9e90fc771386a288e1bcf032edbb75bbfc472e7c — Ludovic Courtès 9 years ago 2018552
profiles: Output in 'package->manifest-entry' defaults to "out".

Fixes <http://bugs.gnu.org/24029>.
Reported by Dylan Jeffers <sapientech@openmailbox.org>.

* guix/profiles.scm (package->manifest-entry): Change #:output to
default to "out".
(packages->manifest): Add 'package?' in second 'match' clause.
* tests/profiles.scm ("package->manifest-entry defaults to \"out\""):
New test.
2 files changed, 15 insertions(+), 6 deletions(-)

M guix/profiles.scm
M tests/profiles.scm
M guix/profiles.scm => guix/profiles.scm +5 -6
@@ 163,9 163,8 @@
        (call-with-input-file file read-manifest)
        (manifest '()))))

(define* (package->manifest-entry package #:optional output)
  "Return a manifest entry for the OUTPUT of package PACKAGE.  When OUTPUT is
omitted or #f, use the first output of PACKAGE."
(define* (package->manifest-entry package #:optional (output "out"))
  "Return a manifest entry for the OUTPUT of package PACKAGE."
  (let ((deps (map (match-lambda
                    ((label package)
                     (gexp-input package))


@@ 175,7 174,7 @@ omitted or #f, use the first output of PACKAGE."
    (manifest-entry
     (name (package-name package))
     (version (package-version package))
     (output (or output (car (package-outputs package))))
     (output output)
     (item package)
     (dependencies (delete-duplicates deps))
     (search-paths (package-transitive-native-search-paths package)))))


@@ 188,8 187,8 @@ denoting a specific output of a package."
   (map (match-lambda
         ((package output)
          (package->manifest-entry package output))
         (package
           (package->manifest-entry package)))
         ((? package? package)
          (package->manifest-entry package)))
        packages)))

(define (manifest->gexp manifest)

M tests/profiles.scm => tests/profiles.scm +10 -0
@@ 207,6 207,16 @@
                                       #:hooks '())))
    (return (derivation-inputs drv))))

(test-assert "package->manifest-entry defaults to \"out\""
  (let ((outputs (package-outputs packages:glibc)))
    (equal? (manifest-entry-output
             (package->manifest-entry (package
                                        (inherit packages:glibc)
                                        (outputs (reverse outputs)))))
            (manifest-entry-output
             (package->manifest-entry packages:glibc))
            "out")))

(test-assertm "profile-manifest, search-paths"
  (mlet* %store-monad
      ((guile ->   (package