Browse Source

packages: Add `package-transitive-propagated-inputs'.

* guix/packages.scm (transitive-inputs): New procedure.
  (package-transitive-inputs): Rewrite in terms of `transitive-inputs'.
  (package-transitive-propagated-inputs): New procedure.
version-0.8.3
Ludovic Courtès 10 years ago
parent
commit
113aef68fb
  1. 21
      guix/packages.scm

21
guix/packages.scm

@ -61,6 +61,7 @@
package-location
package-transitive-inputs
package-transitive-propagated-inputs
package-source-derivation
package-derivation
package-cross-derivation
@ -196,12 +197,8 @@ representation."
(($ <origin> uri method sha256 name)
(method store uri 'sha256 sha256 name))))
(define (package-transitive-inputs package)
"Return the transitive inputs of PACKAGE---i.e., its direct inputs along
with their propagated inputs, recursively."
(let loop ((inputs (concatenate (list (package-native-inputs package)
(package-inputs package)
(package-propagated-inputs package))))
(define (transitive-inputs inputs)
(let loop ((inputs inputs)
(result '()))
(match inputs
(()
@ -217,6 +214,18 @@ with their propagated inputs, recursively."
((input rest ...)
(loop rest (cons input result))))))
(define (package-transitive-inputs package)
"Return the transitive inputs of PACKAGE---i.e., its direct inputs along
with their propagated inputs, recursively."
(transitive-inputs (append (package-native-inputs package)
(package-inputs package)
(package-propagated-inputs package))))
(define (package-transitive-propagated-inputs package)
"Return the propagated inputs of PACKAGE, and their propagated inputs,
recursively."
(transitive-inputs (package-propagated-inputs package)))
;;;
;;; Package derivations.

Loading…
Cancel
Save