diff --git a/bash-2.03-manual.patch b/bash-2.03-manual.patch index 21a22362..6a34048b 100644 --- a/bash-2.03-manual.patch +++ b/bash-2.03-manual.patch @@ -19,7 +19,7 @@ .B \-D A list of all double-quoted strings preceded by \fB$\fP is printed on the standard output. -@@ -7294,6 +7300,11 @@ Apply the following `\fBs\fP' modifier o +@@ -7382,6 +7388,11 @@ Apply the following `\fBs\fP' modifier o .SH "SHELL BUILTIN COMMANDS" .\" start of bash_builtins .zZ @@ -31,7 +31,7 @@ .PP Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -@@ -10768,6 +10779,11 @@ process or job waited for. +@@ -11081,6 +11092,11 @@ process or job waited for. .SH "RESTRICTED SHELL" .\" rbash.1 .zY diff --git a/bash-3.2-printf.patch b/bash-3.2-printf.patch index 433b628c..9f71726b 100644 --- a/bash-3.2-printf.patch +++ b/bash-3.2-printf.patch @@ -12,7 +12,7 @@ #include "../bashtypes.h" -@@ -662,12 +663,20 @@ printf_builtin (list) +@@ -661,12 +662,20 @@ printf_builtin (list) case 'A': #endif { diff --git a/bash-4.0-security.patch b/bash-4.0-security.patch deleted file mode 100644 index 51164c5c..00000000 --- a/bash-4.0-security.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- - variables.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - ---- variables.c -+++ variables.c 2018-12-21 13:24:48.757352405 +0000 -@@ -1324,6 +1324,7 @@ static int seeded_subshell = 0; - # define BASH_RAND_MAX 0x7fffffff /* 32 bits */ - #endif - -+#if !defined(linux) - /* Returns a pseudo-random number between 0 and 32767. */ - static int - brand () -@@ -1380,6 +1381,40 @@ seedrand () - #endif - } - -+#else -+/* Use ISO C Random Number Functions of the glibc */ -+static int -+brand (void) -+{ -+ if (rseed == 0) -+ seedrand (); -+ return ((unsigned int)(rand() & BASH_RAND_MAX)); /* was % BASH_RAND_MAX+1 */ -+} -+ -+static void -+sbrand (unsigned long seed) -+{ -+ rseed = seed; -+ srand(seed); -+} -+ -+static void -+seedrand (void) -+{ -+ struct timeval tv; -+#ifdef _EXTENDTHIS -+ SHELL_VAR *v; -+#endif -+ gettimeofday (&tv, NULL); -+#ifdef _EXTENDTHIS -+ v = find_variable ("BASH_VERSION"); -+ sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid () ^ ((u_bits32_t)&v & 0x7fffffff)); -+#else -+ srand (tv.tv_sec ^ tv.tv_usec ^ getpid ()); -+#endif -+} -+#endif -+ - static SHELL_VAR * - assign_random (self, value, unused, key) - SHELL_VAR *self; diff --git a/bash-4.0-setlocale.dif b/bash-4.0-setlocale.dif index 029ef207..61b81192 100644 --- a/bash-4.0-setlocale.dif +++ b/bash-4.0-setlocale.dif @@ -12,7 +12,7 @@ /* The current domain for textdomain(3). */ static char *default_domain; -@@ -339,11 +340,21 @@ get_locale_var (var) +@@ -359,11 +360,21 @@ get_locale_var (var) if (locale == 0 || *locale == 0) locale = lang; if (locale == 0 || *locale == 0) diff --git a/bash-4.1-completion.dif b/bash-4.1-completion.dif index 9e89468b..9f66ad48 100644 --- a/bash-4.1-completion.dif +++ b/bash-4.1-completion.dif @@ -4,7 +4,7 @@ --- bashline.c +++ bashline.c 2018-11-29 08:12:25.876588305 +0000 -@@ -2043,6 +2043,13 @@ globword: +@@ -2128,6 +2128,13 @@ globword: return ((char *)NULL); } diff --git a/bash-4.2-nscdunmap.dif b/bash-4.2-nscdunmap.dif index 07f9cd1e..604bc790 100644 --- a/bash-4.2-nscdunmap.dif +++ b/bash-4.2-nscdunmap.dif @@ -12,7 +12,7 @@ # include #endif -@@ -1800,6 +1801,28 @@ init_interactive_script () +@@ -1855,6 +1856,28 @@ init_interactive_script () #endif } @@ -41,7 +41,7 @@ void get_current_user_info () { -@@ -1831,6 +1854,7 @@ get_current_user_info () +@@ -1886,6 +1909,7 @@ get_current_user_info () #if defined (HAVE_GETPWENT) endpwent (); #endif diff --git a/bash-4.3-2.4.4.patch b/bash-4.3-2.4.4.patch index 9ce0a8c9..8629fb68 100644 --- a/bash-4.3-2.4.4.patch +++ b/bash-4.3-2.4.4.patch @@ -1,15 +1,17 @@ --- array.c | 2 +- examples/loadables/tee.c | 3 ++- - hashlib.c | 2 +- + hashlib.c | 4 ++-- jobs.c | 9 +++++++++ sig.c | 4 ++-- sig.h | 4 ++-- - 6 files changed, 17 insertions(+), 7 deletions(-) + trap.c | 2 +- + trap.h | 2 +- + 8 files changed, 20 insertions(+), 10 deletions(-) --- array.c -+++ array.c 2018-11-29 08:10:37.098634355 +0000 -@@ -965,7 +965,7 @@ char *s, *sep; ++++ array.c 2020-10-12 16:00:37.207185803 +0000 +@@ -1028,7 +1028,7 @@ char *s, *sep; * To make a running version, compile -DTEST_ARRAY and link with: * xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a */ @@ -19,7 +21,7 @@ int signal_is_trapped(s) --- examples/loadables/tee.c -+++ examples/loadables/tee.c 2018-11-29 08:10:37.098634355 +0000 ++++ examples/loadables/tee.c 2020-10-12 16:00:37.267184666 +0000 @@ -35,6 +35,7 @@ #include "bashansi.h" @@ -38,19 +40,21 @@ extern char *strerror (); --- hashlib.c -+++ hashlib.c 2018-11-29 08:10:37.098634355 +0000 -@@ -391,7 +391,7 @@ hash_pstats (table, name) ++++ hashlib.c 2020-10-12 16:02:31.677016331 +0000 +@@ -473,8 +473,8 @@ hash_pstats (table, name) HASH_TABLE *table, *ntable; -int interrupt_immediately = 0; +-int running_trap = 0; +volatile sig_atomic_t interrupt_immediately = 0; ++volatile sig_atomic_t running_trap = 0; int signal_is_trapped (s) --- jobs.c -+++ jobs.c 2018-11-29 08:10:37.102634281 +0000 -@@ -1999,6 +1999,15 @@ make_child (command, async_p) ++++ jobs.c 2020-10-12 16:00:37.267184666 +0000 +@@ -2221,6 +2221,15 @@ make_child (command, flags) child process, go back and change callers who free `command' in the child process when this returns. */ mypid = getpid (); @@ -67,7 +71,7 @@ /* Close default_buffered_input if it's > 0. We don't close it if it's 0 because that's the file descriptor used when redirecting input, --- sig.c -+++ sig.c 2018-11-29 08:10:37.102634281 +0000 ++++ sig.c 2020-10-12 16:00:37.267184666 +0000 @@ -83,10 +83,10 @@ sigset_t top_level_mask; #endif /* JOB_CONTROL */ @@ -82,7 +86,7 @@ #if defined (SIGWINCH) static SigHandler *old_winch = (SigHandler *)SIG_DFL; --- sig.h -+++ sig.h 2018-11-29 08:10:37.102634281 +0000 ++++ sig.h 2020-10-12 16:03:44.403637781 +0000 @@ -109,8 +109,8 @@ do { \ extern volatile sig_atomic_t sigwinch_received; extern volatile sig_atomic_t sigterm_received; @@ -93,4 +97,26 @@ +extern volatile sig_atomic_t terminate_immediately; /* Functions from sig.c. */ - extern sighandler termsig_sighandler __P((int)); + extern sighandler termsig_sighandler PARAMS((int)); +--- trap.c ++++ trap.c 2020-10-12 16:08:10.102600477 +0000 +@@ -111,7 +111,7 @@ int pending_traps[NSIG]; + Used in execute_cmd.c and builtins/common.c to clean up when + parse_and_execute does not return normally after executing the + trap command (e.g., when `return' is executed in the trap command). */ +-int running_trap; ++volatile sig_atomic_t running_trap; + + /* Set to last_command_exit_value before running a trap. */ + int trap_saved_exit_value; +--- trap.h ++++ trap.h 2020-10-12 16:05:57.105122164 +0000 +@@ -62,7 +62,7 @@ extern char *trap_list[]; + + extern int trapped_signal_received; + extern int wait_signal_received; +-extern int running_trap; ++extern volatile sig_atomic_t running_trap; + extern int trap_saved_exit_value; + extern int suppress_debug_trap_verbose; + diff --git a/bash-4.3-loadables.dif b/bash-4.3-loadables.dif index 67891c54..67a8936f 100644 --- a/bash-4.3-loadables.dif +++ b/bash-4.3-loadables.dif @@ -1,16 +1,16 @@ --- - examples/loadables/finfo.c | 9 ++++----- + examples/loadables/finfo.c | 3 +-- examples/loadables/head.c | 2 -- examples/loadables/id.c | 2 -- examples/loadables/mkdir.c | 2 +- examples/loadables/pathchk.c | 2 -- examples/loadables/print.c | 2 +- examples/loadables/tee.c | 2 -- - 7 files changed, 6 insertions(+), 15 deletions(-) + 7 files changed, 3 insertions(+), 12 deletions(-) --- examples/loadables/finfo.c +++ examples/loadables/finfo.c 2018-09-20 08:07:43.739129083 +0000 -@@ -102,7 +102,7 @@ int argc; +@@ -108,7 +108,7 @@ int argc; char **argv; { register int i; @@ -19,24 +19,7 @@ sh_optind = 0; /* XXX */ prog = base_pathname(argv[0]); -@@ -334,13 +334,13 @@ int flags; - else - printf("%ld\n", st->st_ctime); - } else if (flags & OPT_DEV) -- printf("%d\n", st->st_dev); -+ printf("%lu\n", (unsigned long)st->st_dev); - else if (flags & OPT_INO) - printf("%lu\n", (unsigned long)st->st_ino); - else if (flags & OPT_FID) -- printf("%d:%lu\n", st->st_dev, (unsigned long)st->st_ino); -+ printf("%lu:%lu\n", (unsigned long)st->st_dev, (unsigned long)st->st_ino); - else if (flags & OPT_NLINK) -- printf("%d\n", st->st_nlink); -+ printf("%lu\n", (unsigned long)st->st_nlink); - else if (flags & OPT_LNKNAM) { - #ifdef S_ISLNK - b = xmalloc(4096); -@@ -390,7 +390,6 @@ finfo_builtin(list) +@@ -396,7 +396,6 @@ finfo_builtin(list) { int c, r; char **v; diff --git a/bash-4.3-pathtemp.patch b/bash-4.3-pathtemp.patch index 6727f18a..5ea8a444 100644 --- a/bash-4.3-pathtemp.patch +++ b/bash-4.3-pathtemp.patch @@ -60,7 +60,7 @@ static char * get_tmpdir (flags) int flags; -@@ -186,7 +221,8 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -194,7 +229,8 @@ sh_mktmpfd (nameroot, flags, namep) { char *filename, *tdir, *lroot; int fd, tdlen; @@ -70,7 +70,7 @@ filename = (char *)xmalloc (PATH_MAX + 1); tdir = get_tmpdir (flags); tdlen = strlen (tdir); -@@ -201,6 +237,10 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -217,6 +253,10 @@ sh_mktmpfd (nameroot, flags, namep) free (filename); filename = NULL; } @@ -81,7 +81,7 @@ if (namep) *namep = filename; return fd; -@@ -219,6 +259,13 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -235,6 +275,13 @@ sh_mktmpfd (nameroot, flags, namep) } while (fd < 0 && errno == EEXIST); diff --git a/bash-4.3-sigrestart.patch b/bash-4.3-sigrestart.patch index 5da6d795..4875e14f 100644 --- a/bash-4.3-sigrestart.patch +++ b/bash-4.3-sigrestart.patch @@ -4,7 +4,7 @@ --- sig.c +++ sig.c 2018-11-29 08:13:00.103944580 +0000 -@@ -761,6 +761,8 @@ set_signal_handler (sig, handler) +@@ -788,6 +788,8 @@ set_signal_handler (sig, handler) if (sig == SIGCHLD) act.sa_flags |= SA_RESTART; /* XXX */ #endif @@ -13,7 +13,7 @@ /* Let's see if we can keep SIGWINCH from interrupting interruptible system calls, like open(2)/read(2)/write(2) */ #if defined (SIGWINCH) -@@ -771,6 +773,10 @@ set_signal_handler (sig, handler) +@@ -798,6 +800,10 @@ set_signal_handler (sig, handler) it to be as close to SIG_IGN as possible. */ if (sig == SIGTERM && handler == sigterm_sighandler) act.sa_flags |= SA_RESTART; /* XXX */ diff --git a/bash-5.1-patches.tar.bz2 b/bash-5.1-patches.tar.bz2 new file mode 100644 index 00000000..769d311c --- /dev/null +++ b/bash-5.1-patches.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67717d807a3d64efeafa02b9078297e345a90b9ed153964c4b392579b1ff5be2 +size 3631 diff --git a/bash-5.1.dif b/bash-5.1.dif new file mode 100644 index 00000000..fe32915d --- /dev/null +++ b/bash-5.1.dif @@ -0,0 +1,240 @@ +--- + Makefile.in | 2 +- + config-top.h | 16 ++++++++++------ + doc/Makefile.in | 2 +- + doc/bash.1 | 7 +++++-- + general.h | 3 +++ + parse.y | 2 +- + shell.c | 6 +++++- + support/man2html.c | 1 + + support/rlvers.sh | 6 +++--- + support/shobj-conf | 5 +++-- + tests/glob.tests | 4 ++-- + tests/run-intl | 2 +- + tests/run-read | 2 +- + 13 files changed, 37 insertions(+), 21 deletions(-) + +--- Makefile.in ++++ Makefile.in 2020-11-23 07:50:41.491908452 +0000 +@@ -457,7 +457,7 @@ SOURCES = $(CSOURCES) $(HSOURCES) $(BUI + # headers in top-level source directory that get installed by install-headers + INSTALLED_HEADERS = shell.h bashjmp.h command.h syntax.h general.h error.h \ + variables.h array.h assoc.h arrayfunc.h quit.h dispose_cmd.h \ +- make_cmd.h subst.h sig.h externs.h builtins.h \ ++ make_cmd.h subst.h sig.h externs.h builtins.h bashline.h \ + bashtypes.h xmalloc.h config-top.h config-bot.h \ + bashintl.h bashansi.h bashjmp.h alias.h hashlib.h \ + conftypes.h unwind_prot.h jobs.h siglist.h +--- config-top.h ++++ config-top.h 2020-11-23 07:52:34.257749719 +0000 +@@ -60,10 +60,14 @@ + due to EPIPE. */ + /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ + ++#ifndef _PATH_DEFPATH ++# include ++#endif ++ + /* The default value of the PATH variable. */ + #ifndef DEFAULT_PATH_VALUE + #define DEFAULT_PATH_VALUE \ +- "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:." ++ "/usr/local/bin:" _PATH_DEFPATH ":." + #endif + + /* If you want to unconditionally set a value for PATH in every restricted +@@ -74,7 +78,7 @@ + the Posix.2 confstr () function, or CS_PATH define are not present. */ + #ifndef STANDARD_UTILS_PATH + #define STANDARD_UTILS_PATH \ +- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" ++ _PATH_STDPATH + #endif + + /* Default primary and secondary prompt strings. */ +@@ -91,20 +95,20 @@ + #define DEFAULT_BASHRC "~/.bashrc" + + /* System-wide .bashrc file for interactive shells. */ +-/* #define SYS_BASHRC "/etc/bash.bashrc" */ ++#define SYS_BASHRC "/etc/bash.bashrc" + + /* System-wide .bash_logout for login shells. */ +-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */ ++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout" + + /* Define this to make non-interactive shells begun with argv[0][0] == '-' + run the startup files when not in posix mode. */ +-/* #define NON_INTERACTIVE_LOGIN_SHELLS */ ++#define NON_INTERACTIVE_LOGIN_SHELLS + + /* Define this if you want bash to try to check whether it's being run by + sshd and source the .bashrc if so (like the rshd behavior). This checks + for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, + which can be fooled under certain not-uncommon circumstances. */ +-/* #define SSH_SOURCE_BASHRC */ ++#define SSH_SOURCE_BASHRC + + /* Define if you want the case-toggling operators (~[~]) and the + `capcase' variable attribute (declare -c). */ +--- doc/Makefile.in ++++ doc/Makefile.in 2020-11-23 07:50:41.491908452 +0000 +@@ -154,7 +154,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ + # $(RM) $@ + # -${TEXI2PDF} $< + +-all: ps info dvi text html $(MAN2HTML) ++all: info html $(MAN2HTML) + nodvi: ps info text html + everything: all pdf + +--- doc/bash.1 ++++ doc/bash.1 2020-11-23 07:50:41.491908452 +0000 +@@ -5520,8 +5520,8 @@ file (the \fIinputrc\fP file). + The name of this file is taken from the value of the + .SM + .B INPUTRC +-variable. If that variable is unset, the default is +-.IR ~/.inputrc . ++environment variable. If that variable is unset, readline will read both ++.IR /etc/inputrc " and " ~/.inputrc . + If that file does not exist or cannot be read, the ultimate default is + .IR /etc/inputrc . + When a program which uses the readline library starts up, the +@@ -11241,6 +11241,9 @@ The individual login shell cleanup file, + .TP + .FN ~/.inputrc + Individual \fIreadline\fP initialization file ++.TP ++.FN /etc/inputrc ++System \fBreadline\fP initialization file + .PD + .SH AUTHORS + Brian Fox, Free Software Foundation +--- general.h ++++ general.h 2020-11-23 07:50:41.491908452 +0000 +@@ -21,10 +21,13 @@ + #if !defined (_GENERAL_H_) + #define _GENERAL_H_ + ++#include ++#include + #include "stdc.h" + + #include "bashtypes.h" + #include "chartypes.h" ++#include "bashline.h" + + #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE) + # if defined (HAVE_SYS_TIME_H) +--- parse.y ++++ parse.y 2020-11-23 07:50:41.491908452 +0000 +@@ -1458,7 +1458,7 @@ input_file_descriptor () + + #if defined (READLINE) + char *current_readline_prompt = (char *)NULL; +-char *current_readline_line = (char *)NULL; ++unsigned char *current_readline_line = (unsigned char *)NULL; + int current_readline_line_index = 0; + + static int +--- shell.c ++++ shell.c 2020-11-23 07:50:41.491908452 +0000 +@@ -45,6 +45,7 @@ + #if defined (HAVE_UNISTD_H) + # include + # include ++# include + #endif + + #include "bashintl.h" +@@ -503,7 +504,7 @@ main (argc, argv, env) + if (dump_translatable_strings) + read_but_dont_execute = 1; + +- if (running_setuid && privileged_mode == 0) ++ if (running_setuid && privileged_mode == 0 /* && act_like_sh == 0 */) + disable_priv_mode (); + + /* Need to get the argument to a -c option processed in the +@@ -1310,6 +1311,9 @@ disable_priv_mode () + { + int e; + ++ if (!current_user.user_name) ++ get_current_user_info(); ++ initgroups (current_user.user_name, current_user.gid); + #if HAVE_SETRESUID + if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0) + #else +--- support/man2html.c ++++ support/man2html.c 2020-11-23 07:50:41.491908452 +0000 +@@ -78,6 +78,7 @@ + #include + #include + #include ++#include + + #define NULL_TERMINATED(n) ((n) + 1) + +--- support/rlvers.sh ++++ support/rlvers.sh 2020-11-23 07:50:41.495908376 +0000 +@@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers + + # defaults + CC=cc +-RL_LIBDIR=/usr/local/lib +-RL_INCDIR=/usr/local/include ++RL_LIBDIR=/lib ++RL_INCDIR=/usr/include + +-TERMCAP_LIB="-ltermcap" ++echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 2>&1 && TERMCAP_LIB="-ltinfo" || TERMCAP_LIB="-lncurses" + + # cannot rely on the presence of getopts + while [ $# -gt 0 ]; do +--- support/shobj-conf ++++ support/shobj-conf 2020-11-23 07:50:41.495908376 +0000 +@@ -126,10 +126,11 @@ sunos5*|solaris2*) + linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*|dragonfly*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' ++ SHOBJ_LDFLAGS='-shared' + +- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' ++ SHLIB_XLDFLAGS='-Wl,-rpath-link,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' + SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ++ echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 2>&1 && SHLIB_LIBS=-ltinfo || SHLIB_LIBS=-lncurses + ;; + + # Darwin/MacOS X +--- tests/glob.tests ++++ tests/glob.tests 2020-11-23 07:50:41.495908376 +0000 +@@ -33,8 +33,8 @@ ${THIS_SH} ./glob9.sub + + MYDIR=$PWD # save where we are + +-TESTDIR=$TMPDIR/glob-test-$$ +-mkdir $TESTDIR ++TESTDIR=${TMPDIR:=/tmp}/glob-test-$$ ++mkdir -p $TESTDIR + builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; } + rm -rf * + +--- tests/run-intl ++++ tests/run-intl 2020-11-23 07:50:41.495908376 +0000 +@@ -5,4 +5,4 @@ echo "warning: some of these tests will + echo "warning: locales installed on your system." >&2 + + ${THIS_SH} ./intl.tests > ${BASH_TSTOUT} +-diff $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT} ++diff -w $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT} +--- tests/run-read ++++ tests/run-read 2020-11-23 07:50:41.495908376 +0000 +@@ -1,4 +1,4 @@ + echo "warning: please do not consider output differing only in the amount of" >&2 + echo "warning: white space to be an error." >&2 + ${THIS_SH} ./read.tests > ${BASH_TSTOUT} 2>&1 +-diff ${BASH_TSTOUT} read.right && rm -f ${BASH_TSTOUT} ++diff -w ${BASH_TSTOUT} read.right && rm -f ${BASH_TSTOUT} diff --git a/bash-5.1.tar.gz b/bash-5.1.tar.gz new file mode 100644 index 00000000..cf581802 --- /dev/null +++ b/bash-5.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa +size 10458638 diff --git a/bash.changes b/bash.changes index 1322b647..2fe6c56f 100644 --- a/bash.changes +++ b/bash.changes @@ -1,13 +1,165 @@ +------------------------------------------------------------------- +Mon Jan 11 12:00:19 UTC 2021 - Dr. Werner Fink + +- Update to final bash 5.1 + * Which is mainly the last rc3 veresion +- Add official patch bash51-001 + There is a missing dependency on a constructed file, which can cause highly + parellel builds to fail. +- Add official patch bash51-002 + If there are no jobs, and the `-n' and `-p' options are both supplied to + `wait', bash can assign a value to the variable name specified with `-p' + instead of leaving it unset. +- Add official patch bash51-003 + Bash does not put a command substitution process that is started to perform an + expansion in a child process into the right process group where it can receive + keyboard-generated signals. +- Add official patch bash51-004 + If a key-value compound array assignment to an associative array is supplied + as an assignment statement argument to the `declare' command that declares the + array, the assignment doesn't perform the correct word expansions. + + This patch makes key-value assignment and subscript assignment perform the + same expansions when they're supplied as an argument to `declare'. + +------------------------------------------------------------------- +Mon Nov 23 08:28:20 UTC 2020 - Dr. Werner Fink + +- Update to bash 5.1 rc3 + * The `assoc_expand_once' option now affects the evaluation of the -v primary + to test and the [[ compound command. + ------------------------------------------------------------------- Thu Nov 19 15:47:13 UTC 2020 - Ludwig Nussel - remove obsolete info macros +------------------------------------------------------------------- +Tue Nov 10 13:31:20 UTC 2020 - Dr. Werner Fink + +- Update to bash 5.1 rc2 + * Process substitutions started from an interactive shell no longer have their + standard input implicitly redirected from /dev/null. + * Fixed an issue with setting the SIGINT trap handler in an interactive shell + when temporarily running $PROMPT_COMMAND non-interactively. + ------------------------------------------------------------------- Fri Oct 16 07:08:31 UTC 2020 - Ludwig Nussel - prepare usrmerge (boo#1029961) +------------------------------------------------------------------- +Mon Oct 12 17:19:06 UTC 2020 - Dr. Werner Fink + +- Update to bash 5.1 rc1 + * `bind -x' now supports different bindings for different editing modes and + keymaps. + * Bash attempts to optimize the number of times it forks when executing + commands in subshells and from `bash -c'. + * Here documents and here strings now use pipes for the expanded document if + it's smaller than the pipe buffer size, reverting to temporary files if it's + larger. + * There are new loadable builtins: mktemp, accept, mkfifo, csv, cut/lcut + * In posix mode, `trap -p' now displays signals whose disposition is SIG_DFL + and those that were SIG_IGN when the shell starts. + * The shell now expands the history number (e.g., in PS1) even if it is not + currently saving commands to the history list. + * `read -e' may now be used with arbitrary file descriptors (`read -u N'). + * The `select' builtin now runs traps if its internal call to the read builtin + is interrupted by a signal. + * SRANDOM: a new variable that expands to a 32-bit random number that is not + produced by an LCRNG, and uses getrandom/getentropy, falling back to + /dev/urandom or arc4random if available. There is a fallback generator if + none of these are available. + * shell-transpose-words: a new bindable readline command that uses the same + definition of word as shell-forward-word, etc. + * The shell now adds default bindings for shell-forward-word, + shell-backward-word, shell-transpose-words, and shell-kill-word. + * Bash now allows ARGV0 appearing in the initial shell environment to set $0. + * If `unset' is executed without option arguments, bash tries to unset a shell + function if a name argument cannot be a shell variable name because it's not + an identifier. + * The `test -N' operator uses nanosecond timestamp granularity if it's + available. + * Bash posix mode now treats assignment statements preceding shell function + definitions the same as in its default mode, since POSIX has changed and + no longer requires those assignments to persist after the function returns + (POSIX interp 654). + * BASH_REMATCH is no longer readonly. + * wait: has a new -p VARNAME option, which stores the PID returned by `wait -n' + or `wait' without arguments. + * Sorting the results of pathname expansion now uses byte-by-byte comparisons + if two strings collate equally to impose a total order; the result of a + POSIX interpretation. + * Bash now allows SIGINT trap handlers to execute recursively. + * Bash now saves and restores state around setting and unsetting posix mode, + instead of having unsetting posix mode set a known state. + * Process substitution is now available in posix mode. + * READLINE_MARK: a new variable available while executing commands bound with + `bind -x', contains the value of the mark. + * Bash removes SIGCHLD from the set of blocked signals if it's blocked at shell + startup. + * `test -v N' can now test whether or not positional parameter N is set. + * `local' now honors the `-p' option to display all local variables at the + current context. + * The `@a' variable transformation now prints attributes for unset array + variables. + * The `@A' variable transformation now prints a declare command that sets a + variable's attributes if the variable has attributes but is unset. + * `declare' and `local' now have a -I option that inherits attributes and + value from a variable with the same name at a previous scope. + * When run from a -c command, `jobs' now reports the status of completed jobs. + * New `U', `u', and `L' parameter transformations to convert to uppercase, + convert first character to uppercase, and convert to lowercase, + respectively. + * PROMPT_COMMAND: can now be an array variable, each element of which can + contain a command to be executed like a string PROMPT_COMMAND variable. + * `ulimit' has a -R option to report and set the RLIMIT_RTTIME resource. + * Associative arrays may be assigned using a list of key-value pairs within + a compound assignment. Compound assignments where the words are not of + the form [key]=value are assumed to be key-value assignments. A missing or + empty key is an error; a missing value is treated as NULL. Assignments may + not mix the two forms. + * New `K' parameter transformation to display associative arrays as key- + value pairs. + * Writing history to syslog now handles messages longer than the syslog max + length by writing multiple messages with a sequence number. + * SECONDS and RANDOM may now be assigned using arithmetic expressions, since + they are nominally integer variables. LINENO is not an integer variable. + * Bash temporarily suppresses the verbose option when running the DEBUG trap + while running a command from the `fc' builtin. + * `wait -n' now accepts a list of job specifications as arguments and will + wait for the first one in the list to change state. + * The associative array implementation can now dynamically increase the + size of the hash table based on insertion patterns. + * HISTFILE is now readonly in a restricted shell. + * The bash malloc now returns memory that is 16-byte aligned on 64-bit + systems. + * If the hash builtin is listing hashed filenames portably, don't print + anything if the table is empty. + * GLOBIGNORE now ignores `.' and `..' as a terminal pathname component. + * Bash attempts to optimize away forks in the last command in a function body + under appropriate circumstances. + * The globbing code now uses fnmatch(3) to check collation elements (if + available) even in cases without multibyte characters. + * The `fg' and `bg' builtins now return an error in a command substitution + when asked to restart a job inherited from the parent shell. + * The shell now attempts to unlink all FIFOs on exit, whether a consuming + process has finished with them or not. + * There is a new contributed loadable builtin: asort. +- Remove patch bash-4.0-security.patch as now solved upstream +- Port and modify patches + * bash-2.03-manual.patch + * bash-3.2-printf.patch + * bash-4.0-setlocale.dif + * bash-4.1-completion.dif + * bash-4.2-nscdunmap.dif + * bash-4.3-2.4.4.patch + * bash-4.3-loadables.dif + * bash-4.3-pathtemp.patch + * bash-4.3-sigrestart.patch +- Port and rename patch bash-5.0.dif which is now bash-5.1.dif + ------------------------------------------------------------------- Wed Sep 23 16:30:31 UTC 2020 - Stefan Dirsch diff --git a/bash.spec b/bash.spec index bdd1b844..760833ec 100644 --- a/bash.spec +++ b/bash.spec @@ -1,7 +1,7 @@ # # spec file for package bash # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,8 +21,8 @@ Name: bash %define bextend %nil -%define bversion 5.0 -%define bpatchlvl 18 +%define bversion 5.1 +%define bpatchlvl 4 Version: %{bversion}.%{bpatchlvl} Release: 0 Summary: The GNU Bourne-Again Shell @@ -49,7 +49,6 @@ Source8: baselibs.conf Source9: bash-4.2-history-myown.dif.bz2 Patch0: bash-%{bversion}.dif Patch1: bash-2.03-manual.patch -Patch2: bash-4.0-security.patch Patch3: bash-4.3-2.4.4.patch Patch4: bash-3.0-evalexp.patch Patch5: bash-3.0-warn-locale.patch @@ -82,7 +81,7 @@ BuildRequires: ncurses-devel BuildRequires: patchutils BuildRequires: pkg-config # This has to be always the same version as included in the bash its self -BuildRequires: readline-devel == 8.0 +BuildRequires: readline-devel == 8.1 BuildRequires: screen BuildRequires: sed BuildRequires: update-alternatives @@ -229,7 +228,6 @@ for patch in ../bash-%{bversion}-patches/*; do done set -x %patch1 -p0 -b .manual -%patch2 -p0 -b .security %patch3 -p0 -b .2.4.4 %patch4 -p0 -b .evalexp %patch5 -p0 -b .warnlc