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.
This commit is contained in:
Ludovic Courtès 2019-07-08 18:39:20 +02:00
parent 456c7ade09
commit 4daf89d619
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 6 additions and 2 deletions

View File

@ -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))