gnu: guix: Do not copy bootstrap-guile when cross-compiling.
authorJan (janneke) Nieuwenhuizen <janneke@gnu.org>
Fri, 24 Apr 2020 06:54:43 +0000 (08:54 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 26 Apr 2020 17:46:27 +0000 (19:46 +0200)
* gnu/packages/package-management.scm (guix)[arguments]: When cross-compiling,
skip copy-bootstrap-guile phase; needed for tests only.

gnu/packages/package-management.scm

index 3bfee16..1b9697b 100644 (file)
@@ -181,46 +181,48 @@ $(prefix)/etc/init.d\n")))
 
                         (invoke "sh" "bootstrap")))
                     (add-before 'check 'copy-bootstrap-guile
-                      (lambda* (#:key system inputs #:allow-other-keys)
-                        ;; Copy the bootstrap guile tarball in the store used
-                        ;; by the test suite.
-                        (define (intern file recursive?)
-                          ;; Note: don't use 'guix download' here because we
-                          ;; need to set the 'recursive?' argument.
-                          (define base
-                            (strip-store-file-name file))
-
-                          (define code
-                            `(begin
-                               (use-modules (guix))
-                               (with-store store
-                                 (let* ((item (add-to-store store ,base
-                                                            ,recursive?
-                                                            "sha256" ,file))
-                                        (root (string-append "/tmp/gc-root-"
-                                                             (basename item))))
-                                   ;; Register a root so that the GC tests
-                                   ;; don't delete those.
-                                   (symlink item root)
-                                   (add-indirect-root store root)))))
-
-                          (invoke "./test-env" "guile" "-c"
-                                  (object->string code)))
-
-                        (intern (assoc-ref inputs "boot-guile") #f)
-
-                        ;; On x86_64 some tests need the i686 Guile.
-                        ,@(if (and (not (%current-target-system))
-                                   (string=? (%current-system)
-                                             "x86_64-linux"))
-                              '((intern (assoc-ref inputs "boot-guile/i686") #f))
-                              '())
-
-                        ;; Copy the bootstrap executables.
-                        (for-each (lambda (input)
-                                    (intern (assoc-ref inputs input) #t))
-                                  '("bootstrap/bash" "bootstrap/mkdir"
-                                    "bootstrap/tar" "bootstrap/xz"))
+                      (lambda* (#:key system target inputs #:allow-other-keys)
+                        (unless target
+                          (begin
+                            ;; Copy the bootstrap guile tarball in the store
+                            ;; used by the test suite.
+                            (define (intern file recursive?)
+                              ;; Note: don't use 'guix download' here because we
+                              ;; need to set the 'recursive?' argument.
+                              (define base
+                                (strip-store-file-name file))
+
+                              (define code
+                                `(begin
+                                   (use-modules (guix))
+                                   (with-store store
+                                     (let* ((item (add-to-store store ,base
+                                                                ,recursive?
+                                                                "sha256" ,file))
+                                            (root (string-append "/tmp/gc-root-"
+                                                                 (basename item))))
+                                       ;; Register a root so that the GC tests
+                                       ;; don't delete those.
+                                       (symlink item root)
+                                       (add-indirect-root store root)))))
+
+                              (invoke "./test-env" "guile" "-c"
+                                      (object->string code)))
+
+                            (intern (assoc-ref inputs "boot-guile") #f)
+
+                            ;; On x86_64 some tests need the i686 Guile.
+                            ,@(if (and (not (%current-target-system))
+                                       (string=? (%current-system)
+                                                 "x86_64-linux"))
+                                  '((intern (assoc-ref inputs "boot-guile/i686") #f))
+                                  '())
+
+                            ;; Copy the bootstrap executables.
+                            (for-each (lambda (input)
+                                        (intern (assoc-ref inputs input) #t))
+                                      '("bootstrap/bash" "bootstrap/mkdir"
+                                        "bootstrap/tar" "bootstrap/xz"))))
                         #t))
                     (add-after 'unpack 'disable-failing-tests
                       ;; XXX FIXME: These tests fail within the build container.