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

View file

@ -708,7 +708,8 @@ (define derivation-hash ; `hashDerivationModulo' in derivations.cc
(define* (derivation store name builder args (define* (derivation store name builder args
#:key #:key
(system (%current-system)) (env-vars '()) (system (%current-system)) (env-vars '())
(inputs '()) (outputs '("out")) (inputs '()) (sources '())
(outputs '("out"))
hash hash-algo recursive? hash hash-algo recursive?
references-graphs references-graphs
allowed-references disallowed-references allowed-references disallowed-references
@ -833,6 +834,8 @@ (define (env-vars-with-empty-outputs env-vars)
(define input->derivation-input (define input->derivation-input
(match-lambda (match-lambda
((? derivation-input? input)
input)
(((? derivation? drv)) (((? derivation? drv))
(make-derivation-input drv '("out"))) (make-derivation-input drv '("out")))
(((? derivation? drv) sub-drvs ...) (((? derivation? drv) sub-drvs ...)
@ -858,7 +861,8 @@ (define input->source
hash recursive?))) hash recursive?)))
(sort outputs string<?))) (sort outputs string<?)))
(sources (sort (delete-duplicates (sources (sort (delete-duplicates
(filter-map input->source inputs)) (append (filter-map input->source inputs)
sources))
string<?)) string<?))
(inputs (sort (coalesce-duplicate-inputs (inputs (sort (coalesce-duplicate-inputs
(filter-map input->derivation-input inputs)) (filter-map input->derivation-input inputs))