3
0
Fork 0
forked from mirrors/nixpkgs

* Yes! Finally! Bash built with ncurses support! This fixes the

annoying problem with lines longer than 80 (?) characters.

svn path=/nixpkgs/trunk/; revision=8248
This commit is contained in:
Eelco Dolstra 2007-03-06 22:46:03 +00:00
parent 4a85e66bd3
commit 6c6ff6f36f
4 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,47 @@
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-001
Bug-Reported-by: Greg Schafer <gschafer@zip.com.au>
Bug-Reference-ID: <20061012084940.GA15768@tigers.local>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
Bug-Description:
When using historical ``-style command substitution, bash incorrectly attempts
to interpret shell comments while scanning for the closing backquote.
Patch:
*** bash-3.2/parse.y Tue Sep 19 16:37:21 2006
--- new-bash/parse.y Thu Oct 12 10:30:57 2006
***************
*** 2736,2740 ****
count = 1;
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
/* RFLAGS is the set of flags we want to pass to recursive calls. */
--- 2736,2740 ----
count = 1;
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
/* RFLAGS is the set of flags we want to pass to recursive calls. */
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- new-bash/patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 0
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 1
#endif /* _PATCHLEVEL_H_ */

View file

@ -0,0 +1,29 @@
{stdenv, fetchurl, bison, interactive ? false, ncurses ? null}:
assert interactive -> ncurses != null;
stdenv.mkDerivation {
name = "bash-3.2";
src = fetchurl {
url = ftp://ftp.nluug.nl/pub/gnu/bash/bash-3.2.tar.gz;
md5 = "00bfa16d58e034e3c2aa27f390390d30";
};
postInstall = "ln -s bash $out/bin/sh";
patches = [
# Fix a nasty bug in bash-3.2.
./bash32-001.patch
# For dietlibc builds.
./winsize.patch
];
# !!! only needed for bash-3.2 (because of bash32-001.patch)
buildInputs = [bison] ++ (if interactive then [ncurses] else []);
meta = {
description = "GNU Bourne-Again Shell, the de facto standard shell on Linux";
};
}

View file

@ -0,0 +1,14 @@
diff -rc bash-3.1-orig/lib/sh/winsize.c bash-3.1/lib/sh/winsize.c
*** bash-3.1-orig/lib/sh/winsize.c 2006-10-18 18:08:25.000000000 +0200
--- bash-3.1/lib/sh/winsize.c 2006-10-18 18:10:00.000000000 +0200
***************
*** 30,35 ****
--- 30,37 ----
#include <sys/ioctl.h>
+ #include <termios.h>
+
#if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
/* For struct winsize on SCO */
/* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */

View file

@ -567,6 +567,12 @@ rec {
bison = bison23;
});
bashInteractive = import ../shells/bash-interactive {
inherit fetchurl stdenv ncurses;
bison = bison23;
interactive = true;
};
tcsh = import ../shells/tcsh {
inherit fetchurl stdenv ncurses;
};