gnu: guix: Intern bootstrap executables before running tests.

This is a followup to 1ba0b1e6ec.

* gnu/packages/package-management.scm (guix)[arguments]: In
'copy-bootstrap-guile', copy the bootstrap executables.
[inputs]: Add "bootstrap/{bash,mkdir,tar,xz}".
This commit is contained in:
Ludovic Courtès 2019-10-10 17:25:21 +02:00
parent d3650775e0
commit 94d2ff6d9c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -175,23 +175,32 @@ (define-public guix
(lambda* (#:key system inputs #:allow-other-keys) (lambda* (#:key system inputs #:allow-other-keys)
;; Copy the bootstrap guile tarball in the store used ;; Copy the bootstrap guile tarball in the store used
;; by the test suite. ;; by the test suite.
(define (intern tarball) (define (intern file recursive?)
(let ((base (strip-store-file-name tarball))) (let ((base (strip-store-file-name file)))
(copy-file tarball base) ;; Note: don't use 'guix download' here because we
(invoke "./test-env" "guix" "download" ;; need to set the 'recursive?' argument.
(string-append "file://" (getcwd) (invoke "./test-env" "guile" "-c"
"/" base)) (object->string
(delete-file base))) `(begin
(use-modules (guix))
(with-store store
(add-to-store store ,base ,recursive?
"sha256" ,file)))))))
(intern (assoc-ref inputs "boot-guile") #f)
(intern (assoc-ref inputs "boot-guile"))
;; On x86_64 some tests need the i686 Guile. ;; On x86_64 some tests need the i686 Guile.
,@(if (and (not (%current-target-system)) ,@(if (and (not (%current-target-system))
(string=? (%current-system) (string=? (%current-system)
"x86_64-linux")) "x86_64-linux"))
'((intern (assoc-ref inputs "boot-guile/i686"))) '((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)) #t))
(add-after 'unpack 'disable-failing-tests (add-after 'unpack 'disable-failing-tests
;; XXX FIXME: These tests fail within the build container. ;; XXX FIXME: These tests fail within the build container.
@ -270,7 +279,7 @@ (define (intern tarball)
(inputs (inputs
`(("bzip2" ,bzip2) `(("bzip2" ,bzip2)
("gzip" ,gzip) ("gzip" ,gzip)
("zlib" ,zlib) ;for 'guix publish' ("zlib" ,zlib) ;for 'guix publish'
("lzlib" ,lzlib) ;for 'guix publish' and 'guix substitute' ("lzlib" ,lzlib) ;for 'guix publish' and 'guix substitute'
("sqlite" ,sqlite) ("sqlite" ,sqlite)
@ -278,16 +287,23 @@ (define (intern tarball)
("guile" ,guile-2.2) ("guile" ,guile-2.2)
;; Some of the tests use "unshare" when it is available.
("util-linux" ,util-linux)
;; Many tests rely on the 'guile-bootstrap' package, which is why we ;; Many tests rely on the 'guile-bootstrap' package, which is why we
;; have it here. ;; have it here.
("boot-guile" ,(bootstrap-guile-origin (%current-system))) ("boot-guile" ,(bootstrap-guile-origin (%current-system)))
;; Some of the tests use "unshare" when it is available.
("util-linux" ,util-linux)
,@(if (and (not (%current-target-system)) ,@(if (and (not (%current-target-system))
(string=? (%current-system) "x86_64-linux")) (string=? (%current-system) "x86_64-linux"))
`(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux"))) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
'()) '())
;; Tests also rely on these bootstrap executables.
("bootstrap/bash" ,(bootstrap-executable "bash" (%current-system)))
("bootstrap/mkdir" ,(bootstrap-executable "mkdir" (%current-system)))
("bootstrap/tar" ,(bootstrap-executable "tar" (%current-system)))
("bootstrap/xz" ,(bootstrap-executable "xz" (%current-system)))
("glibc-utf8-locales" ,glibc-utf8-locales))) ("glibc-utf8-locales" ,glibc-utf8-locales)))
(propagated-inputs (propagated-inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)