diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-03-06 11:36:22 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-03-06 11:36:22 +0000 |
commit | 2989ce0cac7eef85d1a792067b689c1825371126 (patch) | |
tree | 6e7f5b26a365bc841e9e7f6dce6ccd8a1ff273b4 /pkgs/shells/bash/default.nix | |
parent | 88d14c0e29a5966dcf16b307eaa71b583ac7ea50 (diff) | |
parent | 3c56e571afe9ffa30822de8cc31a71d7be1a13f2 (diff) | |
download | nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar.gz nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar.bz2 nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar.lz nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar.xz nixlib-2989ce0cac7eef85d1a792067b689c1825371126.tar.zst nixlib-2989ce0cac7eef85d1a792067b689c1825371126.zip |
* Merged the stdenv branch. Yay!
svn path=/nixpkgs/trunk/; revision=32821
Diffstat (limited to 'pkgs/shells/bash/default.nix')
-rw-r--r-- | pkgs/shells/bash/default.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix new file mode 100644 index 000000000000..98fe43b0122a --- /dev/null +++ b/pkgs/shells/bash/default.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchurl, readline ? null, interactive ? false, texinfo ? null, bison }: + +assert interactive -> readline != null; + +let + realName = "bash-4.2"; + baseConfigureFlags = if interactive then "--with-installed-readline" else "--disable-readline"; +in + +stdenv.mkDerivation rec { + name = "${realName}-p${toString (builtins.length patches)}"; + + src = fetchurl { + url = "mirror://gnu/bash/${realName}.tar.gz"; + sha256 = "a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8"; + }; + + NIX_CFLAGS_COMPILE = '' + -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 + ''; + + patchFlags = "-p0"; + + patches = + let + patch = nr: sha256: + fetchurl { + url = "mirror://gnu/bash/bash-4.2-patches/bash42-${nr}"; + inherit sha256; + }; + in + import ./bash-4.2-patches.nix patch; + + crossAttrs = { + configureFlags = baseConfigureFlags + + " bash_cv_job_control_missing=nomissing bash_cv_sys_named_pipes=nomissing"; + }; + + configureFlags = baseConfigureFlags; + + # Note: Bison is needed because the patches above modify parse.y. + buildNativeInputs = [bison] + ++ stdenv.lib.optional (texinfo != null) texinfo + ++ stdenv.lib.optional interactive readline; + + postInstall = '' + # Add an `sh' -> `bash' symlink. + ln -s bash "$out/bin/sh" + ''; + + meta = { + homepage = http://www.gnu.org/software/bash/; + description = + "GNU Bourne-Again Shell, the de facto standard shell on Linux" + + (if interactive then " (for interactive use)" else ""); + + longDescription = '' + 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 = "GPLv3+"; + + maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ]; + }; + + passthru = { + shellPath = "/bin/bash"; + }; +} |