diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-07-08 18:39:20 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-07-15 10:01:04 +0200 |
commit | 4daf89d619be788cf5a71867ad674cd5ff6e31fe (patch) | |
tree | a98f9084857a89f1a91da2944c53b6085edb90b1 | |
parent | 456c7ade095cce96f47389c37a4fe3b0390047fd (diff) |
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.
-rw-r--r-- | guix/derivations.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm index 731f1f698f..bd0af320c4 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)) |