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.
This commit is contained in:
Ludovic Courtès 2016-07-26 18:18:53 +02:00
parent 201855221f
commit 9e90fc7713
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 15 additions and 6 deletions

View File

@ -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)

View File

@ -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