guix: environment: Consider all package outputs.

* guix/scripts/environment.scm (for-each-search-path): Iterate over all
  derivation output paths.
  (packages->transitive-inputs): Process inputs that specify an output, too.
This commit is contained in:
David Thompson 2015-01-29 17:53:17 -05:00
parent 5ce93d9ade
commit 4b7ad2e338
1 changed files with 9 additions and 2 deletions

View File

@ -40,7 +40,12 @@
Use the output paths of DERIVATIONS to build each search path. When PURE? is Use the output paths of DERIVATIONS to build each search path. When PURE? is
#t, the existing search path value is ignored. Otherwise, the existing search #t, the existing search path value is ignored. Otherwise, the existing search
path value is appended." path value is appended."
(let ((paths (map derivation->output-path derivations))) (let ((paths (append-map (lambda (drv)
(map (match-lambda
((_ . output)
(derivation-output-path output)))
(derivation-outputs drv)))
derivations)))
(for-each (match-lambda (for-each (match-lambda
(($ <search-path-specification> (($ <search-path-specification>
variable directories separator) variable directories separator)
@ -177,7 +182,9 @@ packages."
"Return a list of the transitive inputs for all PACKAGES." "Return a list of the transitive inputs for all PACKAGES."
(define (transitive-inputs package) (define (transitive-inputs package)
(filter-map (match-lambda (filter-map (match-lambda
((_ (? package? package)) package) ((or (_ (? package? package))
(_ (? package? package) _))
package)
(_ #f)) (_ #f))
(bag-transitive-inputs (bag-transitive-inputs
(package->bag package)))) (package->bag package))))