profiles: Use 'gexp-input' instead of two-element lists.

* guix/profiles.scm (package->manifest-entry): Use 'gexp-input' instead
  of two-element lists to denote specific package outputs.
  (manifest-inputs): Likewise.
  (profile-derivation)[info-dir]: Likewise.
This commit is contained in:
Ludovic Courtès 2015-03-15 21:51:34 +01:00
parent 0dbea56bbf
commit b4a4bec01a
1 changed files with 9 additions and 24 deletions

View File

@ -155,9 +155,9 @@
omitted or #f, use the first output of PACKAGE." omitted or #f, use the first output of PACKAGE."
(let ((deps (map (match-lambda (let ((deps (map (match-lambda
((label package) ((label package)
`(,package "out")) (gexp-input package))
((label package output) ((label package output)
`(,package ,output))) (gexp-input package output)))
(package-transitive-propagated-inputs package)))) (package-transitive-propagated-inputs package))))
(manifest-entry (manifest-entry
(name (package-name package)) (name (package-name package))
@ -356,22 +356,12 @@ replace it."
;;; ;;;
(define (manifest-inputs manifest) (define (manifest-inputs manifest)
"Return the list of inputs for MANIFEST. Each input has one of the "Return a list of <gexp-input> objects for MANIFEST."
following forms:
(PACKAGE OUTPUT-NAME)
or
STORE-PATH
"
(append-map (match-lambda (append-map (match-lambda
(($ <manifest-entry> name version (($ <manifest-entry> name version output thing deps)
output (? package? package) deps) ;; THING may be a package or a file name. In the latter case,
`((,package ,output) ,@deps)) ;; assume it's already valid. Ditto for DEPS.
(($ <manifest-entry> name version output path deps) (cons (gexp-input thing output) deps)))
;; Assume PATH and DEPS are already valid.
`(,path ,@deps)))
(manifest-entries manifest))) (manifest-entries manifest)))
(define (info-dir-file manifest) (define (info-dir-file manifest)
@ -487,16 +477,11 @@ CA-CERTIFICATE-BUNDLE? is #f."
(ca-certificate-bundle manifest) (ca-certificate-bundle manifest)
(return #f)))) (return #f))))
(define inputs (define inputs
;; XXX: Here we use tuples of the form (DIR "out") just so that the list
;; is unambiguous for the gexp code when MANIFEST has a single input
;; denoted as a string (the pattern (DRV STRING) is normally
;; interpreted in a gexp as "the STRING output of DRV".). See
;; <http://lists.gnu.org/archive/html/guix-devel/2014-12/msg00292.html>.
(append (if info-dir (append (if info-dir
`((,info-dir "out")) (list (gexp-input info-dir))
'()) '())
(if ca-cert-bundle (if ca-cert-bundle
`((,ca-cert-bundle "out")) (list (gexp-input ca-cert-bundle))
'()) '())
(manifest-inputs manifest))) (manifest-inputs manifest)))