[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: gnu: bash: Install headers in "include" output.
From: |
Ludovic Courtès |
Subject: |
01/01: gnu: bash: Install headers in "include" output. |
Date: |
Wed, 04 Mar 2015 22:21:37 +0000 |
civodul pushed a commit to branch core-updates
in repository guix.
commit 2b34b4b46d44b3849b1909892875c56b66cbbdc0
Author: Ludovic Courtès <address@hidden>
Date: Wed Mar 4 23:21:09 2015 +0100
gnu: bash: Install headers in "include" output.
* gnu/packages/bash.scm (bash)[outputs]: New field.
[arguments]: Use 'modify-phases'. Add 'install-headers' phase.
---
gnu/packages/bash.scm | 30 +++++++++++++++++++++++++++---
1 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index c669194..4f92547 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -127,6 +127,26 @@ number/base32-hash tuples, directly usable in the
'patch-series' form."
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion (string-append out "/bin")
(symlink "bash" "sh")))))
+ (install-headers-phase
+ '(lambda* (#:key outputs #:allow-other-keys)
+ ;; Install Bash headers so that packages that provide extensions
+ ;; can use them. We install them in include/bash; that's what
+ ;; Debian does and what Bash extensions like recutils or
+ ;; guile-bash expect.
+ (let ((include (string-append (assoc-ref outputs "include")
+ "/include/bash"))
+ (headers
"^\\./(builtins/|lib/glob/|lib/tilde/|)[^/]+\\.h$"))
+ (mkdir-p include)
+ (for-each (lambda (file)
+ (when ((@ (ice-9 regex) string-match) headers file)
+ (let ((directory (string-append include "/"
+ (dirname file))))
+ (mkdir-p directory)
+ (copy-file file
+ (string-append directory "/"
+ (basename file))))))
+ (find-files "." "\\.h$"))
+ #t)))
(version "4.3"))
(package
(name "bash")
@@ -147,6 +167,9 @@ number/base32-hash tuples, directly usable in the
'patch-series' form."
(version (string-append version "."
(number->string (length %patch-series-4.3))))
(build-system gnu-build-system)
+
+ (outputs '("out"
+ "include")) ;headers used by extensions
(native-inputs `(("bison" ,bison))) ;to rebuild the parser
(inputs `(("readline" ,readline)
("ncurses" ,ncurses))) ;TODO: add texinfo
@@ -168,9 +191,10 @@ number/base32-hash tuples, directly usable in the
'patch-series' form."
;; for now.
#:tests? #f
- #:phases (alist-cons-after 'install 'post-install
- ,post-install-phase
- %standard-phases)))
+ #:phases (modify-phases %standard-phases
+ (add-after install post-install ,post-install-phase)
+ (add-after install install-headers
+ ,install-headers-phase))))
(synopsis "The GNU Bourne-Again SHell")
(description
"Bash is the shell, or command-line interpreter, of the GNU system. It