gnu: git-lfs: Make usage text available.
[jackhill/guix/guix.git] / build-aux / check-final-inputs-self-contained.scm
index ade4e98..c819086 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;;
-;;; Check whether important binaries are available at hydra.gnu.org.
+;;; Check whether important binaries are available.
 ;;;
 
 (use-modules (guix store)
+             (guix grafts)
              (guix packages)
              (guix derivations)
              (guix ui)
              (srfi srfi-1)
              (srfi srfi-26))
 
-(define %supported-systems
-  '("x86_64-linux" "i686-linux"))
-
 (define (final-inputs store system)
   "Return the list of outputs directories of the final inputs for SYSTEM."
   (append-map (match-lambda
-               ((name package)
-                (let ((drv (package-derivation store package system)))
-                  ;; Libc's 'debug' output refers to gcc-cross-boot0, but it's
-                  ;; hard to avoid, so we tolerate it.  This should be the
-                  ;; only exception.
-                  (filter-map (match-lambda
-                               (("debug" . directory)
-                                (if (string=? "glibc" (package-name package))
-                                    #f
-                                    directory))
-                               ((_ . directory) directory))
-                              (derivation->output-paths drv)))))
+                ((or (name package) (name package _))
+                 (let ((drv (package-derivation store package system)))
+                   ;; Libc's 'debug' output refers to gcc-cross-boot0, but it's
+                   ;; hard to avoid, so we tolerate it.  This should be the
+                   ;; only exception.  Likewise, 'bash:include' depends on
+                   ;; bootstrap-binaries via its 'Makefile.inc' (FIXME).
+                   (filter-map (match-lambda
+                                 (("debug" . directory)
+                                  (if (string=? "glibc" (package-name package))
+                                      #f
+                                      directory))
+                                 (("include" . directory)
+                                  (if (string=? "bash" (package-name package))
+                                      #f
+                                      directory))
+                                 ((_ . directory) directory))
+                               (derivation->output-paths drv)))))
               %final-inputs))
 
 (define (assert-valid-substitute substitute)
@@ -54,7 +57,7 @@
 if it does."
   (let ((references (substitutable-references substitute)))
     (when (any (cut string-contains <> "boot") references)
-      (leave (_ "'~a' refers to bootstrap inputs: ~s~%")
+      (leave (G_ "'~a' refers to bootstrap inputs: ~s~%")
              (substitutable-path substitute) references))))
 
 (define (test-final-inputs store system)
@@ -68,7 +71,7 @@ refer to the bootstrap tools."
                                 (string=? (substitutable-path substitute)
                                           dir))
                               available)
-                  (leave (_ "~a (system: ~a) has no substitute~%")
+                  (leave (G_ "~a (system: ~a) has no substitute~%")
                          dir system)))
               inputs)
 
@@ -76,8 +79,9 @@ refer to the bootstrap tools."
 
 ;; Entry point.
 (with-store store
-  (set-build-options store #:use-substitutes? #t)
+  (parameterize ((%graft? #f))
+    (set-build-options store #:use-substitutes? #t)
 
-  (for-each (cut test-final-inputs store <>)
-            %supported-systems))
+    (for-each (cut test-final-inputs store <>)
+              %hydra-supported-systems)))