mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-08 07:56:16 -05:00
gnu: guix: Cross-build fix: override compressors.
* gnu/packages/package-management.scm (guix)[arguments]: When cross-compiling, add `fixup-compressors' stage. [inputs]: When cross-compiling, add `xz'.
This commit is contained in:
parent
56389433bc
commit
569c55bee2
1 changed files with 55 additions and 38 deletions
|
@ -180,49 +180,63 @@ (define-public guix
|
||||||
$(prefix)/etc/init.d\n")))
|
$(prefix)/etc/init.d\n")))
|
||||||
|
|
||||||
(invoke "sh" "bootstrap")))
|
(invoke "sh" "bootstrap")))
|
||||||
|
(add-before 'build 'use-host-compressors
|
||||||
|
(lambda* (#:key inputs target #:allow-other-keys)
|
||||||
|
(when target
|
||||||
|
;; Use host compressors.
|
||||||
|
(let ((bzip2 (assoc-ref inputs "bzip2"))
|
||||||
|
(gzip (assoc-ref inputs "gzip"))
|
||||||
|
(xz (assoc-ref inputs "xz")))
|
||||||
|
(substitute* "guix/config.scm"
|
||||||
|
(("\"[^\"]*/bin/bzip2")
|
||||||
|
(string-append "\"" bzip2 "/bin/bzip2"))
|
||||||
|
(("\"[^\"]*/bin/gzip") gzip
|
||||||
|
(string-append "\"" gzip "/bin/gzip"))
|
||||||
|
(("\"[^\"]*/bin//xz")
|
||||||
|
(string-append "\"" xz "/bin/xz")))))
|
||||||
|
#t))
|
||||||
(add-before 'check 'copy-bootstrap-guile
|
(add-before 'check 'copy-bootstrap-guile
|
||||||
(lambda* (#:key system target inputs #:allow-other-keys)
|
(lambda* (#:key system target 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)))
|
||||||
|
|
||||||
(unless target
|
(unless target
|
||||||
(begin
|
(intern (assoc-ref inputs "boot-guile") #f)
|
||||||
;; 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
|
;; On x86_64 some tests need the i686 Guile.
|
||||||
`(begin
|
,@(if (and (not (%current-target-system))
|
||||||
(use-modules (guix))
|
(string=? (%current-system)
|
||||||
(with-store store
|
"x86_64-linux"))
|
||||||
(let* ((item (add-to-store store ,base
|
'((intern (assoc-ref inputs "boot-guile/i686") #f))
|
||||||
,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"
|
;; Copy the bootstrap executables.
|
||||||
(object->string code)))
|
(for-each (lambda (input)
|
||||||
|
(intern (assoc-ref inputs input) #t))
|
||||||
(intern (assoc-ref inputs "boot-guile") #f)
|
'("bootstrap/bash" "bootstrap/mkdir"
|
||||||
|
"bootstrap/tar" "bootstrap/xz")))
|
||||||
;; 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))
|
#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.
|
||||||
|
@ -331,6 +345,9 @@ (define code
|
||||||
(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")))
|
||||||
'())
|
'())
|
||||||
|
,@(if (%current-target-system)
|
||||||
|
`(("xz" ,xz))
|
||||||
|
'())
|
||||||
|
|
||||||
;; Tests also rely on these bootstrap executables.
|
;; Tests also rely on these bootstrap executables.
|
||||||
("bootstrap/bash" ,(bootstrap-executable "bash" (%current-system)))
|
("bootstrap/bash" ,(bootstrap-executable "bash" (%current-system)))
|
||||||
|
|
Loading…
Reference in a new issue