summaryrefslogtreecommitdiff
path: root/guix/derivations.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-10-29 00:26:05 +0100
committerLudovic Courtès <ludo@gnu.org>2014-10-29 00:31:23 +0100
commitd2d0514b58bfddd061cd7f692bcc2075fdc33711 (patch)
treeaa189f4e1fbeb267e8c560ca996a096ac0798433 /guix/derivations.scm
parente6740741d188e01cb1a0b9c7db597a25128889d5 (diff)
downloadguix-patches-d2d0514b58bfddd061cd7f692bcc2075fdc33711.tar
guix-patches-d2d0514b58bfddd061cd7f692bcc2075fdc33711.tar.gz
derivations: Fix 'derivation-prerequisites-to-build' when #:local-build?.
* guix/derivations.scm (derivation-prerequisites-to-build)[derivation-substitutable?]: Call 'substitutable-derivation?'. <body>: When 'substitutable-derivation?' returns #f, add DRV to BUILD.
Diffstat (limited to 'guix/derivations.scm')
-rw-r--r--guix/derivations.scm10
1 files changed, 8 insertions, 2 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 5a8cc2c57a..b80e31936e 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -217,7 +217,8 @@ that second value is the empty list."
(every built? (derivation-output-paths drv sub-drvs)))
(define (derivation-substitutable? drv sub-drvs)
- (every substitutable? (derivation-output-paths drv sub-drvs)))
+ (and (substitutable-derivation? drv)
+ (every substitutable? (derivation-output-paths drv sub-drvs))))
(let loop ((drv drv)
(sub-drvs outputs)
@@ -230,7 +231,12 @@ that second value is the empty list."
(append (derivation-output-paths drv sub-drvs)
substitute)))
(else
- (let ((inputs (remove (lambda (i)
+ (let ((build (if (substitutable-derivation? drv)
+ build
+ (cons (make-derivation-input
+ (derivation-file-name drv) sub-drvs)
+ build)))
+ (inputs (remove (lambda (i)
(or (member i build) ; XXX: quadratic
(input-built? i)
(input-substitutable? i)))