~ruther/guix-local

2b34b4b46d44b3849b1909892875c56b66cbbdc0 — Ludovic Courtès 11 years ago ce0614d
gnu: bash: Install headers in "include" output.

* gnu/packages/bash.scm (bash)[outputs]: New field.
  [arguments]: Use 'modify-phases'.  Add 'install-headers' phase.
1 files changed, 27 insertions(+), 3 deletions(-)

M gnu/packages/bash.scm
M gnu/packages/bash.scm => gnu/packages/bash.scm +27 -3
@@ 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