summaryrefslogtreecommitdiff
path: root/guix/derivations.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2017-03-30 22:59:53 +0200
committerMarius Bakke <mbakke@fastmail.com>2017-03-30 22:59:53 +0200
commit84157bb8bf2c610584e0836047da4c710f8eaf76 (patch)
treebe5d8c7238e32802221db55a3ee83e7f6a58affb /guix/derivations.scm
parentfa63939acba69e11df44073a7eb687bd2ba48349 (diff)
parent03d0aa8b22223b67ec9bbd363c4d5800efdbaf82 (diff)
downloadguix-patches-84157bb8bf2c610584e0836047da4c710f8eaf76.tar
guix-patches-84157bb8bf2c610584e0836047da4c710f8eaf76.tar.gz
Merge branch 'master' into core-updates
Most conflicts are from 6fd52309b8f52c9bb59fccffac53e029ce94b698.
Diffstat (limited to 'guix/derivations.scm')
-rw-r--r--guix/derivations.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index e02d1ee036..0846d54fa5 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -293,7 +293,14 @@ substituter many times."
;; to ask the substituter for just as much as needed, instead of asking it
;; for the whole world, which can be significantly faster when substitute
;; info is not already in cache.
- (append-map derivation-input-output-paths
+ ;; Also, skip derivations marked as non-substitutable.
+ (append-map (lambda (input)
+ (let ((drv (call-with-input-file
+ (derivation-input-path input)
+ read-derivation)))
+ (if (substitutable-derivation? drv)
+ (derivation-input-output-paths input)
+ '())))
(derivation-prerequisites drv valid-input?)))
(let* ((paths (delete-duplicates
@@ -304,6 +311,8 @@ substituter many times."
paths))))
(cond ((eqv? mode (build-mode check))
(cons (dependencies drv) result))
+ ((not (substitutable-derivation? drv))
+ (cons (dependencies drv) result))
((every valid? self)
result)
(else