civodul pushed a commit to branch master
in repository guix.
commit 4daf89d619be788cf5a71867ad674cd5ff6e31fe
Author: Ludovic Courtès <[email protected]>
Date: Mon Jul 8 18:39:20 2019 +0200
derivations: 'derivation' primitive accepts <derivation> and #:sources.
This brings us closer to the <derivation> data type.
* guix/derivations.scm (derivation): Add #:sources parameter.
[input->derivation-input]: Add clause for 'derivation-input?'.
Honor SOURCES.
---
guix/derivations.scm | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 731f1f6..bd0af32 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -708,7 +708,8 @@ name of each input with that input's hash."
(define* (derivation store name builder args
#:key
(system (%current-system)) (env-vars '())
- (inputs '()) (outputs '("out"))
+ (inputs '()) (sources '())
+ (outputs '("out"))
hash hash-algo recursive?
references-graphs
allowed-references disallowed-references
@@ -833,6 +834,8 @@ derivation. It is kept as-is, uninterpreted, in the
derivation."
(define input->derivation-input
(match-lambda
+ ((? derivation-input? input)
+ input)
(((? derivation? drv))
(make-derivation-input drv '("out")))
(((? derivation? drv) sub-drvs ...)
@@ -858,7 +861,8 @@ derivation. It is kept as-is, uninterpreted, in the
derivation."
hash recursive?)))
(sort outputs string<?)))
(sources (sort (delete-duplicates
- (filter-map input->source inputs))
+ (append (filter-map input->source inputs)
+ sources))
string<?))
(inputs (sort (coalesce-duplicate-inputs
(filter-map input->derivation-input inputs))