summaryrefslogtreecommitdiff
path: root/build-aux/check-available-binaries.scm
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/check-available-binaries.scm')
-rw-r--r--build-aux/check-available-binaries.scm27
1 files changed, 12 insertions, 15 deletions
diff --git a/build-aux/check-available-binaries.scm b/build-aux/check-available-binaries.scm
index 04f88b7d0c..771dcd96b3 100644
--- a/build-aux/check-available-binaries.scm
+++ b/build-aux/check-available-binaries.scm
@@ -26,7 +26,8 @@
(gnu packages emacs)
(gnu packages make-bootstrap)
(srfi srfi-1)
- (srfi srfi-26))
+ (srfi srfi-26)
+ (ice-9 format))
(with-store store
(parameterize ((%graft? #f))
@@ -38,19 +39,15 @@
%bootstrap-tarballs <>)
'("mips64el-linux-gnuabi64")))
(total (append native cross)))
- (define (warn item system)
- (format (current-error-port) "~a (~a) is not substitutable~%"
- item system)
- #f)
(set-build-options store #:use-substitutes? #t)
- (let* ((substitutable? (substitution-oracle store total))
- (result (every (lambda (drv)
- (let ((out (derivation->output-path drv)))
- (or (substitutable? out)
- (warn out (derivation-system drv)))))
- total)))
- (when result
- (format (current-error-port) "~a packages found substitutable~%"
- (length total)))
- (exit result)))))
+ (let* ((total (map derivation->output-path total))
+ (available (substitutable-paths store total))
+ (missing (lset-difference string=? total available)))
+ (if (null? missing)
+ (format (current-error-port) "~a packages found substitutable~%"
+ (length total))
+ (format (current-error-port)
+ "~a packages are not substitutable:~%~{ ~a~%~}~%"
+ (length missing) missing))
+ (exit (null? missing))))))