From 9e90fc771386a288e1bcf032edbb75bbfc472e7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 26 Jul 2016 18:18:53 +0200 Subject: [PATCH] profiles: Output in 'package->manifest-entry' defaults to "out". Fixes . Reported by Dylan Jeffers . * 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. --- guix/profiles.scm | 11 +++++------ tests/profiles.scm | 10 ++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 1adb143c16..db807a8136 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -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) diff --git a/tests/profiles.scm b/tests/profiles.scm index fc1dfd2bfc..028d7b6fb4 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -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