summary refs log tree commit diff
path: root/gnu/packages/package-management.scm
diff options
context:
space:
mode:
authorJan (janneke) Nieuwenhuizen <janneke@gnu.org>2020-04-08 09:43:51 +0200
committerJan Nieuwenhuizen <janneke@gnu.org>2020-05-01 08:35:17 +0200
commit38b9af7c92344a17b6680ebd2aeea14171f84a1c (patch)
tree172bd582ea89067b0dd0679a488e06b2f1138eed /gnu/packages/package-management.scm
parent0c5d974fa1c5cb636b0a362b84ddf61185888226 (diff)
downloadguix-38b9af7c92344a17b6680ebd2aeea14171f84a1c.tar.gz
gnu: guix: Cross-build fixup for wrap-program.
This allows running:

    guix build hello

* gnu/packages/package-management.scm (guix)[arguments]: When cross-compiling,
fixup the shebang generated by wrap-program.
[inputs]: When cross-compiling, include bash-minimal.
Diffstat (limited to 'gnu/packages/package-management.scm')
-rw-r--r--gnu/packages/package-management.scm12
1 files changed, 10 insertions, 2 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index d0e607a8d8..3360a3b21b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -37,6 +37,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages bootstrap)          ;for 'bootstrap-guile-origin'
@@ -259,7 +260,8 @@ $(prefix)/etc/init.d\n")))
                         (setenv "SHELL" (which "sh"))
                         #t))
                     (add-after 'install 'wrap-program
-                      (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
+                      (lambda* (#:key inputs native-inputs outputs target
+                                #:allow-other-keys)
                         ;; Make sure the 'guix' command finds GnuTLS,
                         ;; Guile-JSON, and Guile-Git automatically.
                         (let* ((out    (assoc-ref outputs "out"))
@@ -301,6 +303,11 @@ $(prefix)/etc/init.d\n")))
                             `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))
                             `("GUIX_LOCPATH" ":" suffix (,locpath)))
 
+                          (when target
+                            ;; XXX Touching wrap-program rebuilds world
+                            (let ((bash (assoc-ref inputs "bash")))
+                              (substitute* (string-append out "/bin/guix")
+                                (("^#!.*/bash") (string-append "#! " bash "/bin/bash")))))
                           #t))))))
       (native-inputs `(("pkg-config" ,pkg-config)
 
@@ -346,7 +353,8 @@ $(prefix)/etc/init.d\n")))
                `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
                '())
          ,@(if (%current-target-system)
-               `(("xz" ,xz))
+               `(("bash" ,bash-minimal)
+                 ("xz" ,xz))
                '())
 
          ;; Tests also rely on these bootstrap executables.