summary refs log tree commit diff
path: root/distro/packages/base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-12-19 12:34:53 +0100
committerLudovic Courtès <ludo@gnu.org>2012-12-19 12:34:53 +0100
commitea8fbbf2f2d8beccad1c7a98077c0a31fb40e578 (patch)
tree0fc94e09da1c32762648c533d3a6665d7dc16c57 /distro/packages/base.scm
parentc3ee7448c9c10d0fdcc52fd1d57031cf6677aafc (diff)
downloadguix-ea8fbbf2f2d8beccad1c7a98077c0a31fb40e578.tar.gz
distro: make: Change default shell from /bin/sh to the actual shell.
* distro/packages/base.scm (gnu-make): Add `set-default-shell' phase.
  (gnu-make-boot0): Adjust phases accordingly.
Diffstat (limited to 'distro/packages/base.scm')
-rw-r--r--distro/packages/base.scm46
1 files changed, 29 insertions, 17 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm
index f0dd150e12..4bd8070827 100644
--- a/distro/packages/base.scm
+++ b/distro/packages/base.scm
@@ -289,8 +289,18 @@ are expected to exist on every operating system.")
    (build-system gnu-build-system)
    (native-inputs
     `(("patch/impure-dirs" ,(search-patch "make-impure-dirs.patch"))))
-   (arguments `(#:patches (list (assoc-ref %build-inputs
-                                           "patch/impure-dirs"))))
+   (arguments
+    '(#:patches (list (assoc-ref %build-inputs "patch/impure-dirs"))
+      #:phases (alist-cons-before
+                'build 'set-default-shell
+                (lambda* (#:key inputs #:allow-other-keys)
+                  ;; Change the default shell from /bin/sh.
+                  (let ((bash (assoc-ref inputs "bash")))
+                    (substitute* "job.c"
+                      (("default_shell\\[\\] =.*$")
+                       (format #f "default_shell[] = \"~a/bin/bash\";\n"
+                               bash)))))
+                %standard-phases)))
    (synopsis "GNU Make, a program controlling the generation of non-source
 files from sources")
    (description
@@ -534,21 +544,23 @@ with the Linux kernel.")
    (package (inherit gnu-make)
      (name "make-boot0")
      (location (source-properties->location (current-source-location)))
-     (arguments `(#:guile ,%bootstrap-guile
-                  #:implicit-inputs? #f
-                  #:tests? #f                  ; cannot run "make check"
-                  #:phases
-                  (alist-replace
-                   'build (lambda _
-                            (zero? (system* "./build.sh")))
-                   (alist-replace
-                    'install (lambda* (#:key outputs #:allow-other-keys)
-                               (let* ((out (assoc-ref outputs "out"))
-                                      (bin (string-append out "/bin")))
-                                 (mkdir-p bin)
-                                 (copy-file "make"
-                                            (string-append bin "/make"))))
-                    %standard-phases))))
+     (arguments
+      `(#:guile ,%bootstrap-guile
+        #:implicit-inputs? #f
+        #:tests? #f                  ; cannot run "make check"
+        ,@(substitute-keyword-arguments (package-arguments gnu-make)
+            ((#:phases phases)
+             `(alist-replace
+               'build (lambda _
+                        (zero? (system* "./build.sh")))
+               (alist-replace
+                'install (lambda* (#:key outputs #:allow-other-keys)
+                           (let* ((out (assoc-ref outputs "out"))
+                                  (bin (string-append out "/bin")))
+                             (mkdir-p bin)
+                             (copy-file "make"
+                                        (string-append bin "/make"))))
+                ,phases))))))
      (inputs %bootstrap-inputs))))
 
 (define diffutils-boot0