[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#36578] [PATCH 5/9] derivations: 'map-derivation' uses the new 'deri
From: |
Ludovic Courtès |
Subject: |
[bug#36578] [PATCH 5/9] derivations: 'map-derivation' uses the new 'derivation' calling convention. |
Date: |
Wed, 10 Jul 2019 19:11:24 +0200 |
* guix/derivations.scm (map-derivation)[input->output-paths]: Adjust to
deal with an argument that's either 'derivation-input?' or a string.
[rewritten-input]: Return a <derivation-input> or a string.
Pass #:inputs and #:sources to 'derivation'.
---
guix/derivations.scm | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index bd0af320c4..a18478502d 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -933,13 +933,10 @@ recursively."
(define input->output-paths
(match-lambda
- (((? derivation? drv))
- (list (derivation->output-path drv)))
- (((? derivation? drv) sub-drvs ...)
- (map (cut derivation->output-path drv <>)
- sub-drvs))
- ((file)
- (list file))))
+ ((? derivation-input? input)
+ (derivation-input-output-paths input))
+ ((? string? file)
+ (list file))))
(let ((mapping (fold (lambda (pair result)
(match pair
@@ -958,11 +955,11 @@ recursively."
(($ <derivation-input> drv (sub-drvs ...))
(match (vhash-assoc (derivation-file-name drv) mapping)
((_ . (? derivation? replacement))
- (cons replacement sub-drvs))
- ((_ . replacement)
- (list replacement))
+ (derivation-input replacement sub-drvs))
+ ((_ . (? string? source))
+ source)
(#f
- (cons (loop drv) sub-drvs)))))))
+ (derivation-input (loop drv) sub-drvs)))))))
(let loop ((drv drv))
(let* ((inputs (map (cut rewritten-input <> loop)
@@ -1001,7 +998,8 @@ recursively."
. ,(substitute value initial
replacements))))
(derivation-builder-environment-vars drv))
- #:inputs (append (map list sources) inputs)
+ #:inputs (filter derivation-input? inputs)
+ #:sources (append sources (filter string? inputs))
#:outputs (derivation-output-names drv)
#:hash (match (derivation-outputs drv)
((($ <derivation-output> _ algo hash))
--
2.22.0
- [bug#36578] [PATCH 0/9] Modernize the API of the 'derivation' primitive, Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 1/9] derivations: 'derivation' primitive accepts <derivation> and #:sources., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 4/9] download: Use the new 'derivation' calling convention., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 3/9] gnu: guile-bootstrap: Use the new 'derivation' calling convention., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 5/9] derivations: 'map-derivation' uses the new 'derivation' calling convention.,
Ludovic Courtès <=
- [bug#36578] [PATCH 9/9] channels: Avoid use of 'derivation-input-path'., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 8/9] gexp: 'lowered-gexp-guile' now returns a <derivation-input>., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 2/9] gexp: <lowered-gexp> separates sources from derivation inputs., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 7/9] derivations: Deprecate the previous calling convention., Ludovic Courtès, 2019/07/10
- [bug#36578] [PATCH 6/9] derivations: Update tests to use new calling convention., Ludovic Courtès, 2019/07/10
- bug#36578: [PATCH 0/9] Modernize the API of the 'derivation' primitive, Ludovic Courtès, 2019/07/15