From 1ffa7090b99dfd2f54fa883929c5e78d7852657a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 18 Jan 2013 01:06:24 +0100 Subject: distro: Change the module name space to (gnu ...). * distro: Rename to... * gnu: ... this. Update module names accordingly. * Makefile.am: Adjust accordingly. * po/POTFILES.in: Likewise. * distro.scm: Search for files under /gnu/packages instead of /distro/packages. * gnu/packages/base.scm (ld-wrapper-boot3): Likewise. --- gnu/packages/bash.scm | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 gnu/packages/bash.scm (limited to 'gnu/packages/bash.scm') diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm new file mode 100644 index 0000000000..d74315ad18 --- /dev/null +++ b/gnu/packages/bash.scm @@ -0,0 +1,110 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages bash) + #:use-module (guix licenses) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu)) + +(define-public bash + (let ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" + "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'" + "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" + "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" + "-DNON_INTERACTIVE_LOGIN_SHELLS" + "-DSSH_SOURCE_BASHRC") + " ")) + (post-install-phase + '(lambda* (#:key outputs #:allow-other-keys) + ;; Add a `bash' -> `sh' link. + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/bin") + (symlink "bash" "sh")))))) + (package + (name "bash") + (version "4.2") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/bash/bash-" version ".tar.gz")) + (sha256 + (base32 + "1n5kbblp5ykbz5q8aq88lsif2z0gnvddg9babk33024wxiwi2ym2")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline) + ("ncurses" ,ncurses))) ; TODO: add texinfo + (arguments + `(#:configure-flags `("--with-installed-readline" + ,,(string-append "CPPFLAGS=" cppflags) + ,(string-append + "LDFLAGS=-Wl,-rpath -Wl," + (assoc-ref %build-inputs "readline") + "/lib" + " -Wl,-rpath -Wl," + (assoc-ref %build-inputs "ncurses") + "/lib")) + + ;; Bash is reportedly not parallel-safe. See, for instance, + ;; and + ;; . + #:parallel-build? #f + #:parallel-tests? #f + + ;; XXX: The tests have a lot of hard-coded paths, so disable them + ;; for now. + #:tests? #f + + #:phases (alist-cons-after 'install 'post-install + ,post-install-phase + %standard-phases))) + (synopsis "GNU Bourne-Again Shell") + (description + "Bash is the shell, or command language interpreter, that will appear in +the GNU operating system. Bash is an sh-compatible shell that incorporates +useful features from the Korn shell (ksh) and C shell (csh). It is intended +to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It +offers functional improvements over sh for both programming and interactive +use. In addition, most sh scripts can be run by Bash without +modification.") + (license gpl3+) + (home-page "http://www.gnu.org/software/bash/")))) + +(define-public bash-light + ;; A stripped-down Bash for non-interactive use. + (package (inherit bash) + (name "bash-light") + (inputs '()) ; no readline, no curses + (arguments + (let ((args `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + ,@(package-arguments bash)))) + (substitute-keyword-arguments args + ((#:configure-flags flags) + `(list "--without-bash-malloc" + "--disable-readline" + "--disable-history" + "--disable-help-builtin" + "--disable-progcomp" + "--disable-net-redirections" + "--disable-nls"))))))) -- cgit v1.2.3