summary refs log tree commit diff
path: root/distro/packages/ncurses.scm
diff options
context:
space:
mode:
Diffstat (limited to 'distro/packages/ncurses.scm')
-rw-r--r--distro/packages/ncurses.scm39
1 files changed, 30 insertions, 9 deletions
diff --git a/distro/packages/ncurses.scm b/distro/packages/ncurses.scm
index f8641c72f9..938d1dc2c4 100644
--- a/distro/packages/ncurses.scm
+++ b/distro/packages/ncurses.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,7 +24,26 @@
   #:use-module (guix build-system gnu))
 
 (define-public ncurses
-  (let ((post-install-phase
+  (let ((patch-makefile-phase
+         '(lambda _
+            (for-each patch-makefile-SHELL
+                      (find-files "." "Makefile.in"))))
+        (configure-phase
+         '(lambda* (#:key inputs outputs configure-flags
+                    #:allow-other-keys)
+            ;; The `ncursesw5-config' has a #!/bin/sh.  We want to patch
+            ;; it to point to libc's embedded Bash, to avoid retaining a
+            ;; reference to the bootstrap Bash.
+            (let* ((libc (assoc-ref inputs "libc"))
+                   (bash (string-append libc "/bin/bash"))
+                   (out  (assoc-ref outputs "out")))
+              (format #t "configure flags: ~s~%" configure-flags)
+              (zero? (apply system* bash "./configure"
+                            (string-append "SHELL=" bash)
+                            (string-append "CONFIG_SHELL=" bash)
+                            (string-append "--prefix=" out)
+                            configure-flags)))))
+        (post-install-phase
          '(lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               ;; When building a wide-character (Unicode) build, create backward
@@ -81,13 +100,15 @@
                     '("--without-cxx-binding")
                     '()))
            #:tests? #f                            ; no "check" target
-           #:phases (alist-cons-after 'install 'post-install
-                                      ,post-install-phase
-                                      %standard-phases)
-
-           ;; The `ncursesw5-config' has a #!/bin/sh that we don't want to
-           ;; patch, to avoid retaining a reference to the build-time Bash.
-           #:patch-shebangs? #f))
+           #:phases (alist-cons-after
+                     'install 'post-install ,post-install-phase
+                     (alist-cons-before
+                      'configure 'patch-makefile-SHELL
+                      ,patch-makefile-phase
+                      (alist-replace
+                       'configure
+                       ,configure-phase
+                       %standard-phases)))))
         ((system cross-system)
          (arguments cross-system))))
      (self-native-input? #t)