From 113aef68fb489b08f020c57bddfbc76d7d14d45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 1 Sep 2012 19:21:06 +0200 Subject: [PATCH] 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. --- guix/packages.scm | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index 2ab45f9fb4..03b6174224 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -61,6 +61,7 @@ (define-module (guix packages) package-location package-transitive-inputs + package-transitive-propagated-inputs package-source-derivation package-derivation package-cross-derivation @@ -196,12 +197,8 @@ (define (package-source-derivation store source) (($ 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 @@ (define (package-transitive-inputs package) ((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.