summary refs log tree commit diff
path: root/pkgs/shells/bash
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-10-15 13:39:24 +0200
committerVladimír Čunát <vcunat@gmail.com>2015-10-28 10:09:33 +0100
commit6d6f8282f4583e0b1bde9ee8f5acda35050e71c8 (patch)
tree0605ba86565dfb78a946d9499fe5e298bc1bd854 /pkgs/shells/bash
parentdaa543a45506133faba0744a2c68743c0a0df2e2 (diff)
downloadnixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar.gz
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar.bz2
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar.lz
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar.xz
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.tar.zst
nixlib-6d6f8282f4583e0b1bde9ee8f5acda35050e71c8.zip
bash: remove bashbug for non-interactive, refactor
Diffstat (limited to 'pkgs/shells/bash')
-rw-r--r--pkgs/shells/bash/default.nix35
1 files changed, 21 insertions, 14 deletions
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix
index a01d17d3b595..e49e7ef5da49 100644
--- a/pkgs/shells/bash/default.nix
+++ b/pkgs/shells/bash/default.nix
@@ -9,6 +9,8 @@ let
   shortName = "bash43";
   baseConfigureFlags = if interactive then "--with-installed-readline" else "--disable-readline";
   sha256 = "1m14s1f61mf6bijfibcjm9y6pkyvz6gibyl8p4hxq90fisi8gimg";
+
+  inherit (stdenv.lib) optional optionalString;
 in
 
 stdenv.mkDerivation rec {
@@ -41,17 +43,17 @@ stdenv.mkDerivation rec {
         };
     in
       import ./bash-4.3-patches.nix patch) 
-      ++ stdenv.lib.optional stdenv.isCygwin ./cygwin-bash-4.3.33-1.src.patch;
+      ++ optional stdenv.isCygwin ./cygwin-bash-4.3.33-1.src.patch;
 
   crossAttrs = {
     configureFlags = baseConfigureFlags +
       " bash_cv_job_control_missing=nomissing bash_cv_sys_named_pipes=nomissing" +
-      stdenv.lib.optionalString stdenv.isCygwin ''
+      optionalString stdenv.isCygwin ''
         --without-libintl-prefix --without-libiconv-prefix
         --with-installed-readline
         bash_cv_dev_stdin=present
         bash_cv_dev_fd=standard
-        bash_cv_termcap_lib=libncurses 
+        bash_cv_termcap_lib=libncurses
       '';
   };
 
@@ -59,24 +61,29 @@ stdenv.mkDerivation rec {
 
   # Note: Bison is needed because the patches above modify parse.y.
   nativeBuildInputs = [bison]
-    ++ stdenv.lib.optional (texinfo != null) texinfo
-    ++ stdenv.lib.optional interactive readline
-    ++ stdenv.lib.optional stdenv.isDarwin binutils;
+    ++ optional (texinfo != null) texinfo
+    ++ optional interactive readline
+    ++ optional stdenv.isDarwin binutils;
 
   # Bash randomly fails to build because of a recursive invocation to
   # build `version.h'.
   enableParallelBuilding = false;
 
   postInstall = ''
-    # Add an `sh' -> `bash' symlink.
     ln -s bash "$out/bin/sh"
-  ''
+  '';
+
+  postFixup = if interactive
+    then ''
+      substituteInPlace "$out/bin/bashbug" \
+        --replace '${stdenv.shell}' "$out/bin/bash"
+    ''
     # most space is taken by locale data
-    + stdenv.lib.optionalString (!interactive) ''
-      rm -r "$out/share"
+    else ''
+      rm -r "$out/share" "$out/bin/bashbug"
     '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/bash/;
     description =
       "GNU Bourne-Again Shell, the de facto standard shell on Linux" +
@@ -93,11 +100,11 @@ stdenv.mkDerivation rec {
       Bash without modification.
     '';
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
 
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    maintainers = [ maintainers.simons ];
   };
 
   passthru = {