commit 16648e46f9eca8517fb21f1c90ff5d802249f4e7956f268e71249e6b68e56940 Author: Adrian Schröter Date: Fri May 3 11:15:47 2024 +0200 Sync from SUSE:SLFO:Main bash revision a69d6f7a42754b16cf813d5870d3a7ce diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..08ac167 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,6 @@ +targettype x86 package bash + +^/usr/bin/bash$ + +^/usr/bin/sh$ + +^/bin/bash$ + +^/bin/sh$ + prereq -glibc-x86 diff --git a/bash-2.03-manual.patch b/bash-2.03-manual.patch new file mode 100644 index 0000000..446c29d --- /dev/null +++ b/bash-2.03-manual.patch @@ -0,0 +1,65 @@ +--- + doc/bash.1 | 16 ++++++++++++++++ + doc/builtins.1 | 2 +- + doc/rbash.1 | 2 +- + 3 files changed, 18 insertions(+), 2 deletions(-) + +--- doc/bash.1 ++++ doc/bash.1 2018-11-29 08:09:41.735675837 +0000 +@@ -122,6 +122,12 @@ This option allows the positional parame + when invoking an interactive shell or when reading input + through a pipe. + .TP ++.B \-v ++Print shell input lines as they are read. ++.TP ++.B \-x ++Print commands and their arguments as they are executed. ++.TP + .B \-D + A list of all double-quoted strings preceded by \fB$\fP + is printed on the standard output. +@@ -7667,6 +7673,11 @@ Apply the following `\fBs\fP' modifier o + .SH "SHELL BUILTIN COMMANDS" + .\" start of bash_builtins + .zZ ++.if !dFN \{\ ++.de FN ++\fI\|\\$1\|\fP ++.. ++.\} + .PP + Unless otherwise noted, each builtin command documented in this + section as accepting options preceded by +@@ -11543,6 +11554,11 @@ process or job waited for. + .SH "RESTRICTED SHELL" + .\" rbash.1 + .zY ++.if !dFN \{\ ++.de FN ++\fI\|\\$1\|\fP ++.. ++.\} + .PP + If + .B bash +--- doc/builtins.1 ++++ doc/builtins.1 2018-11-29 08:09:41.735675837 +0000 +@@ -19,6 +19,6 @@ shift, shopt, source, suspend, test, tim + ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1) + .SH BASH BUILTIN COMMANDS + .nr zZ 1 +-.so bash.1 ++.so /usr/share/man/man1/bash.1 + .SH SEE ALSO + bash(1), sh(1) +--- doc/rbash.1 ++++ doc/rbash.1 2018-11-29 08:09:41.735675837 +0000 +@@ -3,6 +3,6 @@ + rbash \- restricted bash, see \fBbash\fR(1) + .SH RESTRICTED SHELL + .nr zY 1 +-.so bash.1 ++.so /usr/share/man/man1/bash.1 + .SH SEE ALSO + bash(1) diff --git a/bash-3.0-evalexp.patch b/bash-3.0-evalexp.patch new file mode 100644 index 0000000..e3cf11f --- /dev/null +++ b/bash-3.0-evalexp.patch @@ -0,0 +1,17 @@ +--- + expr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- expr.c ++++ expr.c 2018-11-29 08:10:59.542212175 +0000 +@@ -514,8 +514,8 @@ expassign () + value = expcond (); + if (curtok == EQ || curtok == OP_ASSIGN) + { +- int special, op; +- intmax_t lvalue; ++ int special, op = -1; ++ intmax_t lvalue = 0; + + special = curtok == OP_ASSIGN; + diff --git a/bash-3.0-warn-locale.patch b/bash-3.0-warn-locale.patch new file mode 100644 index 0000000..600804a --- /dev/null +++ b/bash-3.0-warn-locale.patch @@ -0,0 +1,33 @@ +--- + locale.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- locale.c ++++ locale.c 2018-09-20 08:06:23.732593807 +0000 +@@ -33,6 +33,10 @@ + #include "bashintl.h" + #include "bashansi.h" + #include ++#include ++#include ++#include ++#include + #include "chartypes.h" + #include + +@@ -79,6 +83,15 @@ void + set_default_locale () + { + #if defined (HAVE_SETLOCALE) ++ struct stat st; ++ ++ if (stat("/usr/lib/locale/locale-archive", &st) == 0 && st.st_size == 0) { ++ errno = EINVAL; ++ sys_error("set_default_locale: broken locale"); ++ fprintf (stderr, "%s: Please remove /usr/lib/locale/locale-archive\n", ++ get_name_for_error()); ++ sleep(1); ++ } + default_locale = setlocale (LC_ALL, ""); + if (default_locale) + default_locale = savestring (default_locale); diff --git a/bash-3.2-printf.patch b/bash-3.2-printf.patch new file mode 100644 index 0000000..f809173 --- /dev/null +++ b/bash-3.2-printf.patch @@ -0,0 +1,49 @@ +--- + builtins/printf.def | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +--- builtins/printf.def ++++ builtins/printf.def 2022-06-22 06:26:14.069158235 +0000 +@@ -56,6 +56,7 @@ error occurs. + $END + + #include ++#include + + #include "../bashtypes.h" + +@@ -702,7 +703,7 @@ printf_builtin (list) + case 'A': + #endif + { +- char *f; ++ char *f, *lce = getenv("LC_NUMERIC"), *lcl = setlocale(LC_NUMERIC, NULL); + + if (use_Lmod || posixly_correct == 0) + { +@@ -710,7 +711,12 @@ printf_builtin (list) + + p = getfloatmax (); + f = mklong (start, "L", 1); ++ ++ if (lce && lcl) setlocale(LC_NUMERIC, lce); ++ + PF (f, p); ++ ++ if (lce && lcl) setlocale(LC_NUMERIC, lcl); + } + else /* posixly_correct */ + { +@@ -718,7 +724,12 @@ printf_builtin (list) + + p = getdouble (); + f = mklong (start, "", 0); ++ ++ if (lce && lcl) setlocale(LC_NUMERIC, lce); ++ + PF (f, p); ++ ++ if (lce && lcl) setlocale(LC_NUMERIC, lcl); + } + + break; diff --git a/bash-4.0-setlocale.dif b/bash-4.0-setlocale.dif new file mode 100644 index 0000000..8df06ad --- /dev/null +++ b/bash-4.0-setlocale.dif @@ -0,0 +1,41 @@ +--- + locale.c | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +--- locale.c ++++ locale.c 2018-09-20 08:14:41.307485537 +0000 +@@ -57,6 +57,7 @@ extern int dump_translatable_strings, du + + /* The current locale when the program begins */ + static char *default_locale; ++static char fallback[128]; + + /* The current domain for textdomain(3). */ + static char *default_domain; +@@ -361,11 +362,21 @@ get_locale_var (var) + if (locale == 0 || *locale == 0) + locale = lang; + if (locale == 0 || *locale == 0) +-#if 0 +- locale = default_locale; /* system-dependent; not really portable. should it be "C"? */ +-#else +- locale = ""; +-#endif ++ { ++ char *ptr; ++ if (default_locale && *default_locale && (ptr = strstr(default_locale, var)) && (ptr = strchr(ptr, '=')) && ++ptr) ++ { ++ memset (fallback, 0, sizeof(fallback)); ++ strncpy(fallback, ptr, sizeof(fallback)-1); ++ ++ if ((ptr = strchr(fallback, ';'))) ++ *ptr = '\0'; ++ ++ locale = fallback; ++ } ++ else ++ locale = default_locale; /* system-dependent; not really portable. should it be "C"? */ ++ } + return (locale); + } + diff --git a/bash-4.1-bash.bashrc.dif b/bash-4.1-bash.bashrc.dif new file mode 100644 index 0000000..20b8df0 --- /dev/null +++ b/bash-4.1-bash.bashrc.dif @@ -0,0 +1,65 @@ +|BNC#577221 - Non-login, interactive bash executes /etc/bash.bashrc +| yet not documented +| +|Jared Hudson 2010-02-04 22:47:01 UTC +| +|bash-3.2-147.4.1 executes /etc/bash.bashrc when invoking an interactive, +|non-login shell yet this is not documented. The man page should mention +|this in its INVOCATION section. I've checked the source code and it's +|hard coded to execute /etc/bash.bashrc (SYS_BASHRC macro) +| +|BSC#959755 - man page on bash needs some clarification. +| +|Werner Fink 2016-08-01 12:40:06 UTC +| +|Make clear that the files /etc/profile as well as /etc/bash.bashrc may source +|other files as well even if the bash does not. +| +--- + doc/bash.1 | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +--- doc/bash.1 ++++ doc/bash.1 2022-06-22 06:31:11.283670836 +0000 +@@ -330,6 +330,8 @@ and executes commands from the first one + The + .B \-\-noprofile + option may be used when the shell is started to inhibit this behavior. ++Please note that the file \fI/etc/profile\fP includes an autodetection shell ++code wether it has to source \fI/etc/bash.bashrc\fP as well as \fI~/.bashrc\fP. + .PP + When an interactive login shell exits, + or a non-interactive login shell executes the \fBexit\fP builtin command, +@@ -339,13 +341,19 @@ exists. + .PP + When an interactive shell that is not a login shell is started, + .B bash +-reads and executes commands from \fI~/.bashrc\fP, if that file exists. +-This may be inhibited by using the ++reads and executes commands from \fI/etc/bash.bashrc\fP then \fI~/.bashrc\fP ++when those files exist and are readable. This may be inhibited by using the + .B \-\-norc + option. + The \fB\-\-rcfile\fP \fIfile\fP option will force + .B bash + to read and execute commands from \fIfile\fP instead of \fI~/.bashrc\fP. ++Please note that the file \fI/etc/bash.bashrc\fP includes an autodetection shell ++code wether it is used for by a remote OpenSSH SSH client like ++.BR ssh (1) ++or ++.BR slogin (1) ++to source the local \fI/etc/profile\fP if not already done. + .PP + When + .B bash +@@ -432,8 +440,8 @@ or the secure shell daemon \fIsshd\fP. + If + .B bash + determines it is being run non-interactively in this fashion, +-it reads and executes commands from \fI~/.bashrc\fP, +-if that file exists and is readable. ++it reads and executes commands from \fI/etc/bash.bashrc\fP then ++\fI~/.bashrc\fP, when those files exists and are readable. + It will not do this if invoked as \fBsh\fP. + The + .B \-\-norc diff --git a/bash-4.1-completion.dif b/bash-4.1-completion.dif new file mode 100644 index 0000000..da5c6dd --- /dev/null +++ b/bash-4.1-completion.dif @@ -0,0 +1,20 @@ +--- + bashline.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- bashline.c ++++ bashline.c 2018-11-29 08:12:25.876588305 +0000 +@@ -2206,6 +2206,13 @@ globword: + return ((char *)NULL); + } + ++ if (GLOB_FAILED (glob_matches) || glob_matches == 0) ++ { ++ glob_ignore_case = old_glob_ignore_case; ++ glob_matches = (char **)NULL; ++ return ((char *)NULL); ++ } ++ + while (val = glob_matches[local_index++]) + { + if (executable_or_directory (val)) diff --git a/bash-4.2-history-myown.dif.bz2 b/bash-4.2-history-myown.dif.bz2 new file mode 100644 index 0000000..4fb6838 --- /dev/null +++ b/bash-4.2-history-myown.dif.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa4a4ed4826da29c544795520dc106935ee91f605e1eadf1a05dad7dde06087e +size 1468 diff --git a/bash-4.2-nscdunmap.dif b/bash-4.2-nscdunmap.dif new file mode 100644 index 0000000..578a6af --- /dev/null +++ b/bash-4.2-nscdunmap.dif @@ -0,0 +1,51 @@ +--- + shell.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +--- shell.c ++++ shell.c 2018-09-20 08:08:34.242204532 +0000 +@@ -43,6 +43,7 @@ + #endif + + #if defined (HAVE_UNISTD_H) ++# include + # include + #endif + +@@ -1888,6 +1893,28 @@ init_interactive_script () + #endif + } + ++static void ++maybe_unmap_nscd (void) ++{ ++ unsigned long start, end, off; ++ char path[PATH_MAX]; ++ FILE *maps; ++ ++ if (getppid() != 1) ++ return; ++ if ((maps = fopen("/proc/self/maps", "r")) == NULL) ++ return; ++ ++ while (fscanf(maps, "%lx-%lx %*s %lx %*x:%*x %*lu %s", &start, &end, &off, &path[0]) == 4) ++ { ++ if (strncmp(path, "/var/run/nscd/", 14) != 0) ++ continue; ++ munmap((void*)start, end - start); ++ } ++ ++ fclose(maps); ++} ++ + void + get_current_user_info () + { +@@ -1919,6 +1946,7 @@ get_current_user_info () + #if defined (HAVE_GETPWENT) + endpwent (); + #endif ++ maybe_unmap_nscd (); + } + } + diff --git a/bash-4.3-2.4.4.patch b/bash-4.3-2.4.4.patch new file mode 100644 index 0000000..716d301 --- /dev/null +++ b/bash-4.3-2.4.4.patch @@ -0,0 +1,122 @@ +--- + array.c | 2 +- + examples/loadables/tee.c | 3 ++- + hashlib.c | 4 ++-- + jobs.c | 9 +++++++++ + sig.c | 4 ++-- + sig.h | 4 ++-- + trap.c | 2 +- + trap.h | 2 +- + 8 files changed, 20 insertions(+), 10 deletions(-) + +--- array.c ++++ array.c 2020-10-12 16:00:37.207185803 +0000 +@@ -1095,7 +1095,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 + */ +-int interrupt_immediately = 0; ++volatile sig_atomic_t interrupt_immediately = 0; + + int + signal_is_trapped(s) +--- examples/loadables/tee.c ++++ examples/loadables/tee.c 2020-10-12 16:00:37.267184666 +0000 +@@ -35,6 +35,7 @@ + #include "bashansi.h" + + #include ++#include + #include + + #include "builtins.h" +@@ -56,7 +57,7 @@ static FLIST *tee_flist; + + #define TEE_BUFSIZE 8192 + +-extern int interrupt_immediately; ++extern volatile sig_atomic_t interrupt_immediately; + + extern char *strerror (); + +--- hashlib.c ++++ 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 2020-10-12 16:00:37.267184666 +0000 +@@ -2212,6 +2212,15 @@ make_child (command, flags) + child process, go back and change callers who free `command' in + the child process when this returns. */ + mypid = getpid (); ++ ++ if (interrupt_state) ++ { ++ struct timeval tv; ++ struct rusage rx; ++ (void) gettimeofday(&tv, NULL); ++ (void) getrusage(RUSAGE_SELF, &rx); ++ } ++ + #if defined (BUFFERED_INPUT) + /* 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 2020-10-12 16:00:37.267184666 +0000 +@@ -84,10 +84,10 @@ sigset_t top_level_mask; + #endif /* JOB_CONTROL */ + + /* When non-zero, we throw_to_top_level (). */ +-int interrupt_immediately = 0; ++volatile sig_atomic_t interrupt_immediately = 0; + + /* When non-zero, we call the terminating signal handler immediately. */ +-int terminate_immediately = 0; ++volatile sig_atomic_t terminate_immediately = 0; + + #if defined (SIGWINCH) + static SigHandler *old_winch = (SigHandler *)SIG_DFL; +--- sig.h ++++ sig.h 2020-10-12 16:03:44.403637781 +0000 +@@ -105,8 +105,8 @@ do { \ + extern volatile sig_atomic_t sigwinch_received; + extern volatile sig_atomic_t sigterm_received; + +-extern int interrupt_immediately; /* no longer used */ +-extern int terminate_immediately; ++extern volatile sig_atomic_t interrupt_immediately; /* no longer used */ ++extern volatile sig_atomic_t terminate_immediately; + + /* Functions from sig.c. */ + 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-SJIS.patch b/bash-4.3-SJIS.patch new file mode 100644 index 0000000..9fbd91c --- /dev/null +++ b/bash-4.3-SJIS.patch @@ -0,0 +1,328 @@ +--- + bashintl.h | 3 +++ + builtins/printf.def | 21 +++++++++++++++++++++ + builtins/read.def | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- + lib/sh/strtrans.c | 21 +++++++++++++++++++++ + locale.c | 26 ++++++++++++++++++++++++++ + parse.y | 42 +++++++++++++++++++++++++++++++++++++++++- + 6 files changed, 163 insertions(+), 2 deletions(-) + +--- bashintl.h ++++ bashintl.h 2018-11-29 08:14:56.165762022 +0000 +@@ -43,6 +43,9 @@ + # undef HAVE_SETLOCALE + #endif + ++int bash_mbcs_non_utf8; ++int bash_mb_cur_max; ++ + #if !defined (HAVE_SETLOCALE) + # define setlocale(cat, loc) + #endif +--- builtins/printf.def ++++ builtins/printf.def 2018-11-29 08:18:21.445909015 +0000 +@@ -247,6 +247,8 @@ printf_builtin (list) + #if defined (HANDLE_MULTIBYTE) + char mbch[25]; /* 25 > MB_LEN_MAX, plus can handle 4-byte UTF-8 and large Unicode characters*/ + int mbind, mblen; ++ size_t charlen; ++ mbstate_t mbs; + #endif + #if defined (ARRAY_VARS) + int arrayflags; +@@ -334,6 +336,25 @@ printf_builtin (list) + precision = fieldwidth = 0; + have_fieldwidth = have_precision = 0; + ++#if defined (HANDLE_MULTIBYTE) ++ if (bash_mbcs_non_utf8) ++ { ++ memset (&mbs, 0, sizeof (mbs)); ++ charlen = mbrlen (fmt, bash_mb_cur_max, &mbs); ++ if (charlen > 1 && charlen != (size_t)-2 && charlen != (size_t)-1) ++ { ++ while (charlen > 0) ++ { ++ PC (*fmt); ++ fmt++; ++ charlen--; ++ } ++ fmt--; ++ continue; ++ } ++ } ++#endif ++ + if (*fmt == '\\') + { + fmt++; +--- builtins/read.def ++++ builtins/read.def 2018-11-29 08:14:56.165762022 +0000 +@@ -188,6 +188,12 @@ read_builtin (list) + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; + char *e, *t, *t1, *ps2, *tofree; ++#if defined (HANDLE_MULTIBYTE) ++ static char mbch[25]; ++ size_t charlen; ++ int mblen; ++ mbstate_t mbs; ++#endif + struct stat tsb; + SHELL_VAR *var; + TTYSTRUCT ttattrs, ttset; +@@ -548,6 +554,7 @@ read_builtin (list) + #endif + + ps2 = 0; ++ charlen = 0; + for (print_ps2 = eof = retval = 0;;) + { + CHECK_ALRM; +@@ -589,14 +596,40 @@ read_builtin (list) + + reading = 1; + CHECK_ALRM; ++#if defined (HANDLE_MULTIBYTE) ++ charlen = 0; ++ mblen = 0; ++ if (bash_mbcs_non_utf8) ++ { ++ do ++ { ++ if (unbuffered_read) ++ retval = posixly_correct ? zreadintr (fd, &c, 1) : zread (fd, &c, 1); ++ else ++ retval = posixly_correct ? zreadcintr (fd, &c) : zreadc (fd, &c); ++ ++ if (retval <= 0) ++ break; ++ ++ mbch[mblen++] = c; ++ memset (&mbs, 0, sizeof (mbs)); ++ charlen = mbrlen (mbch, mblen, &mbs); ++ } ++ while (charlen == (size_t)-2 && mblen < bash_mb_cur_max); ++ } ++ else ++ { ++#endif + if (unbuffered_read == 2) + retval = posixly_correct ? zreadintr (fd, &c, 1) : zreadn (fd, &c, nchars - nr); + else if (unbuffered_read) + retval = posixly_correct ? zreadintr (fd, &c, 1) : zread (fd, &c, 1); + else + retval = posixly_correct ? zreadcintr (fd, &c) : zreadc (fd, &c); ++#if defined (HANDLE_MULTIBYTE) ++ } ++#endif + reading = 0; +- + if (retval <= 0) + { + if (retval < 0 && errno == EINTR) +@@ -639,6 +672,11 @@ read_builtin (list) + } + } + ++#if defined (HANDLE_MULTIBYTE) ++ if (bash_mbcs_non_utf8 && charlen > 1) ++ goto add_char; ++#endif ++ + /* If the next character is to be accepted verbatim, a backslash + newline pair still disappears from the input. */ + if (pass_next) +@@ -681,7 +719,19 @@ read_builtin (list) + } + + add_char: ++#if defined (HANDLE_MULTIBYTE) ++ if (bash_mbcs_non_utf8 && charlen > 1) ++ { ++ for (mblen = 0; mblen < charlen; mblen++) ++ input_string[i++] = mbch[mblen]; ++ } ++ else ++ { ++#endif + input_string[i++] = c; ++#if defined (HANDLE_MULTIBYTE) ++ } ++#endif + CHECK_ALRM; + + #if defined (HANDLE_MULTIBYTE) +--- lib/sh/strtrans.c ++++ lib/sh/strtrans.c 2018-11-29 08:14:56.165762022 +0000 +@@ -29,6 +29,7 @@ + #include + + #include "shell.h" ++#include "bashintl.h" + + #include "shmbchar.h" + #include "shmbutil.h" +@@ -55,6 +56,10 @@ ansicstr (string, len, flags, sawc, rlen + int c, temp; + char *ret, *r, *s; + unsigned long v; ++#if defined (HANDLE_MULTIBYTE) ++ size_t charlen; ++ mbstate_t mbs; ++#endif + + if (string == 0 || *string == '\0') + return ((char *)NULL); +@@ -69,6 +74,22 @@ ansicstr (string, len, flags, sawc, rlen + #endif + for (r = ret, s = string; s && *s; ) + { ++#if defined (HANDLE_MULTIBYTE) ++ if (bash_mbcs_non_utf8) ++ { ++ memset (&mbs, 0, sizeof (mbs)); ++ charlen = mbrlen (s, bash_mb_cur_max, &mbs); ++ if (charlen > 1 && charlen != (size_t)-2 && charlen != (size_t)-1) ++ { ++ while (charlen > 0) ++ { ++ *r++ = *s++; ++ charlen--; ++ } ++ continue; ++ } ++ } ++#endif + c = *s++; + if (c != '\\' || *s == '\0') + *r++ = c; +--- locale.c ++++ locale.c 2018-11-29 08:14:56.165762022 +0000 +@@ -52,6 +52,7 @@ int locale_mb_cur_max; /* value of MB_CU + int locale_shiftstates; + + extern int dump_translatable_strings, dump_po_strings; ++extern int bash_mb_cur_max, bash_mbcs_non_utf8; + + /* The current locale when the program begins */ + static char *default_locale; +@@ -76,6 +77,26 @@ static int reset_locale_vars __P((void)) + static void locale_setblanks __P((void)); + static int locale_isutf8 __P((char *)); + ++static void ++set_mbcs_values () ++{ ++ /* Enhance the performance. */ ++#if defined (HANDLE_MULTIBYTE) ++ bash_mb_cur_max = MB_CUR_MAX; ++# if defined (HAVE_LANGINFO_CODESET) ++ if (strcasestr (nl_langinfo (CODESET), "JIS") != 0 && bash_mb_cur_max == 2) ++ bash_mbcs_non_utf8 = 1; ++ else ++ bash_mbcs_non_utf8 = 0; ++# else ++ bash_mbcs_non_utf8 = 0; ++# endif ++#else ++ bash_mb_cur_max = 1; ++ bash_mbcs_non_utf8 = 0; ++#endif ++} ++ + /* Set the value of default_locale and make the current locale the + system default locale. This should be called very early in main(). */ + void +@@ -94,6 +115,8 @@ set_default_locale () + default_locale = setlocale (LC_ALL, ""); + if (default_locale) + default_locale = savestring (default_locale); ++ ++ set_mbcs_values (); + #endif /* HAVE_SETLOCALE */ + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); +@@ -150,6 +173,7 @@ set_default_locale_vars () + setlocale (LC_TIME, lc_all); + # endif /* LC_TIME */ + ++ set_mbcs_values (); + #endif /* HAVE_SETLOCALE */ + + val = get_string_value ("TEXTDOMAIN"); +@@ -240,6 +264,7 @@ set_locale_var (var, value) + if (lc_all == 0 || *lc_all == '\0') + { + x = setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE")); ++ set_mbcs_values (); + locale_setblanks (); + locale_mb_cur_max = MB_CUR_MAX; + /* if setlocale() returns NULL, the locale is not changed */ +@@ -388,6 +413,7 @@ reset_locale_vars () + t = setlocale (LC_TIME, get_locale_var ("LC_TIME")); + # endif + ++ set_mbcs_values (); + locale_setblanks (); + locale_mb_cur_max = MB_CUR_MAX; + if (x) +--- parse.y ++++ parse.y 2018-11-29 08:14:56.165762022 +0000 +@@ -2005,7 +2005,12 @@ read_a_line (remove_quoted_newline) + { + static char *line_buffer = (char *)NULL; + static int buffer_size = 0; +- int indx, c, peekc, pass_next; ++ int indx, c, peekc, pass_next, chari; ++#if defined (HANDLE_MULTIBYTE) ++ size_t charlen; ++ mbstate_t mbs; ++ static char char_buffer[10]; ++#endif + + #if defined (READLINE) + if (no_line_editing && SHOULD_PROMPT ()) +@@ -2020,7 +2025,42 @@ read_a_line (remove_quoted_newline) + /* Allow immediate exit if interrupted during input. */ + QUIT; + ++#if defined (HANDLE_MULTIBYTE) ++ if (!bash_mbcs_non_utf8) ++ c = yy_getc (); ++ else ++ { ++ chari = 0; ++ charlen = 0; ++ while (chari < 10) ++ { ++ char_buffer[chari++] = c = yy_getc (); ++ ++ if (c == EOF) ++ break; ++ ++ memset (&mbs, 0, sizeof (mbs)); ++ charlen = mbrlen (char_buffer, chari, &mbs); ++ ++ if ((size_t)charlen != (size_t)-2 && (size_t)charlen != (size_t)-1) ++ break; ++ } ++ ++ if (charlen != 1) ++ { ++ charlen = chari; ++ for (chari = 0; chari < charlen && char_buffer[chari] != EOF; chari++) ++ { ++ RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 128); ++ line_buffer[indx++] = char_buffer[chari]; ++ } ++ if (chari == charlen) ++ continue; ++ } ++ } ++#else + c = yy_getc (); ++#endif + + /* Ignore null bytes in input. */ + if (c == 0) diff --git a/bash-4.3-decl.patch b/bash-4.3-decl.patch new file mode 100644 index 0000000..ed5f12e --- /dev/null +++ b/bash-4.3-decl.patch @@ -0,0 +1,14 @@ +--- + support/printenv.c | 1 + + 1 file changed, 1 insertion(+) + +--- support/printenv.c ++++ support/printenv.c 2014-04-17 09:46:25.874236036 +0000 +@@ -31,6 +31,7 @@ + #include "bashansi.h" + #include /* puts */ + ++#include + extern char **environ; + + int diff --git a/bash-4.3-extra-import-func.patch b/bash-4.3-extra-import-func.patch new file mode 100644 index 0000000..ef701ba --- /dev/null +++ b/bash-4.3-extra-import-func.patch @@ -0,0 +1,93 @@ +--- + builtins/shopt.def | 2 ++ + doc/bash.1 | 7 +++++++ + execute_cmd.h | 1 + + shell.c | 2 ++ + variables.c | 7 ++++++- + 5 files changed, 18 insertions(+), 1 deletion(-) + +--- builtins/shopt.def ++++ builtins/shopt.def 2018-11-29 08:19:32.996571288 +0000 +@@ -90,6 +90,7 @@ extern int autocd; + extern int glob_star; + extern int glob_asciirange; + extern int lastpipe_opt; ++extern int import_functions; + extern int inherit_errexit; + extern int localvar_inherit; + extern int localvar_unset; +@@ -213,6 +214,7 @@ static struct { + { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion }, + #endif + { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL }, ++ { "import-functions", &import_functions, (shopt_set_func_t *)NULL }, + { "inherit_errexit", &inherit_errexit, (shopt_set_func_t *)NULL }, + { "interactive_comments", &interactive_comments, set_shellopts_after_change }, + { "lastpipe", &lastpipe_opt, (shopt_set_func_t *)NULL }, +--- doc/bash.1 ++++ doc/bash.1 2018-11-29 08:19:33.000571213 +0000 +@@ -245,6 +245,13 @@ The shell becomes restricted (see + .B "RESTRICTED SHELL" + below). + .TP ++.B \-\-import\-functions ++This shell is patched in such a way that shell functions in the inported environment ++will not be expanded due several security issues (e.g. CVE\-2014\-6271). This option ++can be used to enable this. It is also possible to use the ++.B shopt ++builtin to do this. ++.TP + .B \-\-verbose + Equivalent to \fB\-v\fP. + .TP +--- execute_cmd.h ++++ execute_cmd.h 2018-11-29 08:19:33.000571213 +0000 +@@ -61,6 +61,7 @@ extern int evalnest, evalnest_max; + extern int sourcenest, sourcenest_max; + extern int stdin_redir; + extern int line_number_for_err_trap; ++extern int import_functions; + + extern char *the_printed_command_except_trap; + +--- shell.c ++++ shell.c 2018-11-29 08:19:33.000571213 +0000 +@@ -232,6 +232,7 @@ int posixly_correct = 1; /* Non-zero mea + #else + int posixly_correct = 0; /* Non-zero means posix.2 superset. */ + #endif ++int import_functions = IMPORT_FUNCTIONS_DEF; /* Import functions from environment */ + + /* Some long-winded argument names. These are obviously new. */ + #define Int 1 +@@ -251,6 +252,7 @@ static const struct { + { "help", Int, &want_initial_help, (char **)0x0 }, + { "init-file", Charp, (int *)0x0, &bashrc_file }, + { "login", Int, &make_login_shell, (char **)0x0 }, ++ { "import-functions", Int, &import_functions, (char **)0x0 }, + { "noediting", Int, &no_line_editing, (char **)0x0 }, + { "noprofile", Int, &no_profile, (char **)0x0 }, + { "norc", Int, &no_rc, (char **)0x0 }, +--- variables.c ++++ variables.c 2018-11-29 08:19:33.000571213 +0000 +@@ -380,6 +380,11 @@ initialize_shell_variables (env, privmod + tname = name + BASHFUNC_PREFLEN; /* start of func name */ + tname[namelen] = '\0'; /* now tname == func name */ + ++ if (!import_functions && !interactive_shell) { ++ report_error (_("Skipping importing function definition for `%s': --import-functions required."), tname); ++ goto reval; ++ } ++ + string_length = strlen (string); + temp_string = (char *)xmalloc (namelen + string_length + 2); + +@@ -394,7 +399,7 @@ initialize_shell_variables (env, privmod + parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + else + free (temp_string); /* parse_and_execute does this */ +- ++ reval: + if (temp_var = find_function (tname)) + { + VSETATTR (temp_var, (att_exported|att_imported)); diff --git a/bash-4.3-include-unistd.dif b/bash-4.3-include-unistd.dif new file mode 100644 index 0000000..dc2555c --- /dev/null +++ b/bash-4.3-include-unistd.dif @@ -0,0 +1,16 @@ +--- + shell.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- shell.h ++++ shell.h 2016-03-08 10:22:38.169929522 +0000 +@@ -22,6 +22,9 @@ + #include "config.h" + #endif + ++#include ++#include ++ + #include "bashjmp.h" + + #include "command.h" diff --git a/bash-4.3-loadables.dif b/bash-4.3-loadables.dif new file mode 100644 index 0000000..30bbe10 --- /dev/null +++ b/bash-4.3-loadables.dif @@ -0,0 +1,97 @@ +--- + 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, 3 insertions(+), 12 deletions(-) + +--- examples/loadables/finfo.c ++++ examples/loadables/finfo.c 2018-09-20 08:07:43.739129083 +0000 +@@ -108,7 +108,7 @@ int argc; + char **argv; + { + register int i; +- int mode, flags, opt; ++ int flags, opt; + + sh_optind = 0; /* XXX */ + prog = base_pathname(argv[0]); +@@ -396,7 +396,6 @@ finfo_builtin(list) + { + int c, r; + char **v; +- WORD_LIST *l; + + v = make_builtin_argv (list, &c); + r = finfo_main (c, v); +--- examples/loadables/head.c ++++ examples/loadables/head.c 2018-09-20 08:07:43.739129083 +0000 +@@ -101,8 +101,6 @@ head_builtin (list) + WORD_LIST *l; + FILE *fp; + +- char *t; +- + munge_list (list); /* change -num into -n num */ + + reset_internal_getopt (); +--- examples/loadables/id.c ++++ examples/loadables/id.c 2018-09-20 08:07:43.739129083 +0000 +@@ -64,8 +64,6 @@ static int id_flags; + static uid_t ruid, euid; + static gid_t rgid, egid; + +-static char *id_user; +- + static int inituser (); + + static int id_pruser (); +--- examples/loadables/mkdir.c ++++ examples/loadables/mkdir.c 2018-09-20 08:07:43.739129083 +0000 +@@ -170,7 +170,7 @@ make_path (path, nmode, parent_mode) + while (*p == '/') + p++; + +- while (p = strchr (p, '/')) ++ while ((p = strchr (p, '/'))) + { + *p = '\0'; + if (stat (npath, &sb) != 0) +--- examples/loadables/pathchk.c ++++ examples/loadables/pathchk.c 2018-09-20 08:07:43.739129083 +0000 +@@ -292,10 +292,8 @@ validate_path (path, portability) + if (*path == '\0') + return 0; + +-#ifdef lint + /* Suppress `used before initialized' warning. */ + exists = 0; +-#endif + + /* Figure out the parent of the first element in PATH. */ + parent = xstrdup (*path == '/' ? "/" : "."); +--- examples/loadables/print.c ++++ examples/loadables/print.c 2018-09-20 08:07:43.739129083 +0000 +@@ -77,7 +77,7 @@ print_builtin (list) + { + int c, r, nflag, raw, ofd, sflag; + intmax_t lfd; +- char **v, *pfmt, *arg; ++ char *pfmt; + WORD_LIST *l; + + nflag = raw = sflag = 0; +--- examples/loadables/tee.c ++++ examples/loadables/tee.c 2018-09-20 08:07:43.739129083 +0000 +@@ -70,8 +70,6 @@ tee_builtin (list) + FLIST *fl; + char *buf, *bp; + +- char *t; +- + reset_internal_getopt (); + append = nointr = 0; + tee_flist = (FLIST *)NULL; diff --git a/bash-4.3-pathtemp.patch b/bash-4.3-pathtemp.patch new file mode 100644 index 0000000..bd1b239 --- /dev/null +++ b/bash-4.3-pathtemp.patch @@ -0,0 +1,97 @@ +--- + lib/sh/tmpfile.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 48 insertions(+), 1 deletion(-) + +--- lib/sh/tmpfile.c ++++ lib/sh/tmpfile.c 2018-01-24 12:38:42.410481352 +0000 +@@ -36,6 +36,14 @@ + #include + #include + ++#if defined(__linux__) ++# include ++# include ++# ifndef TMPFS_MAGIC ++# define TMPFS_MAGIC 0x01021994 ++# endif ++#endif ++ + #include + + #ifndef errno +@@ -65,6 +73,8 @@ static unsigned long filenum = 1L; + static char * + get_sys_tmpdir () + { ++ static int doshm; ++ + if (sys_tmpdir) + return sys_tmpdir; + +@@ -91,6 +101,31 @@ get_sys_tmpdir () + return sys_tmpdir; + } + ++#if defined(__linux__) ++static int ++emergency_sys_tmpdir () ++{ ++ static char *shm = "/dev/shm"; ++ static size_t pgsz; ++ struct statfs fs; ++ static int doshm; ++ ++ if (getuid() != 0) ++ return 0; ++ ++ if (doshm) ++ return 0; ++ ++ doshm++; ++ ++ if (statfs(shm, &fs) < 0 || fs.f_type != TMPFS_MAGIC || eaccess(shm, W_OK|X_OK)) ++ return 0; ++ ++ sys_tmpdir = shm; ++ return 1; ++} ++#endif ++ + static char * + get_tmpdir (flags) + int flags; +@@ -194,7 +229,8 @@ sh_mktmpfd (nameroot, flags, namep) + { + char *filename, *tdir, *lroot; + int fd, tdlen; +- ++ ++enospace: + filename = (char *)xmalloc (PATH_MAX + 1); + tdir = get_tmpdir (flags); + tdlen = strlen (tdir); +@@ -217,6 +253,10 @@ sh_mktmpfd (nameroot, flags, namep) + free (filename); + filename = NULL; + } ++ ++ if (fd < 0 && errno == ENOSPC && emergency_sys_tmpdir()) ++ goto enospace; ++ + if (namep) + *namep = filename; + return fd; +@@ -235,6 +275,13 @@ sh_mktmpfd (nameroot, flags, namep) + } + while (fd < 0 && errno == EEXIST); + ++ if (fd < 0 && errno == ENOSPC && emergency_sys_tmpdir()) ++ { ++ free (filename); ++ filename = NULL; ++ goto enospace; ++ } ++ + if (namep) + *namep = filename; + else diff --git a/bash-4.3-perl522.patch b/bash-4.3-perl522.patch new file mode 100644 index 0000000..6f13433 --- /dev/null +++ b/bash-4.3-perl522.patch @@ -0,0 +1,31 @@ +From: coolo@suse.com + +perl 5.22 makes the long deprecated defined(@array) an hard +error +--- + support/texi2html | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- support/texi2html ++++ support/texi2html 2016-03-08 11:49:40.596622296 +0000 +@@ -4855,9 +4855,9 @@ sub update_sec_num { + my $ret; + + $level--; # here we start at 0 +- if ($name =~ /^appendix/ || defined(@appendix_sec_num)) { ++ if ($name =~ /^appendix/ || @appendix_sec_num) { + # appendix style +- if (defined(@appendix_sec_num)) { ++ if (@appendix_sec_num) { + &incr_sec_num($level, @appendix_sec_num); + } else { + @appendix_sec_num = ('A', 0, 0, 0); +@@ -4865,7 +4865,7 @@ sub update_sec_num { + $ret = join('.', @appendix_sec_num[0..$level]); + } else { + # normal style +- if (defined(@normal_sec_num)) ++ if (@normal_sec_num) + { + &incr_sec_num($level, @normal_sec_num); + } diff --git a/bash-4.3-sigrestart.patch b/bash-4.3-sigrestart.patch new file mode 100644 index 0000000..7e0a0cd --- /dev/null +++ b/bash-4.3-sigrestart.patch @@ -0,0 +1,26 @@ +--- + sig.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- sig.c ++++ sig.c 2018-11-29 08:13:00.103944580 +0000 +@@ -814,6 +814,8 @@ set_signal_handler (sig, handler) + if (sig == SIGCHLD) + act.sa_flags |= SA_RESTART; /* XXX */ + #endif ++ if (handler == (trap_handler)) ++ act.sa_flags |= SA_NODEFER; /* XXX */ + /* Let's see if we can keep SIGWINCH from interrupting interruptible system + calls, like open(2)/read(2)/write(2) */ + #if defined (SIGWINCH) +@@ -826,6 +826,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 */ ++ else if (handler == (termsig_sighandler)) ++ act.sa_flags |= SA_NODEFER; /* XXX */ ++ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT) ++ act.sa_flags |= SA_NODEFER; /* XXX */ + + sigemptyset (&act.sa_mask); + sigemptyset (&oact.sa_mask); diff --git a/bash-4.3-winch.dif b/bash-4.3-winch.dif new file mode 100644 index 0000000..c39b4e9 --- /dev/null +++ b/bash-4.3-winch.dif @@ -0,0 +1,15 @@ +--- + config-top.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- config-top.h ++++ config-top.h 2018-09-20 08:15:45.026318359 +0000 +@@ -142,7 +142,7 @@ + + /* Define to 0 if you want the checkwinsize option off by default, 1 if you + want it on. */ +-#define CHECKWINSIZE_DEFAULT 0 ++#define CHECKWINSIZE_DEFAULT 1 + + /* Define to 1 if you want to optimize for sequential array assignment when + using indexed arrays, 0 if you want bash-4.2 behavior, which favors diff --git a/bash-5.2-patches.tar.bz2 b/bash-5.2-patches.tar.bz2 new file mode 100644 index 0000000..3a49a61 --- /dev/null +++ b/bash-5.2-patches.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebec9cd079b0e30d78fe673fe0548df12b499411dec9e4e673f7626a1ab13c36 +size 14145 diff --git a/bash-5.2.dif b/bash-5.2.dif new file mode 100644 index 0000000..67496b5 --- /dev/null +++ b/bash-5.2.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 2022-06-22 06:38:20.511747259 +0000 +@@ -466,7 +466,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 2022-04-28 11:55:03.660248012 +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 + + /* The default path for enable -f */ +@@ -97,20 +101,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 2022-04-28 11:53:04.334380153 +0000 +@@ -153,7 +153,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 2022-06-22 06:37:14.908958305 +0000 +@@ -5745,8 +5745,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 +@@ -11706,6 +11706,9 @@ command history + .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 2022-04-28 11:53:04.334380153 +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 2022-04-28 11:53:04.334380153 +0000 +@@ -1498,7 +1498,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 2022-04-28 11:56:12.623015117 +0000 +@@ -45,6 +45,7 @@ + #if defined (HAVE_UNISTD_H) + # include + # include ++# include + #endif + + #include "bashintl.h" +@@ -511,7 +512,7 @@ main (argc, argv, env) + read_but_dont_execute = 1; + #endif + +- 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 +@@ -1341,6 +1342,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 2022-04-28 11:53:04.338380081 +0000 +@@ -78,6 +78,7 @@ + #include + #include + #include ++#include + + #define NULL_TERMINATED(n) ((n) + 1) + +--- support/rlvers.sh ++++ support/rlvers.sh 2022-04-28 11:53:04.338380081 +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 2022-04-28 11:57:29.117647038 +0000 +@@ -126,10 +126,11 @@ sunos5*|solaris2*) + linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|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 2022-04-28 11:53:04.338380081 +0000 +@@ -34,8 +34,8 @@ ${THIS_SH} ./glob10.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 2022-04-28 11:58:22.140698412 +0000 +@@ -2,4 +2,4 @@ + ( diff -a ./intl.right ./intl.right >/dev/null 2>&1 ) && AFLAG=-a + + ${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 2022-04-28 11:53:04.338380081 +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.2.tar.gz b/bash-5.2.tar.gz new file mode 100644 index 0000000..7e99f6a --- /dev/null +++ b/bash-5.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb +size 10950833 diff --git a/bash-5.2.tar.gz.sig b/bash-5.2.tar.gz.sig new file mode 100644 index 0000000..fd15811 Binary files /dev/null and b/bash-5.2.tar.gz.sig differ diff --git a/bash-rpmlintrc b/bash-rpmlintrc new file mode 100644 index 0000000..3ee1687 --- /dev/null +++ b/bash-rpmlintrc @@ -0,0 +1,5 @@ +addFilter(".*shared-library-without-dependency-information.*") +addFilter(".*zero-length.*/etc/skel/\..*") +addFilter(".*call-to-mktemp.*/usr/bin/bash.*") +addFilter(".*W:.*patch-not-applied.*Patch.*:.*bash-4\.3-winch\.dif.*") +addFilter(".*W:.*macro-in-comment.*%patch.*") diff --git a/bash.changes b/bash.changes new file mode 100644 index 0000000..1788691 --- /dev/null +++ b/bash.changes @@ -0,0 +1,3627 @@ +------------------------------------------------------------------- +Tue Dec 27 10:23:00 UTC 2022 - Ludwig Nussel + +- Replace transitional %usrmerged macro with regular version check (boo#1206798) + +------------------------------------------------------------------- +Wed Dec 14 14:52:27 UTC 2022 - Dr. Werner Fink + +- Add upstream patches + * bash52-013 + Bash can leak memory when referencing a non-existent associative + array element. + * bash52-014 + Bash defers processing additional terminating signals when running + the EXIT trap while exiting due to a terminating signal. This + patch allows the new terminating signal to kill the shell immediately. + * bash52-015 + There are several cases where bash is too aggressive when optimizing + out forks in subshells. For example, `eval' and traps should never + be optimized. + +------------------------------------------------------------------- +Mon Nov 28 11:33:24 UTC 2022 - Dr. Werner Fink + +- Add upstream patches + * bash52-010 + Bash-5.2 checks the first 128 characters of an executable file that execve() + refuses to execute to see whether it's a binary file before trying to + execute it as a shell script. This defeats some previously-supported use + cases like "self-executing" jar files or "self-uncompressing" scripts. + * bash52-011 + Using timeouts and readline editing with the `read' builtin (read -e -t) can + leave the readline timeout enabled, potentially resulting in an erroneous + timeout on the next call. + * bash52-012 + When running in bash compatibility mode, nested command substitutions can + leave the `extglob' option enabled. + +------------------------------------------------------------------- +Wed Nov 9 15:10:07 UTC 2022 - Dr. Werner Fink + +- Add upstream patches + * bash52-003 + Command substitutions need to preserve newlines instead of replacing them + with semicolons, especially in the presence of multiple here-documents. + * bash52-004 + Bash needs to keep better track of nested brace expansions to avoid problems + with quoting and POSIX semantics. + * bash52-005 + Null pattern substitution replacement strings can cause a crash. + * bash52-006 + In interactive shells, interrupting the shell while entering a command + substitution can inhibit alias expansion. + * bash52-007 + This patch fixes several problems with alias expansion inside command + substitutions when in POSIX mode. + * bash52-008 + Array subscript expansion can inappropriately quote brackets if the expression + contains < or >. + * bash52-009 + Bash arithmetic expansion should allow `@' and `*' to be used as associative + array keys in expressions. + +------------------------------------------------------------------- +Wed Nov 2 07:48:10 UTC 2022 - Dr. Werner Fink + +- Set DEFAULT_LOADABLE_BUILTINS_PATH to get BASH_LOADABLES_PATH + correct (boo#1204567) + +------------------------------------------------------------------- +Thu Oct 20 11:14:16 UTC 2022 - Dr. Werner Fink + +- Explicit require versioned libreadline8 as we face new ABI + functions used by the bash (boo#1204336) + +------------------------------------------------------------------- +Wed Oct 12 17:37:47 UTC 2022 - Andreas Schwab + +- Don't strip binaries +- Work around a signal mask issue with qemu linux-user emulation + +------------------------------------------------------------------- +Wed Oct 12 11:30:01 UTC 2022 - Andreas Schwab + +- Remove backup of patched tests + +------------------------------------------------------------------- +Thu Oct 6 10:43:59 UTC 2022 - Dr. Werner Fink + +- Add upstream patches + * bash52-001 + Expanding unset arrays in an arithmetic context can cause a + segmentation fault. + * bash52-002 + Starting bash with an invalid locale specification for + LC_ALL/LANG/LC_CTYPE can cause the shell to crash. +- Do not run checks in parallel as it eats memory, a lot of memory +- Disable alternate array implementation as it eats a lot of memory + +------------------------------------------------------------------- +Tue Sep 27 07:54:48 UTC 2022 - Dr. Werner Fink + +- Update to final bash 5.2 + a. When replacing a history entry, make sure the existing entry has a non-NULL + timestamp before copying it; it may have been added by the application, not + the history library. + +------------------------------------------------------------------- +Tue Sep 27 07:44:16 UTC 2022 - Dr. Werner Fink + +- Modernize run-tests + +------------------------------------------------------------------- +Sat Sep 24 13:57:27 UTC 2022 - Christopher Yeleighton + +- add checks + +------------------------------------------------------------------- +Tue Sep 20 06:59:04 UTC 2022 - Dr. Werner Fink + +- Enable parallel builds by splitting clean and all at make time + (Thanks to Christopher Yeleighton) +- Do not copy more than 1 byte for \(aq becoming a "'" in + quotes-man2html.patch + +------------------------------------------------------------------- +Mon Sep 19 13:11:05 UTC 2022 - Dr. Werner Fink + +- Small change in quotes-man2html.patch + * Use a simple "'" aka quote instead of "′" for "\(aq" + +------------------------------------------------------------------- +Thu Sep 15 13:09:24 UTC 2022 - Dr. Werner Fink + +- Add patch quotes-man2html.patch + * Fix boo#1203091 -- BASH(1) Manual Page: Unprocessed macro aq + +------------------------------------------------------------------- +Tue Sep 13 06:42:43 UTC 2022 - Dr. Werner Fink + +- Update to bash 5.2 rc4 + Pos. aa is now enabled by default. + m. Readline now checks for changes to locale settings (LC_ALL/LC_CTYPE/LANG) + each time it is called, and modifies the appropriate locale-specific display +- Port patches + * bash-2.03-manual.patch + * bash-5.2.dif + +------------------------------------------------------------------- +Wed Jul 27 12:20:53 UTC 2022 - Dr. Werner Fink + +- Update to bash 5.2 rc2 + gg. Since there is no `declare -' equivalent of `local -', make sure to use + `local -' in the output of `local -p'. + +------------------------------------------------------------------- +Wed Jun 22 06:19:27 UTC 2022 - Dr. Werner Fink + +- Update to bash 5.2 rc1 + dd. In posix mode, the `printf' builtin checks for the `L' length modifier and + uses long double for floating point conversion specifiers if it's present, + double otherwise. + ee. The `globbing' completion code now takes the `globstar' option into account. + ff. `suspend -f' now forces the shell to suspend even if job control is not + currently enabled. +- Port patches + * bash-2.03-manual.patch + * bash-3.2-printf.patch + * bash-4.1-bash.bashrc.dif + * bash-5.2.dif + +------------------------------------------------------------------- +Thu Apr 28 19:00:17 UTC 2022 - Dirk Müller + +- use https:// for source urls + +------------------------------------------------------------------- +Thu Apr 28 11:59:44 UTC 2022 - Dr. Werner Fink + +- Update to bash 5.2 beta + a. The bash malloc returns memory that is aligned on 16-byte boundaries. + b. There is a new internal timer framework used for read builtin timeouts. + c. Rewrote the command substitution parsing code to call the parser recursively + and rebuild the command string from the parsed command. This allows better + syntax checking and catches errors much earlier. + d. The `ulimit' builtin now treats an operand remaining after all of the options + and arguments are parsed as an argument to the last command specified by + an option. This is for POSIX compatibility. + e. Here-document parsing now handles $'...' and $"..." quoting when reading the + here-document body. + f. The `shell-expand-line' and `history-and-alias-expand-line' bindable readline + commands now understand $'...' and $"..." quoting. + g. There is a new `spell-correct-word' bindable readline command to perform + spelling correction on the current word. + h. The `unset' builtin now attempts to treat arguments as array subscripts + without parsing or expanding the subscript, even when `assoc_expand_once' + is not set. + i. There is a default value for $BASH_LOADABLES_PATH in config-top.h. + j. Associative array assignment and certain instances of referencing (e.g., + `test -v' now allow `@' and `*' to be used as keys. + k. Bash attempts to expand indexed array subscripts only once when executing + shell constructs and word expansions. + l. The `unset' builtin allows a subscript of `@' or `*' to unset a key with + that value for associative arrays instead of unsetting the entire array + (which you can still do with `unset arrayname'). For indexed arrays, it + removes all elements of the array without unsetting it (like `A=()'). + m. Additional builtins (printf/test/read/wait) do a better job of not + parsing array subscripts if array_expand_once is set. + n. New READLINE_ARGUMENT variable set to numeric argument for readline commands + defined using `bind -x'. + o. The new `varredir_close' shell option causes bash to automatically close + file descriptors opened with {var}&WORD- redirection has WORD expand to the empty + string, treat the redirection as [N]<&- or [N]>&- and close file descriptor + N (default 0). + w. Invalid parameter transformation operators are now invalid word expansions, + and so cause fatal errors in non-interactive shells. + x. New shell option: patsub_replacement. When enabled, a `&' in the replacement + string of the pattern substitution expansion is replaced by the portion of + the string that matched the pattern. Backslash will escape the `&' and + insert a literal `&'. + y. `command -p' no longer looks in the hash table for the specified command. + z. The new `--enable-translatable-strings' option to `configure' allows $"..." + support to be compiled in or out. + aa. The new `globskipdots' shell option forces pathname expansion never to + return `.' or `..' unless explicitly matched. + bb. Array references using `@' and `*' that are the value of nameref variables + (declare -n ref='v[@]' ; echo $ref) no longer cause the shell to exit if + set -u is enabled and the array (v) is unset. + cc. There is a new bindable readline command name: + `vi-edit-and-execute-command'. +- Remove upstream patchset tarball for 8.1 and create new and empty for 8.2 +- Port patches + * bash-2.03-manual.patch + * bash-3.0-evalexp.patch + * bash-3.0-warn-locale.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 +- Port patch bash-5.1.dif and rename it to bash-5.2.dif + +------------------------------------------------------------------- +Thu Mar 24 14:37:18 UTC 2022 - Dr. Werner Fink + +- Do use old legacy PreReq to get bash installed before bash-sh + but do not require bash-sh by bash (bsc#1197448) + +------------------------------------------------------------------- +Thu Feb 24 08:17:32 UTC 2022 - Dr. Werner Fink + +- Add signatures files of the upstream patches as well + +------------------------------------------------------------------- +Wed Feb 23 16:49:10 UTC 2022 - Bernhard Wiedemann + +- Verify upstream release signatures + +------------------------------------------------------------------- +Fri Jan 14 11:57:21 UTC 2022 - Dr. Werner Fink + +- Update bash 5.1 to patch level 16 + * Add official patch bash51-013 + Bash did not always perform tilde expansion following an unquoted colon on + the rhs of an assignment statement in posix mode. + * Add official patch bash51-014 + Bash may produce corrupted input if a multibyte character spans a 512-byte + boundary while reading the output of a command substitution. + * Add official patch bash51-015 + There are some characters (e.g., cyrillic) that can't be displayed using + certain single-byte encodings (e.g., cp1251) because the negative signed + int is interpreted as EOF and not displayed. + * Add official patch bash51-016 + Multiple `!' tokens should toggle negation of an expression in a [[ + conditional command, instead of simply negating the expression. + +------------------------------------------------------------------- +Fri Dec 3 13:59:00 UTC 2021 - Dirk Müller + +- avoid duplicating COPYING file in bash-doc (already in main package in + licensedir) + +------------------------------------------------------------------- +Thu Nov 18 10:28:52 UTC 2021 - Dr. Werner Fink + +- Update bash 5.1 to patch level 12 + * Add official patch bash51-009 + The bash malloc implementation of malloc_usable_size() does not follow the + specification. This can cause library functions that use it to overwrite + memory bounds checking. + * Add official patch bash51-010 + If `wait -n' is interrupted by a trapped signal other than SIGINT, it does + not completely clean up state, and that can prevent subsequent calls to + `wait -n' from working correctly. + * Add official patch bash51-011 + When reading a compound assignment, and running it through the parser to + split it into words, we need to save and restore any alias we're currently + expanding. + * Add official patch bash51-012 + There is a possible race condition that arises when a child process receives + a signal trapped by the parent before it can reset the signal dispositions. + The child process is not supposed to trap the signal in this circumstance. + +------------------------------------------------------------------- +Fri Oct 22 09:28:06 UTC 2021 - Stefan Schubert + +- Using package bash-sh instead of the update-alternative + mechanism. + +------------------------------------------------------------------- +Thu Sep 30 13:42:48 UTC 2021 - Andreas Schwab + +- Install bash_builtins manpage under the correct name + +------------------------------------------------------------------- +Mon Jul 26 08:03:24 UTC 2021 - Dr. Werner Fink + +- Use a get_version_number.sh script + +------------------------------------------------------------------- +Fri Jul 23 12:18:48 UTC 2021 - Callum Farmer + +- Get patch lvl by running command to find it instead of hardcoding +- Remove old SUSE RPM constructs +- Clean spec file + +------------------------------------------------------------------- +Fri May 28 13:53:55 UTC 2021 - Dr. Werner Fink + +- Use well defined HOSTTYPE, as well as OS, VENDOR, and MACHTYPE (boo#1186296) + +------------------------------------------------------------------- +Wed May 5 14:59:54 UTC 2021 - Dr. Werner Fink + +- Add official patch bash51-005 + * Fix two memory leaks when assigning arrays using compound assignment syntax. +- Add official patch bash51-006 + * Make sure child processes forked to run command substitutions are in the + proper process group. +- Add official patch bash51-007 + * The code to check readline versions in an inputrc file had the sense of the + comparisons reversed. +- Add official patch bash51-008 + * Process substitution FIFOs opened by child processes as targets of redirections + were not removed appropriately, leaving remnants in the file system. +------------------------------------------------------------------- +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 + +- dot.profile: moved example for user specific LANG setting + from .profile to .i18n (x11-tools package) skeleton file (boo#1158724) + +------------------------------------------------------------------- +Sun Aug 2 20:49:58 UTC 2020 - Matthias Eliasson + +- Bump bpatchlvl version to 18 which was missed in previous change + +------------------------------------------------------------------- +Tue Jul 14 07:20:07 UTC 2020 - Dr. Werner Fink + +- Add official patch bash50-018 + * In certain cases, bash does not perform quoted null removal on patterns + that are used as part of word expansions such as ${parameter##pattern}, so + empty patterns are treated as non-empty. + +------------------------------------------------------------------- +Sat May 9 07:03:45 UTC 2020 - Dr. Werner Fink + +- Add official patch bash50-017 + * There were cases where patch 16 reaped process substitution + file descriptors (or FIFOs) and processes to early. This is + a better fix for the problem that bash50-016 attempted to solve. +- Remove temporary patch bash50-fix-016-close-new-fifos.patch + +------------------------------------------------------------------- +Sun Apr 19 08:03:03 UTC 2020 - Thorsten Kukuk + +- Fix usage of update-alternatives + +------------------------------------------------------------------- +Fri Apr 3 08:28:08 UTC 2020 - Dr. Werner Fink + +- Add temporary patch bash50-fix-016-close-new-fifos.patch from upstream + to fix upstream patch bash50-016 + +------------------------------------------------------------------- +Mon Feb 24 09:21:01 UTC 2020 - Ludwig Nussel + +- move man pages back to main package. It's just 100k + +------------------------------------------------------------------- +Thu Feb 13 10:56:07 UTC 2020 - Dr. Werner Fink + +- Add official patch bash50-012 + When using previous-history to go back beyond the beginning of the history list, + it's possible to move to an incorrect partial line. +- Add official patch bash50-013 + Reading history entries with timestamps can result in history entries joined + by linefeeds. +- Add official patch bash50-014 + If the current line is empty, using the emacs C-xC-e binding to enter the + editor will edit the previous command instead of the current (empty) one. +- Add official patch bash50-015 + If alias expansion is enabled when processing the command argument to the + `-c' option, an alias is defined in that command, and the command ends with + the invocation of that alias, the shell's command parser can prematurely + terminate before the entire command is executed. +- Add official patch bash50-016 + Bash waits too long to reap /dev/fd process substitutions used as redirections + with loops and group commands, which can lead to file descriptor exhaustion. + +------------------------------------------------------------------- +Wed Oct 16 12:49:36 UTC 2019 - Dr. Werner Fink + +- Remove PILOTPORT and PILOTRATE environment variable from + default ~/.bashrc (/etc/skel/.bashrc) (bsc#1123510) +- Move definitions of environment variables from ~/.bashrc to + ~/.profile (/etc/skel/.profile) + +------------------------------------------------------------------- +Thu Sep 19 12:00:32 UTC 2019 - Ludwig Nussel + +- Do not recommend lang package. The lang package already has a + supplements. + +------------------------------------------------------------------- +Mon Sep 9 08:06:54 UTC 2019 - Dr. Werner Fink + +- Use new version scheme which now includes patch level as well +- Add official patch bash50-010 + * Change posix mode bahviour + * Remove patch assignment-preceding-builtin.patch +- Add official patch bash50-011 + The conditional command did not perform appropriate quoted null + character removal on its arguments, causing syntax errors and + attempts to stat invalid pathnames. + +------------------------------------------------------------------- +Wed Sep 4 09:08:53 UTC 2019 - Ludwig Nussel + +- Avoid pulling in bash-doc into every installation. Instead of + recommeding it, supplement the documentation pattern. + +------------------------------------------------------------------- +Thu Aug 15 13:43:55 UTC 2019 - Dr. Werner Fink + +- Add official patch bash50-008 + When HISTSIZE is set to 0, history expansion can leave the history length + set to an incorrect value, leading to subsequent attempts to access invalid + memory. +- Add official patch bash50-009 + The history file reading code doesn't close the file descriptor open to + the history file when it encounters a zero-length file. + +------------------------------------------------------------------- +Tue Apr 23 12:58:16 UTC 2019 - Dr. Werner Fink + +- Add official patch bash50-004 + * In bash-5.0, the `wait' builtin without arguments waits for all children of the + shell. This includes children it `inherited' at shell invocation time. This + patch modifies the behavior to not wait for these inherited children, some + of which might be long-lived. +- Add official patch bash50-005 + * In certain cases, bash optimizes out a fork() call too early and prevents + traps from running. +- Add official patch bash50-006 + * Bash-5.0 did not build successfully if SYSLOG_HISTORY was defined without + also defining SYSLOG_SHOPT. +- Add official patch bash50-007 + * Running `exec' when job control was disabled, even temporarily, but after it + had been initialized, could leave the terminal in the wrong process group for + the executed process. + +------------------------------------------------------------------- +Thu Apr 4 07:18:57 UTC 2019 - Dr. Werner Fink + +- Add temporary fix from upstream for boo#1128936 + +------------------------------------------------------------------- +Thu Mar 21 08:24:11 UTC 2019 - Dr. Werner Fink + +- Add patch assignment-preceding-builtin.patch from upstream + mailing list. Note that this break backward behaviour with + bash-4.4 but implies that POSIX mode is more correct + +------------------------------------------------------------------- +Thu Mar 21 07:57:41 UTC 2019 - Dr. Werner Fink + +- Replace the temporary patch with official bash50-003 + +------------------------------------------------------------------- +Mon Mar 11 07:20:37 UTC 2019 - Dr. Werner Fink + +- Update temporary patch from upstream to make sed testsuite + work again + +------------------------------------------------------------------- +Wed Mar 6 11:06:10 UTC 2019 - Dr. Werner Fink + +- Requires(postun) -> Requires(preun) + +------------------------------------------------------------------- +Tue Mar 5 12:04:07 UTC 2019 - Dr. Werner Fink + +- Do not link /bin/sh as slave alternative to /usr/bin/sh + +------------------------------------------------------------------- +Mon Mar 4 14:30:38 UTC 2019 - Dr. Werner Fink + +- Add temporary patch from upstream to fix boo#1127700 + +------------------------------------------------------------------- +Mon Mar 4 10:14:12 UTC 2019 - Dr. Werner Fink + +- Refine and harden update-alternatives work flow +- Move header and Makefile from bash-loadables to bash-devel + +------------------------------------------------------------------- +Fri Mar 1 14:01:16 UTC 2019 - Dr. Werner Fink + +- Make update-alternatives work flawless + +------------------------------------------------------------------- +Fri Feb 8 10:30:17 UTC 2019 - Jan Engelhardt + +- Put "sh" under control of update-alternatives + +------------------------------------------------------------------- +Thu Feb 7 15:06:12 UTC 2019 - Dr. Werner Fink + +- Add upstream patches bash50-001 and bash50-002 + +------------------------------------------------------------------- +Wed Jan 9 12:47:04 UTC 2019 - Dr. Werner Fink + +- Update to bash 5.0 (final) + a. Tilde expansion isn't performed on indexed array subscripts, even for + backwards compatibility. + b. The shell doesn't exit in posix mode if the eval builtin gets a parse + error when run by the command builtin. + c. Fixed a bug that caused a shell comment in an alias to not find the end + of the alias properly. + d. Reverted a change from April, 2018 that caused strings containing + backslashes to be flagged as glob patterns. +- Modify patches + * bash-2.03-manual.patch + * bash-4.3-loadables.dif + * bash-5.0.dif + +------------------------------------------------------------------- +Fri Dec 21 13:34:47 UTC 2018 - Dr. Werner Fink + +- Update to bash 5.0 rc1 + a. Fix to initial word completion detection code. + b. Fixed a bug that caused issues with assignment statements containing ^A in + the value assigned when IFS contains ^A. + c. Added a fallback to fnmatch() when strcoll can't correctly deal with + bracket expression character equivalence classes. + d. Fixed a bug that caused $BASH_COMMAND to contain the trap handler command + when running a trap handler containing [[ or (( commands. + e. Fixed a bug that caused nameref assignments in the temporary environment + to potentially create variables with invalid names. + f. Fixed a bug that caused `local -' to turn off alias expansion in scripts. + g. Fixed a parser issue with a command string containing EOF after an invalid + command as an argument to a special builtin not causing a posix-mode shell + to exit. + h. Made a slight change to the FNV-1 string hash algorithm used for associative + arrays (corrected the initial seed). + a. The `select' command now supports command forms without a word list + following `in'. + +------------------------------------------------------------------- +Thu Nov 29 08:22:16 UTC 2018 - Dr. Werner Fink + +- Update to bash 5.0 beta2 + ii. Associative and indexed arrays now allow subscripts consisting solely of + whitespace. + jj. `checkwinsize' is now enabled by default. + kk. The `localvar_unset' shopt option is now visible and documented. + ll. The `progcomp_alias' shopt option is now visible and documented. + mm. The signal name processing code now understands `SIGRTMIN+n' all the way + up to SIGRTMAX. + nn. There is a new `seq' loadable builtin. + oo. Trap execution now honors the (internal) max invocations of `eval', since + traps are supposed to be executed as if using `eval'. + pp. The $_ variable doesn't change when the shell executes a command that forks. + qq. The `kill' builtin now supports -sSIGNAME and -nSIGNUM, even though + conforming applications aren't supposed to use them. + rr. POSIX mode now enables the `shift_verbose' option. +- Modify patches + * bash-2.03-manual.patch + * bash-3.0-evalexp.patch + * bash-3.2-printf.patch + * bash-4.0-security.patch + * bash-4.1-completion.dif + * bash-4.3-2.4.4.patch + * bash-4.3-SJIS.patch + * bash-4.3-extra-import-func.patch + * bash-4.3-sigrestart.patch + * bash-5.0.dif +- Add temporary upstream patch upstream.patch + +------------------------------------------------------------------- +Thu Sep 20 08:56:46 UTC 2018 - Dr. Werner Fink + +- Update to bash 5.0 beta + a. The `wait' builtin can now wait for the last process substitution created. + b. There is an EPOCHSECONDS variable, which expands to the time in seconds + since the Unix epoch. + c. There is an EPOCHREALTIME variable, which expands to the time in seconds + since the Unix epoch with microsecond granularity. + d. New loadable builtins: rm, stat, fdflags. + e. BASH_ARGV0: a new variable that expands to $0 and sets $0 on assignment. + f. When supplied a numeric argument, the shell-expand-line bindable readline + command does not perform quote removal and suppresses command and process + substitution. + g. `history -d' understands negative arguments: negative arguments offset from + the end of the history list. + h. The `name' argument to the `coproc' reserved word now undergoes word + expansion, so unique coprocs can be created in loops. + i. A nameref name resolution loop in a function now resolves to a variable by + that name in the global scope. + j. The `wait' builtin now has a `-f' option, which signfies to wait until the + specified job or process terminates, instead of waiting until it changes + state. + k. There is a define in config-top.h that allows the shell to use a static + value for $PATH, overriding whatever is in the environment at startup, for + use by the restricted shell. + l. Process substitution does not inherit the `v' option, like command + substitution. + m. If a non-interactive shell with job control enabled detects that a foreground + job died due to SIGINT, it acts as if it received the SIGINT. + n. The SIGCHLD trap is run once for each exiting child process even if job + control is not enabled when the shell is in Posix mode. + o. A new shopt option: localvar_inherit; if set, a local variable inherits the + value of a variable with the same name at the nearest preceding scope. + p. `bind -r' now checks whether a key sequence is bound before binding it to + NULL, to avoid creating keymaps for a multi-key sequence. + q. A numeric argument to the line editing `operate-and-get-next' command + specifies which history entry to use. + r. The positional parameters are now assigned before running the shell startup + files, so startup files can use $@. + s. There is a compile-time option that forces the shell to disable the check + for an inherited OLDPWD being a directory. + t. The `history' builtin can now delete ranges of history entries using + `-d start-end'. + u. The `vi-edit-and-execute-command' bindable readline command now puts readline + back in vi insertion mode after executing commands from the edited file. + v. The command completion code now matches aliases and shell function names + case-insensitively if the readline completion-ignore-case variable is set. + w. There is a new `assoc_expand_once' shell option that attempts to expand + associative array subscripts only once. + x. The shell only sets up BASH_ARGV and BASH_ARGC at startup if extended + debugging mode is active. The old behavior of unconditionally setting them + is available as part of the shell compatibility options. + y. The `umask' builtin now allows modes and masks greater than octal 777. + z. The `times' builtin now honors the current locale when printing a decimal + point. + aa. There is a new (disabled by default, undocumented) shell option to enable + and disable sending history to syslog at runtime. + bb. Bash no longer allows variable assignments preceding a special builtin that + changes variable attributes to propagate back to the calling environment + unless the compatibility level is 44 or lower. + cc. You can set the default value for $HISTSIZE at build time in config-top.h. + dd. The `complete' builtin now accepts a -I option that applies the completion + to the initial word on the line. + ee. The internal bash malloc now uses mmap (if available) to satisfy requests + greater than 128K bytes, so free can use mfree to return the pages to the + kernel. + ff. The shell doesn't automatically set BASH_ARGC and BASH_ARGV at startup + unless it's in debugging mode, as the documentation has always said, but + will dynamically create them if a script references them at the top level + without having enabled debugging mode. + gg. The localvar_inherit option will not attempt to inherit a value from a + variable of an incompatible type (indexed vs. associative arrays, for + example). + hh. The `globasciiranges' option is now enabled by default; it can be set to + off by default at configuration time. +- Modify and port patches + * bash-2.03-manual.patch + * bash-3.0-evalexp.patch + * bash-3.0-warn-locale.patch + * bash-3.2-printf.patch + * bash-4.0-security.patch + * bash-4.0-setlocale.dif + * bash-4.1-bash.bashrc.dif + * bash-4.1-completion.dif + * bash-4.2-nscdunmap.dif + * bash-4.3-2.4.4.patch + * bash-4.3-extra-import-func.patch + * bash-4.3-loadables.dif + * bash-4.3-sigrestart.patch + * bash-4.3-winch.dif +- Port and rename bash-4.4.dif which is now bash-5.0.dif +- Delete not used patch bash-4.2-endpw.dif +- Remove patch bash-memmove.patch now upstream +- Add patch bash-4.3-SJIS.patch which is disabled by default + +------------------------------------------------------------------- +Sat Jul 7 05:03:48 UTC 2018 - bwiedemann@suse.com + +- Add bash-memmove.patch to make bash.html build reproducible (boo#1100488) + +------------------------------------------------------------------- +Mon Jun 4 09:21:15 UTC 2018 - werner@suse.de + +- In patch bash-4.4.dif avoid setgroups(2) but use initgroups(3) (boo#1095670) + +------------------------------------------------------------------- +Sat Jun 2 17:17:13 UTC 2018 - avindra@opensuse.org + +- Add patch 20, 21, 22 and 23 to bash-4.4-patches.tar.bz2 + * 20: In circumstances involving long-running scripts that create + and reap many processes, it is possible for the hash table bash + uses to store exit statuses from asynchronous processes to + develop loops. This patch fixes the loop causes and adds code + to detect any future loops. + * 21: A SIGINT received inside a SIGINT trap handler can possibly + cause the shell to loop. + * 22: There are cases where a failing readline command (e.g., + delete-char at the end of a line) can cause a multi-character + key sequence to `back up' and attempt to re-read some of the + characters in the sequence. + * 23: When sourcing a file from an interactive shell, setting the + SIGINT handler to the default and typing ^C will cause the + shell to exit. +- remove bash-4.4-wait-sigint-handler.patch (upstreamed) + +------------------------------------------------------------------- +Wed Apr 18 10:49:26 UTC 2018 - werner@suse.de + +- Add patch bash-4.4-wait-sigint-handler.patch to fix bug bsc#1086247 + that is repeating self inserting trap due external command in the + trap. + +------------------------------------------------------------------- +Fri Mar 16 17:37:08 UTC 2018 - werner@suse.de + +- Make sure that correct readline-devel version is used (current 7.0) + +------------------------------------------------------------------- +Fri Mar 16 06:22:31 UTC 2018 - werner@suse.de + +- Correct documentation path + +------------------------------------------------------------------- +Mon Mar 12 15:28:24 UTC 2018 - werner@suse.de + +- Due package split removed patches (for the bots) + * readline-6.2-xmalloc.dif + * readline-6.2-endpw.dif + * readline-6.3-destdir.patch + * readline-6.2-metamode.patch + * readline-7.0.dif + * readline-6.3-input.dif + * readline-5.2-conf.patch + * readline-6.3-rltrace.patch + +------------------------------------------------------------------- +Mon Mar 12 14:12:52 UTC 2018 - schwab@suse.de + +- Split readline off into its own package + +------------------------------------------------------------------- +Tue Feb 27 14:26:53 UTC 2018 - werner@suse.de + +- Create readline-devel-static package to re-enable static libraries + again (boo#1082913) + +------------------------------------------------------------------- +Thu Feb 22 15:10:29 UTC 2018 - fvogt@suse.com + +- Use %license (boo#1082318) + +------------------------------------------------------------------- +Tue Feb 6 23:25:18 UTC 2018 - avindra@opensuse.org + +- Add patch 19 to bash-4.4-patches.tar.bz2 + * With certain values for PS1, especially those that wrap onto + three or more lines, readline will miscalculate the number of + invisible characters, leading to crashes and core dumps. + +------------------------------------------------------------------- +Tue Jan 30 01:42:43 UTC 2018 - avindra@opensuse.org + +- Add patches 13-18 to bash-4.4-patches.tar.bz2 + * 13: If a here-document contains a command substitution, the + command substitution can get access to the file descriptor used + to write the here-document. + * 14: Under some circumstances, functions that return via the + `return' builtin do not clean up memory they allocated to keep + track of FIFOs. + * 15: Process substitution can leak internal quoting to the + parser in the invoked subshell. + * 16: Bash can perform trap processing while reading command + substitution output instead of waiting until the command + completes. + * 17: There is a memory leak when `read -e' is used to read a + line using readline. + * 18: Under certain circumstances (e.g., reading from /dev/zero), + read(2) will not return -1 even when interrupted by a signal. + The read builtin needs to check for signals in this case. +- partial cleanup with spec-cleaner + +------------------------------------------------------------------- +Wed Jan 24 12:40:17 UTC 2018 - werner@suse.de + +- Modify patch bash-4.3-pathtemp.patch to avoid crash at full + file system (boo#1076909) + +------------------------------------------------------------------- +Fri Dec 8 06:12:43 UTC 2017 - werner@suse.de + +- Enable multibyte characters by default + +------------------------------------------------------------------- +Mon Sep 25 09:13:32 UTC 2017 - werner@suse.de + +- Modify patch bash-4.4.dif to let bashline.h install as well as + this header file is included by general.h due to the same patch + (boo#1060069) + +------------------------------------------------------------------- +Thu May 25 17:33:36 UTC 2017 - bwiedemann@suse.com + +- Make build reproducible in spite of profile based optimizations (boo#1040589) + +------------------------------------------------------------------- +Wed May 24 12:42:20 UTC 2017 - bwiedemann@suse.com + +- Allow to disable do_profiling in builds (related to boo#1040589) + +------------------------------------------------------------------- +Wed Apr 26 16:04:15 UTC 2017 - werner@suse.de + +- Simplify patch readline-5.2-conf.patch + +------------------------------------------------------------------- +Tue Apr 25 09:18:16 UTC 2017 - werner@suse.de + +- Do not throw info and manual pages away + +------------------------------------------------------------------- +Fri Feb 17 14:08:47 UTC 2017 - werner@suse.de + +- Remove bash-4.0-async-bnc523667.dif as this one is fixed (and + was disabled and nobody had reported trouble) + +------------------------------------------------------------------- +Mon Jan 30 16:11:13 UTC 2017 - werner@suse.de + +- Add upstream patch readline70-002 which replace old one + There is a race condition in add_history() that can be triggered by a fatal + signal arriving between the time the history length is updated and the time + the history list update is completed. A later attempt to reference an + invalid history entry can cause a crash. +- Add upstream patch readline70-003 + Readline-7.0 uses pselect(2) to allow readline to handle signals that do not + interrupt read(2), such as SIGALRM, before reading another character. The + signal mask used in the pselect call did not take into account signals the + calling application blocked before calling readline(). + +------------------------------------------------------------------- +Fri Jan 27 17:31:59 UTC 2017 - werner@suse.de + +- Add upstream patch bash44-006 + Out-of-range negative offsets to popd can cause the shell to crash + attempting to free an invalid memory block. +- Remove patch popd-offset-overflow.patch to use bash44-006 +- Add upstream patch bash44-007 + When performing filename completion, bash dequotes the directory + name being completed, which can result in match failures and + potential unwanted expansion. +- Duplicate bash44-007 as readline70-002 as it seems to be missed +- Add upstream patch bash44-008 + Under certain circumstances, bash will evaluate arithmetic + expressions as part of reading an expression token even when + evaluation is suppressed. This happens while evaluating a + conditional expression and skipping over the failed branch of the + expression. +- Add upstream patch bash44-009 + There is a race condition in add_history() that can be triggered + by a fatal signal arriving between the time the history length + is updated and the time the history list update is completed. + A later attempt to reference an invalid history entry can cause + a crash. +- Add upstream patch bash44-010 + Depending on compiler optimizations and behavior, the `read' + builtin may not save partial input when a timeout occurs. +- Add upstream patch bash44-011 + Subshells begun to run command and process substitutions may + attempt to set the terminal's process group to an incorrect + value if they receive a fatal signal. This depends on the + behavior of the process that starts the shell. +- Add upstream patch bash44-012 + When -N is used, the input is not supposed to be split using + $IFS, but leading and trailing IFS whitespace was still removed. + +------------------------------------------------------------------- +Thu Jan 19 12:20:06 UTC 2017 - werner@suse.de + +- Remove -L option on screen call dues API change, now we depend + on environment variables only. + +------------------------------------------------------------------- +Fri Dec 9 12:09:46 UTC 2016 - mliska@suse.cz + +- Enable -fprofile-correction to cover misleading profile created due + to terminating_signal which does not return. + +------------------------------------------------------------------- +Mon Nov 28 11:41:49 UTC 2016 - werner@suse.de + +- Add upstream patch popd-offset-overflow.patch to fix boo#1010845 + CVE-2016-9401: bash: popd controlled free (Segmentation fault) + Remark: this is a simple Segmentation fault, no security risk + +------------------------------------------------------------------- +Thu Nov 17 09:27:21 UTC 2016 - werner@suse.de + +- Add upstream patch bash44-001 + Bash-4.4 changed the way the history list is initially allocated to reduce + the number of reallocations and copies. Users who set HISTSIZE to a very + large number to essentially unlimit the size of the history list will get + memory allocation errors +- Add upstream patch bash44-002 + Bash-4.4 warns when discarding NUL bytes in command substitution output + instead of silently dropping them. This patch changes the warnings from + one per NUL byte encountered to one warning per command substitution. +- Drop no-null-warning.patch as bash44-002 is official replacement +- Add upstream patch bash44-003 + Specially-crafted input, in this case an incomplete pathname expansion + bracket expression containing an invalid collating symbol, can cause the + shell to crash. +- Add upstream patch bash44-004 + There is a race condition that can result in bash referencing freed memory + when freeing data associated with the last process substitution. +- Add upstream patch bash44-005 + Under certain circumstances, a simple command is optimized to eliminate a + fork, resulting in an EXIT trap not being executed. (boo#1008459) +- Add upstream patch readline70-001 + Readline-7.0 changed the way the history list is initially allocated to reduce + the number of reallocations and copies. Users who set the readline + history-size variable to a very large number to essentially unlimit the size + of the history list will get memory allocation errors + +------------------------------------------------------------------- +Mon Oct 24 13:51:10 UTC 2016 - schwab@suse.de + +- no-null-warning.patch: Don't warn about null bytes in command + substitution + +------------------------------------------------------------------- +Tue Oct 4 12:59:48 UTC 2016 - werner@suse.de + +- Avoid confusing library path + +------------------------------------------------------------------- +Fri Sep 16 10:41:30 UTC 2016 - werner@suse.de + +- Update bash 4.4 final + * Latest bug fixes since 4.4 rc2 +- Update readline 7.0 final + * Latest bug fixes since 7.0 rc2 + * New application-callable function: rl_pending_signal(): returns the signal + number of any signal readline has caught but not yet handled. + * New application-settable variable: rl_persistent_signal_handlers: if set + to a non-zero value, readline will enable the readline-6.2 signal handler + behavior in callback mode: handlers are installed when + rl_callback_handler_install is called and removed removed when a complete + line has been read. +- Drop patch bash-4.3-async-bnc971410.dif as this one is part of 4.4 +- Drop patch bash-3.2-longjmp.dif as now long time be fixed +- Drop patch bash-4.3-headers.dif as loadables now simply work +- Drop readline-6.1-wrap.patch as this seems to be fixed +- Disable patch bash-4.0-async-bnc523667.dif for now as it seems to be fixed + in an other way + +------------------------------------------------------------------- +Wed Sep 14 09:00:14 UTC 2016 - werner@suse.de + +- Update bash 4.4 rc2 -- Bugfixes +- Update readline 7.0 rc2 -- Bugfixes + +------------------------------------------------------------------- +Mon Aug 1 13:47:05 UTC 2016 - werner@suse.de + +- Make clear that the files /etc/profile as well as /etc/bash.bashrc + may source other files as well even if the bash does not. + Therefore modify patch bash-4.1-bash.bashrc.dif (bsc#959755) + +------------------------------------------------------------------- +Thu Jul 14 12:43:08 UTC 2016 - werner@suse.de + +- Update bash 4.4 beta 2 + * Value conversions (arithmetic expansions, case modification, etc.) now + happen when assigning elements of an array using compound assignment. + * There is a new option settable in config-top.h that makes multiple + directory arguments to `cd' a fatal error. + * Bash now uses mktemp() when creating internal temporary files; it produces + a warning at build time on many Linux systems. +- Update to readline library 7.0 beta 2 (not enabled as not standalone) + * The default binding for ^W in vi mode now uses word boundaries specified + by Posix (vi-unix-word-rubout is bindable command name). + * rl_clear_visible_line: new application-callable function; clears all + screen lines occupied by the current visible readline line. + * rl_tty_set_echoing: application-callable function that controls whether + or not readline thinks it is echoing terminal output. + * Handle >| and strings of digits preceding and following redirection + specifications as single tokens when tokenizing the line for history + expansion. + * Fixed a bug with displaying completions when the prefix display length + is greater than the length of the completions to be displayed. + * The :p history modifier now applies to the entire line, so any expansion + specifying :p causes the line to be printed instead of expanded. + +------------------------------------------------------------------- +Tue Mar 8 14:49:41 UTC 2016 - werner@suse.de + +- Update bash 4.4 release candidate 1 + * There is now a settable configuration #define that will cause the shell + to exit if the shell is running setuid without the -p option and setuid + to the real uid fails. + * Command and process substitutions now turn off the `-v' option when + executing, as other shells seem to do. + * The default value for the `checkhash' shell option may now be set at + compile time with a #define. + * The `mapfile' builtin now has a -d option to use an arbitrary character + as the record delimiter, and a -t option to strip the delimiter as + supplied with -d. + * The maximum number of nested recursive calls to `eval' is now settable in + config-top.h; the default is no limit. + * The `-p' option to declare and similar builtins will display attributes for + named variables even when those variables have not been assigned values + (which are technically unset). + * The maximum number of nested recursive calls to `source' is now settable + in config-top.h; the default is no limit. + * All builtin commands recognize the `--help' option and print a usage + summary. + * Bash does not allow function names containing `/' and `=' to be exported. + * The `ulimit' builtin has new -k (kqueues) and -P (pseudoterminals) options. + * The shell now allows `time ; othercommand' to time null commands. + * There is a new `--enable-function-import' configuration option to allow + importing shell functions from the environment; import is enabled by + default. + * `printf -v var ""' will now set `var' to the empty string, as if `var=""' + had been executed. + * GLOBIGNORE, the pattern substitution word expansion, and programmable + completion match filtering now honor the value of the `nocasematch' option. + * There is a new ${parameter@spec} family of operators to transform the + value of `parameter'. + * Bash no longer attempts to perform compound assignment if a variable on the + rhs of an assignment statement argument to `declare' has the form of a + compound assignment (e.g., w='(word)' ; declare foo=$w); compound + assignments are accepted if the variable was already declared as an array, + but with a warning. + * The declare builtin no longer displays array variables using the compound + assignment syntax with quotes; that will generate warnings when re-used as + input, and isn't necessary. + * Executing the rhs of && and || will no longer cause the shell to fork if + it's not necessary. + * The `local' builtin takes a new argument: `-', which will cause it to save + and the single-letter shell options and restore their previous values at + function return. + * `complete' and `compgen' have a new `-o nosort' option, which forces + readline to not sort the completion matches. + * Bash now allows waiting for the most recent process substitution, since it + appears as $!. + * The `unset' builtin now unsets a scalar variable if it is subscripted with + a `0', analogous to the ${var[0]} expansion. + * `set -i' is no longer valid, as in other shells. + * BASH_SUBSHELL is now updated for process substitution and group commands + in pipelines, and is available with the same value when running any exit + trap. + * Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or + not bash is being run in a GNU Emacs shell window. + * Bash now treats SIGINT received when running a non-builtin command in a + loop the way it has traditionally treated running a builtin command: + running any trap handler and breaking out of the loop. + * New variable: EXECIGNORE; a colon-separate list of patterns that will + cause matching filenames to be ignored when searching for commands. + * Aliases whose value ends in a shell metacharacter now expand in a way to + allow them to be `pasted' to the next token, which can potentially change + the meaning of a command (e.g., turning `&' into `&&'). + * `make install' now installs the example loadable builtins and a set of + bash headers to use when developing new loadable builtins. + * `enable -f' now attempts to call functions named BUILTIN_builtin_load when + loading BUILTIN, and BUILTIN_builtin_unload when deleting it. This allows + loadable builtins to run initialization and cleanup code. + * There is a new BASH_LOADABLES_PATH variable containing a list of directories + where the `enable -f' command looks for shared objects containing loadable + builtins. + * The `complete_fullquote' option to `shopt' changes filename completion to + quote all shell metacharacters in filenames and directory names. + * The `kill' builtin now has a `-L' option, equivalent to `-l', for + compatibility with Linux standalone versions of kill. + * BASH_COMPAT and FUNCNEST can be inherited and set from the shell's initial + environment. + * inherit_errexit: a new `shopt' option that, when set, causes command + substitutions to inherit the -e option. By default, those subshells disable + -e. It's enabled as part of turning on posix mode. + * New prompt string: PS0. Expanded and displayed by interactive shells after + reading a complete command but before executing it. + * Interactive shells now behave as if SIGTSTP/SIGTTIN/SIGTTOU are set to SIG_DFL + when the shell is started, so they are set to SIG_DFL in child processes. + * Posix-mode shells now allow double quotes to quote the history expansion + character. + * OLDPWD can be inherited from the environment if it names a directory. + * Shells running as root no longer inherit PS4 from the environment, closing a + security hole involving PS4 expansion performing command substitution. + * If executing an implicit `cd' when the `autocd' option is set, bash will now + invoke a function named `cd' if one exists before executing the `cd' builtin. +- Update to readline library 7.0 release candidate 1 + * The history truncation code now uses the same error recovery mechansim as + the history writing code, and restores the old version of the history file + on error. The error recovery mechanism handles symlinked history files. + * There is a new bindable variable, `enable-bracketed-paste', which enables + support for a terminal's bracketed paste mode. + * The editing mode indicators can now be strings and are user-settable + (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string' + variables). Mode strings can contain invisible character sequences. + Setting mode strings to null strings restores the defaults. + * Prompt expansion adds the mode string to the last line of a multi-line + prompt (one with embedded newlines). + * There is a new bindable variable, `colored-completion-prefix', which, if + set, causes the common prefix of a set of possible completions to be + displayed in color. + * There is a new bindable command `vi-yank-pop', a vi-mode version of emacs- + mode yank-pop. + * The redisplay code underwent several efficiency improvements for multibyte + locales. + * The insert-char function attempts to batch-insert all pending typeahead + that maps to self-insert, as long as it is coming from the terminal. + * rl_callback_sigcleanup: a new application function that can clean up and + unset any state set by readline's callback mode. Intended to be used + after a signal. + * If an incremental search string has its last character removed with DEL, the + resulting empty search string no longer matches the previous line. + * If readline reads a history file that begins with `#' (or the value of + the history comment character) and has enabled history timestamps, the history + entries are assumed to be delimited by timestamps. This allows multi-line + history entries. + * Readline now throws an error if it parses a key binding without a terminating + `:' or whitespace. +- Remove patches which are upstream solved + bash-3.2-longjmp.dif + bash-4.3-headers.dif + readline-6.1-wrap.patch +- Rename patches + bash-4.3.dif become bash-4.4.dif + readline-6.3.dif become readline-7.0.dif +- Refresh other patches as well + +------------------------------------------------------------------- +Mon Oct 19 13:38:58 UTC 2015 - werner@suse.de + +- Define the USE_MKTEMP and USE_MKSTEMP cpp macros as the + implementation is already there. +- Add patch bash-4.3-pathtemp.patch to allow root to clear the + file systems. Otherwise the completion does not work if /tmp + if full (ENOSPC for here documents) + +------------------------------------------------------------------- +Fri Oct 16 13:02:27 UTC 2015 - werner@suse.de + +- Remove --hash-size options as there is no any change in the final + binary nor library anymore + +------------------------------------------------------------------- +Mon Aug 31 11:23:11 UTC 2015 - werner@suse.de + +- Add upstream patch bash43-039 + Using the output of `declare -p' when run in a function can result in variables + that are invisible to `declare -p'. This problem occurs when an assignment + builtin such as `declare' receives a quoted compound array assignment as one of + its arguments. +- Add upstream patch bash43-040 + There is a memory leak that occurs when bash expands an array reference on + the rhs of an assignment statement. +- Add upstream patch bash43-041 + There are several out-of-bounds read errors that occur when completing command + lines where assignment statements appear before the command name. The first + two appear only when programmable completion is enabled; the last one only + happens when listing possible completions. +- Add upstream patch bash43-042 + There is a problem when parsing command substitutions containing `case' + commands within pipelines that causes the parser to not correctly identify + the end of the command substitution. + +------------------------------------------------------------------- +Wed Jul 1 08:31:09 UTC 2015 - coolo@suse.com + +- add bash-4.3-perl522.patch to fix texi2html for perl 5.22 + (defined(@array) has been deprecated since at least 2012) + +------------------------------------------------------------------- +Thu May 28 08:50:30 UTC 2015 - werner@suse.de + +- Add upstream patch bash43-034 + If neither the -f nor -v options is supplied to unset, and a name argument is + found to be a function and unset, subsequent name arguments are not treated as + variables before attempting to unset a function by that name. +- Add upstream patch bash43-035 + A locale with a long name can trigger a buffer overflow and core dump. This + applies on systems that do not have locale_charset in libc, are not using + GNU libiconv, and are not using the libintl that ships with bash in lib/intl. +- Add upstream patch bash43-036 + When evaluating and setting integer variables, and the assignment fails to + create a variable (for example, when performing an operation on an array + variable with an invalid subscript), bash attempts to dereference a null + pointer, causing a segmentation violation. +- Add upstream patch bash43-037 + If an associative array uses `@' or `*' as a subscript, `declare -p' produces + output that cannot be reused as input. +- Add upstream patch bash43-038 + There are a number of instances where `time' is not recognized as a reserved + word when the shell grammar says it should be. + +------------------------------------------------------------------- +Mon May 18 06:10:49 UTC 2015 - meissner@suse.com + +- move info deletion to %preun sections + +------------------------------------------------------------------- +Wed Mar 4 22:52:17 CET 2015 - jdelvare@suse.de + +- bash-4.3-loadables.dif: One more warning fixed, in + examples/loadables/logname.c. +- bash-4.3-loadables.dif: Reverted one warning fix, which was + introducing another warning and possibly a bug. + +------------------------------------------------------------------- +Wed Mar 4 11:30:12 CET 2015 - jdelvare@suse.de + +- bash-4.3-loadables.dif: Split changes to shell.h to a separate + patch "bash-4.3-include-unistd.dif", as the loadables build just + fine without these changes. +- bash-4.3-loadables.dif: Drop all header file inclusion fixups, + upstream fixed the problem differently 5 years ago. + +------------------------------------------------------------------- +Wed Feb 18 15:14:47 UTC 2015 - werner@suse.de + +- Do not restart all signal handlers for bash 4.3 as this breaks + trap handler in subshells waotiug for a process + +------------------------------------------------------------------- +Fri Jan 16 16:53:44 UTC 2015 - werner@suse.de + +- Remove -DMUST_UNBLOCK_CHLD(=1) as this breaks waitchild(2) on linux + +------------------------------------------------------------------- +Fri Jan 9 13:11:03 UTC 2015 - werner@suse.de + +- Add upstream patch bash43-031 + The new nameref assignment functionality introduced in bash-4.3 did not perform + enough validation on the variable value and would create variables with + invalid names. +- Add upstream patch bash43-032 + When bash is running in Posix mode, it allows signals -- including SIGCHLD -- + to interrupt the `wait' builtin, as Posix requires. However, the interrupt + causes bash to not run a SIGCHLD trap for all exited children. This patch + fixes the issue and restores the documented behavior in Posix mode. +- Add upstream patch bash43-033 + Bash does not clean up the terminal state in all cases where bash or + readline modifies it and bash is subsequently terminated by a fatal signal. + This happens when the `read' builtin modifies the terminal settings, both + when readline is active and when it is not. It occurs most often when a script + installs a trap that exits on a signal without re-sending the signal to itself. + +------------------------------------------------------------------- +Wed Dec 3 15:05:14 CET 2014 - jdelvare@suse.de + +- Fix the sed command that fixes up the patch headers. It was + printing a duplicate header line, which suprisingly did not + confuse patch, but could in the future. +- Fix all patches that had the duplicate header line issue. + +------------------------------------------------------------------- +Tue Nov 4 12:27:30 UTC 2014 - werner@suse.de + +- Use tail command to follow run-tests instead of a simpe cat command + +------------------------------------------------------------------- +Fri Oct 24 12:53:04 UTC 2014 - werner@suse.de + +- Really remove obsolete patches + +------------------------------------------------------------------- +Fri Oct 24 04:16:32 UTC 2014 - brian@aljex.com + +- Skip autoconf on OS 10.2 or older + +------------------------------------------------------------------- +Wed Oct 22 13:44:23 UTC 2014 - werner@suse.de + +- Avoid fdupes on SLES-10 + +------------------------------------------------------------------- +Wed Oct 22 12:53:11 UTC 2014 - werner@suse.de + +- Bump bash version to 4.3 + +------------------------------------------------------------------- +Tue Oct 21 21:18:20 UTC 2014 - brian@aljex.com + +- Allow building on targets from SL 10.1 to current since it's free + +------------------------------------------------------------------- +Mon Oct 6 08:38:54 UTC 2014 - werner@suse.de + +- Add upstream patches + bash43-030 which fixes CVE-2014-6278 + bash43-029 which fixes CVE-2014-6277 + bash43-028 which fixes CVE-2014-7186/CVE-2014-7187 + +------------------------------------------------------------------- +Tue Sep 30 11:45:52 UTC 2014 - werner@suse.de + +- Add patch bash-4.2-extra-import-func.patch which is based on the + BSD patch of Christos. As further enhancements the option + import-functions is mentioned in the manual page and a shopt + switch is added to enable and disable import-functions on the fly +- Rename bash-4.2-extra-import-func.patch to bash-4.3-extra-import-func.patch + +------------------------------------------------------------------- +Mon Sep 29 12:19:29 UTC 2014 - werner@suse.de + +- Add upstream patches + bash43-027 which fixed bsc#898604 + bash43-026 which fixes CVE-2014-7169 and bsc#898346 + bash43-025 which replaces bash-4.3-CVE-2014-6271.patch and + fixes bnc#896776 +- Remove patch bash-4.3-CVE-2014-6271.patch due patch bash43-027 +- Add patch bash-4.2-CVE-2014-7187.patch for bsc#898603, CVE-2014-7186, + CVE-2014-7187: bad handling of HERE documents and for loop issue + +------------------------------------------------------------------- +Fri Sep 26 08:07:16 UTC 2014 - werner@suse.de + +- Use a version linker script for libreadline 6.3 as there are new + symbols in this 6.3 version like the rl_executing_keyseq and those + are used by the new bash 4.3 + +------------------------------------------------------------------- +Thu Sep 18 12:10:17 UTC 2014 - werner@suse.de + +- Add bash-4.3-CVE-2014-6271.patch + to fix CVE-2014-6271, the unexpected code execution with + environment variables (bnc#896776) + +------------------------------------------------------------------- +Tue Aug 19 13:49:46 UTC 2014 - werner@suse.de + +- Update to bash 4.3 with patch level 24 + * The -t timeout option to `read' does not work when the -e option is used + * When PS2 contains a command substitution, here-documents entered in an + interactive shell can sometimes cause a segmentation fault. + * When the readline `revert-all-at-newline' option is set, pressing newline + when the current line is one retrieved from history results in a double free + and a segmentation fault. + * Using nested pipelines within loops with the `lastpipe' option set can result + in a segmentation fault. + * Bash does not correctly parse process substitution constructs that contain + unbalanced parentheses as part of the contained command. + * Indirect variable references do not work correctly if the reference + variable expands to an array reference using a subscript other than 0 + +------------------------------------------------------------------- +Sun Jun 29 13:24:47 UTC 2014 - schwab@linux-m68k.org + +- Don't use outdated C standard + +------------------------------------------------------------------- +Tue May 20 16:35:55 UTC 2014 - werner@suse.de + +- Update to bash 4.3 with patch level 18 + *When a SIGCHLD trap runs a command containing a shell builtin while + a script is running `wait' to wait for all running children to complete, + the SIGCHLD trap will not be run once for each child that terminates. + * Using reverse-i-search when horizontal scrolling is enabled doe + not redisplay the entire line containing the successful search results. + * Under certain circumstances, $@ is expanded incorrectly in contexts where + word splitting is not performed. + * When completing directory names, the directory name is dequoted twice. + This causes problems for directories with single and double quotes in + their names. + * An extended glob pattern containing a slash (`/') causes the globbing code + to misinterpret it as a directory separator. + * The code that creates local variables should not clear the `invisible' + attribute when returning an existing local variable. Let the code that + actually assigns a value clear it. + * When assigning an array variable using the compound assignment syntax, + but using `declare' with the rhs of the compound assignment quoted, the + shell did not mark the variable as visible after successfully performing + the assignment. +- Update to readline library 6.3 with patch level 6 + * Using reverse-i-search when horizontal scrolling is enabled does + not redisplay the entire line containing the successful search results. +- Remove readline-horizontal-redisplay.patch as now upstream +- Rename readline-6.2.dif to readline-6.3.dif and bash-4.2.dif to bash-4.3.dif + +------------------------------------------------------------------- +Wed Apr 30 11:51:24 UTC 2014 - werner@suse.de + +- Add readline-horizontal-redisplay.patch from upstream as a temporary + fix for failing incremental search in horizontal-scroll-mode + +------------------------------------------------------------------- +Thu Apr 17 12:56:56 UTC 2014 - werner@suse.de + +- Make patch command work on older products + +------------------------------------------------------------------- +Thu Apr 17 11:09:35 UTC 2014 - werner@suse.de + +- Update to bash 4.3 with patch level 11 + * The `helptopic' completion action now maps to all the help topics, not just + the shell builtins. + * The `help' builtin no longer does prefix substring matching first, so + `help read' does not match `readonly', but will do it if exact string + matching fails. + * The shell can be compiled to not display a message about processes that + terminate due to SIGTERM. + * Non-interactive shells now react to the setting of checkwinsize and set + LINES and COLUMNS after a foreground job exits. + * There is a new shell option, `globasciiranges', which, when set to on, + forces globbing range comparisons to use character ordering as if they + were run in the C locale. + * There is a new shell option, `direxpand', which makes filename completion + expand variables in directory names in the way bash-4.1 did. + * In Posix mode, the `command' builtin does not change whether or not a + builtin it shadows is treated as an assignment builtin. + * The `return' and `exit' builtins accept negative exit status arguments. + * The word completion code checks whether or not a filename containing a + shell variable expands to a directory name and appends `/' to the word + as appropriate. The same code expands shell variables in command names + when performing command completion. + * In Posix mode, it is now an error to attempt to define a shell function + with the same name as a Posix special builtin. + * When compiled for strict Posix conformance, history expansion is disabled + by default. + * The history expansion character (!) does not cause history expansion when + followed by the closing quote in a double-quoted string. + * `complete' and its siblings compgen/compopt now takes a new `-o noquote' + option to inhibit quoting of the completions. + * Setting HISTSIZE to a value less than zero causes the history list to be + unlimited (setting it 0 zero disables the history list). + * Setting HISTFILESIZE to a value less than zero causes the history file size + to be unlimited (setting it to 0 causes the history file to be truncated + to zero size). + * The `read' builtin now skips NUL bytes in the input. + * There is a new `bind -X' option to print all key sequences bound to Unix + commands. + * When in Posix mode, `read' is interruptible by a trapped signal. After + running the trap handler, read returns 128+signal and throws away any + partially-read input. + * The command completion code skips whitespace and assignment statements + before looking for the command name word to be completed. + * The build process has a new mechanism for constructing separate help files + that better reflects the current set of compilation options. + * The -nt and -ot options to test now work with files with nanosecond + timestamp resolution. + * The shell saves the command history in any shell for which history is + enabled and HISTFILE is set, not just interactive shells. + * The shell has `nameref' variables and new -n(/+n) options to declare and + unset to use them, and a `test -R' option to test for them. + * The shell now allows assigning, referencing, and unsetting elements of + indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which + count back from the last element of the array. + * The {x}) + +------------------------------------------------------------------- +Mon Jul 8 11:27:51 UTC 2013 - werner@suse.de + +- Add bash-4.2-strcpy.patch from upstream mailing list to patch + collection tar ball to avoid when using \w in the prompt and + changing the directory outside of HOME the a strcpy work on + overlapping memory areas. + +------------------------------------------------------------------- +Tue Jun 4 18:36:43 UTC 2013 - coolo@suse.com + +- add a conflict between readline5 and readline6-32bit + +------------------------------------------------------------------- +Tue May 28 15:17:36 UTC 2013 - werner@suse.de + +- Do not restart the sighandler after a trap is reset (bnc#820149) + +------------------------------------------------------------------- +Thu Mar 21 11:51:54 UTC 2013 - werner@suse.de + +- Add patch from upstream mailing list to speed up array handling +- Add patch from upstream mailing list to avoid fdleaks +- Use lsdiff to determine the depth of the leading slashes in a + patch file + +------------------------------------------------------------------- +Fri Mar 15 15:35:51 UTC 2013 - werner@suse.de + +- Disable workaround for bnc#382214 due bnc#806628, let's see when + the old bug will be up again. +- Update bash 4.2 to patch level 45 + * When SIGCHLD is trapped, and a SIGCHLD trap handler runs when + a pending `read -t' invocation times out and generates SIGALRM, + bash can crash with a segmentation fault. + * When converting a multibyte string to a wide character string + as part of pattern matching, bash does not handle the end of + the string correctly, causing the search for the NUL to go + beyond the end of the string and reference random memory. + Depending on the contents of that memory, bash can produce + errors or crash. + * The <&n- and >&n- redirections, which move one file descriptor + to another, leave the file descriptor closed when applied to + builtins or compound commands. +- Use screen to provide a controlling terminal for running the + test suite + +------------------------------------------------------------------- +Tue Feb 12 07:58:08 UTC 2013 - schwab@suse.de + +- config-guess-sub-update.patch: + Update config.guess/sub for aarch64 +- Fix check for negated warning switch + +------------------------------------------------------------------- +Wed Jan 9 08:55:09 UTC 2013 - werner@suse.de + +- Avoid autoconf on older products +- Apply audit patch variant to readline as well as we use a shared + libreadline +- Avoid bash-devel on older products as older GNU make do not have + a realpath builtin + +------------------------------------------------------------------- +Tue Jan 8 17:43:01 UTC 2013 - werner@suse.de + +- Do not trigger the export of COLUMNS or LINES due enforced + checkwinsize (bnc#793536) + +------------------------------------------------------------------- +Tue Jan 8 14:57:17 UTC 2013 - werner@suse.de + +- Update bash 4.2 to patch level 42 + * Missing I/O errors if output redirection applied to builtin + commands when the file descriptor was closed + * Process substitution incorrectly inherited a flag that + inhibited using the temporary environment for variable lookups + if it was providing the filename to a redirection. + * Compilation failed after specifying the `minimal config' option + +------------------------------------------------------------------- +Mon Nov 5 12:41:57 UTC 2012 - werner@suse.de + +- Update bash 4.2 to patch level 39 + * Official fix for the last crash fix + * Avoid variable expansion in arithmetic expressions when + evaluation is being suppressed + +------------------------------------------------------------------- +Wed Oct 17 13:10:22 UTC 2012 - werner@suse.de + +- Do not mix xmalloc/xfree of libreadline and bash by making the + libreadline version weak symbols instead of private symbols + +------------------------------------------------------------------- +Fri Aug 24 14:31:35 UTC 2012 - werner@suse.de + +- Add patch from upstream mailing list to avoids crash + +------------------------------------------------------------------- +Fri Jul 20 10:16:20 UTC 2012 - werner@suse.de + +- Update bash 4.2 to patch level 37 + * Attempting to redo (using `.') the vi editing mode `cc', `dd', + or `yy' commands leads to an infinite loop. + +------------------------------------------------------------------- +Thu Jul 19 12:04:50 UTC 2012 - werner@suse.de + +- Do not mask internal _rl symbols as internal as there are many + tools out there which uses them (gdb as an example) + +------------------------------------------------------------------- +Wed Jul 18 11:17:00 UTC 2012 - werner@suse.de + +- libreadlib: try to avoid to bind references of the symbols + rl_instream and rl_outstream +- libreadlib: make private symbols really private + +------------------------------------------------------------------- +Wed Jul 18 09:20:55 UTC 2012 - werner@suse.de + +- Increase buffer for libreadline messsages if required +- Include stdio.h in libreadline header files to get the declaration + of FILES correct. + +------------------------------------------------------------------- +Mon Jul 9 10:54:51 UTC 2012 - werner@suse.de + +- Update bash 4.2 to patch level 36 + * Patch 25: When used in a shell function, + `declare -g -a array=(compound assignment)' creates a local + variable instead of a global one. + * Patch 26: The `lastpipe' option does not behave correctly on + machines where the open file limit is less than 256. + * Patch 27: When the `extglob' shell option is enabled, pattern + substitution does not work correctly in the presence of + multibyte characters. + * Patch 28: When using a word expansion for which the right hand + side is evaluated, certain expansions of quoted null strings + include spurious ^? characters. + * Patch 29: Bash-4.2 tries to leave completed directory names as + the user typed them, without expanding them to a full pathname. + One effect of this is that shell variables used in pathnames + being completed (e.g., $HOME) are left unchanged, but the `$' + is quoted by readline because it is a special character to the shell. + * Patch 30: When attempting to glob strings in a multibyte locale, + and those strings contain invalid multibyte characters that cause + mbsnrtowcs to return 0, the globbing code loops infinitely. + * Patch 31: A change between bash-4.1 and bash-4.2 to prevent the + readline input hook from being called too frequently had the side + effect of causing delays when reading pasted input on systems such + as Mac OS X. This patch fixes those delays while retaining the + bash-4.2 behavior. + * Patch 32: Bash-4.2 has problems with DEL characters in the + expanded value of variables used in the same quoted string as + variables that expand to nothing. + * Patch 33: Bash uses a static buffer when expanding the /dev/fd + prefix for the test and conditional commands, among other uses, + when it should use a dynamic buffer to avoid buffer overflow. + * Patch 34: In bash-4.2, the history code would inappropriately add + a semicolon to multi-line compound array assignments when adding + them to the history. + * Patch 35: When given a number of lines to read, `mapfile -n lines' + reads one too many. + * Patch 36: Bash-4.2 produces incorrect word splitting results when + expanding double-quoted $@ in the same string as and adjacent to + other variable expansions. The $@ should be split, the other + expansions should not. +- Add patch to avoid double free or corruption due expanding number + sequence with huge numbers. Patch will go upstream (bnc#763591) + +------------------------------------------------------------------- +Tue Jun 26 12:49:53 UTC 2012 - cfarrell@suse.com + +- license update: GPL-3.0+ + Upstream declares the bash license to be GPL-3.0+ - not GPL-2.0+ + +------------------------------------------------------------------- +Mon Jun 11 11:51:12 UTC 2012 - werner@suse.de + +- Enable auditing patch by simply applying it + +------------------------------------------------------------------- +Wed May 23 23:37:53 UTC 2012 - meissner@suse.com + +- added auditing patch from + http://git.savannah.gnu.org/cgit/bash.git/plain/CWRU/audit-patch + +------------------------------------------------------------------- +Thu Apr 5 11:48:02 UTC 2012 - werner@suse.de + +- Remove not required patch (was a fix for bnc#141394) which now + cause a wrong behaviour if applied (bnc#755453) + +------------------------------------------------------------------- +Tue Mar 13 09:34:58 UTC 2012 - werner@suse.de + +- Update bash 4.2 to patch level 24 + +------------------------------------------------------------------- +Fri Mar 9 17:44:52 UTC 2012 - werner@suse.de + +- Avoid endless loop in user completion caused by endpw patches + +------------------------------------------------------------------- +Tue Mar 6 12:15:18 UTC 2012 - werner@suse.de + +- Add small patch for be able to use nanoseconds in comparision + of time stamps of files (bnc#750640) + +------------------------------------------------------------------- +Tue Mar 6 09:33:30 UTC 2012 - werner@suse.de + +- Reenable patch for bnc#725657 with latest change from latest + git repository of the patch. + +------------------------------------------------------------------- +Tue Dec 20 20:01:48 UTC 2011 - coolo@suse.com + +- add autoconf as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Mon Dec 19 14:34:41 UTC 2011 - coolo@suse.de + +- remove suse_update_config calls - obsolete + +------------------------------------------------------------------- +Fri Nov 25 17:08:30 UTC 2011 - werner@suse.de + +- Make build check quiet + +------------------------------------------------------------------- +Fri Nov 25 16:32:14 UTC 2011 - werner@suse.de + +- Update bash 4.2 to patch level 20 +- Update readline 6.2 to patch level 2 + +------------------------------------------------------------------- +Mon Nov 21 15:35:05 UTC 2011 - werner@suse.de + +- Disable endpwent() in rl_username_completion_function() as this + cause a deadlock in a futex of the glibc (bnc#731556) + +------------------------------------------------------------------- +Fri Nov 18 12:03:56 UTC 2011 - werner@suse.de + +- Enforce bind references to global function symbols to the + definition within libreadline + +------------------------------------------------------------------- +Wed Nov 16 11:11:21 UTC 2011 - werner@suse.de + +- Use libtinfo if available otherwise libncurses, this avoids + linkage against libncursesw of libreadline (required due + bnc #729226) + +------------------------------------------------------------------- +Fri Nov 11 15:27:12 UTC 2011 - werner@suse.de + +- Avoid memory mapped /var/run/nscd/passwd at shutdown by simply + unmapping this only used area if parent is systemd or SysVinit + +------------------------------------------------------------------- +Fri Nov 11 13:45:40 UTC 2011 - werner@suse.de + +- Always close get(pw|gr)func with endpw() respectivly with endgr() + to avoid memory mapped passwd/groups of cache files from nscd + +------------------------------------------------------------------- +Wed Nov 2 08:23:24 UTC 2011 - werner@suse.de + +- Disable last patch as it seems a bit broken (bnc#725657) + +------------------------------------------------------------------- +Tue Oct 25 17:11:23 UTC 2011 - werner@suse.de + +- Add direxpand patch from upstream (bnc#725657) + +------------------------------------------------------------------- +Fri Oct 7 15:01:42 UTC 2011 - werner@suse.de + +- Add patch from upstream mailing list to avoid memory leak by + reassigning associative array variable + +------------------------------------------------------------------- +Mon Sep 19 14:59:39 UTC 2011 - coolo@suse.com + +- remove autoreqprov and author lists + +------------------------------------------------------------------- +Tue Jun 21 18:58:56 CEST 2011 - werner@suse.de + +- Add fix from upstream mailing list to avoid crash + +------------------------------------------------------------------- +Fri Jun 17 11:43:00 UTC 2011 - coolo@novell.com + +- use original source URLs + +------------------------------------------------------------------- +Thu Jun 16 15:03:04 CEST 2011 - werner@suse.de + +- Fix the fix for bug bnc#681286 to be able to avoid both a not + expanding glob as well as the infinit loop in multi byte locale + +------------------------------------------------------------------- +Thu May 12 12:04:28 CEST 2011 - werner@suse.de + +- Update bash 4.2 to patch level 10 +- Add patch from upstream to avoid loosing quoted-nulls +- Add modified patch to avod endless loop in UTF-8 locale + +------------------------------------------------------------------- +Tue Mar 22 13:16:43 CET 2011 - werner@suse.de + +- Remove patch to avod endless loop in UTF-8 locale as it breaks + glob expanding (bnc#681286) + +------------------------------------------------------------------- +Tue Mar 15 18:28:58 CET 2011 - werner@suse.de + +- Update bash 4.2 to patch level 8 +- Add Ctr-C patch from upstream +- Add fix for endless loop in UTF-8 locale + +------------------------------------------------------------------- +Wed Mar 9 12:00:48 CET 2011 - werner@suse.de + +- Avoid siglongjmp, compare with + http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00070.html + use temprary solution from Chet + +------------------------------------------------------------------- +Tue Mar 8 18:47:59 CET 2011 - werner@suse.de + +- Much better solution for saving history for system with sigsetjmp + +------------------------------------------------------------------- +Tue Mar 8 12:51:29 CET 2011 - werner@suse.de + +- Reintroduce history saving at SIGHUP + +------------------------------------------------------------------- +Tue Mar 7 15:25:33 CET 2011 - werner@suse.de + +- Update bash 4.2 to patch level 7 + +------------------------------------------------------------------- +Thu Feb 17 10:08:53 UTC 2011 - coolo@novell.com + +- having a bash man page is recommended (bnc#672528) + +------------------------------------------------------------------- +Mon Feb 14 16:50:00 CET 2011 - werner@suse.de + +- Update to bash 4.2 -- changelog see entry for bash 4.2 rc1 + +------------------------------------------------------------------- +Mon Jan 17 16:19:59 CET 2011 - werner@suse.de + +- Update to bash 4.2 rc1 + * `exec -a foo' now sets $0 to `foo' in an executable shell script + without a leading #!. + * Subshells begun to execute command substitutions or run shell functions or + builtins in subshells do not reset trap strings until a new trap is + specified. This allows $(trap) to display the caller's traps and the + trap strings to persist until a new trap is set. + * `trap -p' will now show signals ignored at shell startup, though their + disposition still cannot be modified. + * $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences. + * declare/typeset has a new `-g' option, which creates variables in the + global scope even when run in a shell function. + * test/[/[[ have a new -v variable unary operator, which returns success if + `variable' has been set. + * Posix parsing changes to allow `! time command' and multiple consecutive + instances of `!' (which toggle) and `time' (which have no cumulative + effect). + * Posix change to allow `time' as a command by itself to print the elapsed + user, system, and real times for the shell and its children. + * $((...)) is always parsed as an arithmetic expansion first, instead of as + a potential nested command substitution, as Posix requires. + * A new FUNCNEST variable to allow the user to control the maximum shell + function nesting (recursive execution) level. + * The mapfile builtin now supplies a third argument to the callback command: + the line about to be assigned to the supplied array index. + * The printf builtin has a new %(fmt)T specifier, which allows time values + to use strftime-like formatting. + * There is a new `compat41' shell option. + * The cd builtin has a new Posix-mandated `-e' option. + * Negative subscripts to indexed arrays, previously errors, now are treated + as offsets from the maximum assigned index + 1. + * Negative length specifications in the ${var:offset:length} expansion, + previously errors, are now treated as offsets from the end of the variable. + * Parsing change to allow `time -p --'. + * Posix-mode parsing change to not recognize `time' as a keyword if the + following token begins with a `-'. This means no more Posix-mode + `time -p'. Posix interpretation 267. + * There is a new `lastpipe' shell option that runs the last command of a + pipeline in the current shell context. The lastpipe option has no + effect if job control is enabled. + * History expansion no longer expands the `$!' variable expansion. + * Posix mode shells no longer exit if a variable assignment error occurs + with an assignment preceding a command that is not a special builtin. + * History expansion no longer expands the `$!' variable expansion. + * Posix mode shells no longer exit if a variable assignment error occurs + with an assignment preceding a command that is not a special builtin. + * Non-interactive mode shells exit if -u is enabled and an attempt is made + to use an unset variable with the % or # expansions, the `//', `^', or + `,' expansions, or the parameter length expansion. + * Posix-mode shells use the argument passed to `.' as-is if a $PATH search + fails, effectively searching the current directory. Posix-2008 change. +- Update to readline 6.2 rc1 + * The history library does not try to write the history filename in the + current directory if $HOME is unset. This closes a potential security + problem if the application does not specify a history filename. + * New bindable variable `completion-display-width' to set the number of + columns used when displaying completions. + * New bindable variable `completion-case-map' to cause case-insensitive + completion to treat `-' and `_' as identical. + * There are new bindable vi-mode command names to avoid readline's case- + insensitive matching not allowing them to be bound separately. + * New bindable variable `menu-complete-display-prefix' causes the menu + completion code to display the common prefix of the possible completions + before cycling through the list, instead of after. + +------------------------------------------------------------------- +Mon Oct 18 11:09:31 CEST 2010 - jslaby@suse.de + +- fix czech message + +------------------------------------------------------------------- +Thu Oct 14 14:34:15 CEST 2010 - werner@suse.de + +- Update bash 4.1 to patch level 9 + * When declaring an associative array and implicitly assigning a + value to element "0", bash does not correctly allocate memory, + leading to a segmentation violation when that element or the + array itself is unset. + * An arriving SIGCHLD will interrupt `slow' system calls such as + write(2) to or read(2) from a terminal. This results in an + error message and truncated input or output. + +------------------------------------------------------------------- +Fri Sep 3 20:55:30 UTC 2010 - cristian.rodriguez@opensuse.org + +- builtin "man2html"generates html manual with a timestamp + that causes the package to be published over and over again. + +------------------------------------------------------------------- +Mon Aug 16 15:50:43 CEST 2010 - werner@suse.de + +- A modified version of the pipe patch which should handle + the PIPESTATUS array + +------------------------------------------------------------------- +Fri Aug 13 14:19:02 CEST 2010 - werner@suse.de + +- Disable the pipe patch from Thu Jun 24 10:40:09 CEST 2010 + as this resets the PIPESTATUS array to the status of the + forground process only + +------------------------------------------------------------------- +Thu Jul 29 17:06:51 CEST 2010 - werner@suse.de + +- Add fix from mailing list to avoid crash + +------------------------------------------------------------------- +Mon Jul 19 09:54:50 CEST 2010 - werner@suse.de + +- Comment out recommendation of bash-completion, as I'd like + no to see the bugs of bash-completion in my bugzilla + +------------------------------------------------------------------- +Sat Jul 17 01:27:17 UTC 2010 - cristian.rodriguez@opensuse.org + +- Do not package static libraries +- Fix Recommends/Suggests + +------------------------------------------------------------------- +Thu Jun 24 11:34:48 CEST 2010 - werner@suse.de + +- Add fix from upstream: restore the parser state over changing + readline editing mode otherwise e.g. set alias before the + change are lost. + +------------------------------------------------------------------- +Thu Jun 24 10:40:09 CEST 2010 - werner@suse.de + +- Avoid running the last member of a pipe command sequence to run + in its own subshell, this makes know lines like the simple + echo 1 2 | read a b; echo $a $b + work as expected by the users + +------------------------------------------------------------------- +Tue May 25 12:35:03 CEST 2010 - werner@suse.de + +- Update bash 4.1 to patch level 7 + * Bash did not correctly print/reproduce here documents attached + to commands inside compound commands such as for and while. + * A typo caused bash to not honor a precision specification in a + printf format. + +------------------------------------------------------------------- +Mon Apr 12 11:36:30 CEST 2010 - werner@suse.de + +- Add fix for memory double free in array handling + +------------------------------------------------------------------- +Tue Apr 6 15:27:24 CEST 2010 - werner@suse.de + +- Update bash 4.1 to patch level 5 (related to bnc#522351) + * If command completion is attempted on a word with a quoted globbing + character (e.g., `*' or `?'), bash can reference a NULL pointer and + dump core. + * When running in Posix mode and executing a shell function without local + variables, bash will not propagate a variable in a special builtin's temporary + environment to have global scope. + * When the `read' builtin times out after the timeout specified with -t is + exceeded, it does not reset the flags that tell signal handlers to process + signals immediately instead of deferring their handling. This can result + in unsafe functions being called from signal handlers, which can cause bash + to hang or dump core. + +------------------------------------------------------------------- +Tue Mar 9 15:34:05 CET 2010 - werner@suse.de + +- Add patch from bash-bug list to avoid crahs on some strange + TAB completions + +------------------------------------------------------------------- +Tue Mar 2 00:45:53 CET 2010 - ro@suse.de + +- fix warning no return statement in function returning non-void + to fix build (in bashline.c) + +------------------------------------------------------------------- +Wed Feb 24 09:55:03 CET 2010 - werner@suse.de + +- Avoid hang due malloc()/free() within signal handler (bnc#522351) + +------------------------------------------------------------------- +Thu Feb 18 11:05:13 CET 2010 - werner@suse.de + +- Add patch to reflect the usage of /etc/bash.bashrc (bnc#577221) + +------------------------------------------------------------------- +Mon Feb 15 17:24:46 CET 2010 - werner@suse.de + +- Update bash 4.1 to patch level 2 + * Here-documents within $(...) command substitutions may once more be + delimited by the closing right paren, instead of requiring a newline. + * Bash's file status checks (executable, readable, etc.) now take file + system ACLs into account on file systems that support them. + * Bash now passes environment variables with names that are not valid + shell variable names through into the environment passed to child + processes. + * The `execute-unix-command' readline function now attempts to clear and + reuse the current line rather than move to a new one after the command + executes. + * `printf -v' can now assign values to array indices. + * New `complete -E' and `compopt -E' options that work on the "empty" + completion: completion attempted on an empty command line. + * New complete/compgen/compopt -D option to define a `default' completion: + a completion to be invoked on command for which no completion has been + defined. If this function returns 124, programmable completion is + attempted again, allowing a user to dynamically build a set of completions + as completion is attempted by having the default completion function + install individual completion functions each time it is invoked. + * When displaying associative arrays, subscripts are now quoted. + * Changes to dabbrev-expand to make it more `emacs-like': no space appended + after matches, completions are not sorted, and most recent history entries + are presented first. + * The [[ and (( commands are now subject to the setting of `set -e' and the + ERR trap. + * The source/. builtin now removes NUL bytes from the file before attempting + to parse commands. + * There is a new configuration option (in config-top.h) that forces bash to + forward all history entries to syslog. + * A new variable $BASHOPTS to export shell options settable using `shopt' to + child processes. + * There is a new configure option that forces the extglob option to be + enabled by default. + * New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace + output to that file descriptor. + * If the optional left-hand-side of a redirection is of the form {var}, the + shell assigns the file descriptor used to $var or uses $var as the file + descriptor to move or close, depending on the redirection operator. + * The < and > operators to the [[ conditional command now do string + comparison according to the current locale if the compatibility level + is greater than 40. + * Programmable completion now uses the completion for `b' instead of `a' + when completion is attempted on a line like: a $(b c. + * Force extglob on temporarily when parsing the pattern argument to + the == and != operators to the [[ command, for compatibility. + * Changed the behavior of interrupting the wait builtin when a SIGCHLD is + received and a trap on SIGCHLD is set to be Posix-mode only. + * The read builtin has a new `-N nchars' option, which reads exactly NCHARS + characters, ignoring delimiters like newline. + * The mapfile/readarray builtin no longer stores the commands it invokes via + callbacks in the history list. + * There is a new `compat40' shopt option. +- Update readline 6.1 to patch level 1 + * New bindable function: menu-complete-backward. + * In the vi insertion keymap, C-n is now bound to menu-complete by default, + and C-p to menu-complete-backward. + * When in vi command mode, repeatedly hitting ESC now does nothing, even + when ESC introduces a bound key sequence. This is closer to how + historical vi behaves. + * New bindable function: skip-csi-sequence. Can be used as a default to + consume key sequences generated by keys like Home and End without having + to bind all keys. + * New application-settable function: rl_filename_rewrite_hook. Can be used + to rewrite or modify filenames read from the file system before they are + compared to the word to be completed. + * New bindable variable: skip-completed-text, active when completing in the + middle of a word. If enabled, it means that characters in the completion + that match characters in the remainder of the word are "skipped" rather + than inserted into the line. + * The pre-readline-6.0 version of menu completion is available as + "old-menu-complete" for users who do not like the readline-6.0 version. + * New bindable variable: echo-control-characters. If enabled, and the + tty ECHOCTL bit is set, controls the echoing of characters corresponding + to keyboard-generated signals. + * New bindable variable: enable-meta-key. Controls whether or not readline + sends the smm/rmm sequences if the terminal indicates it has a meta key + that enables eight-bit characters. + +------------------------------------------------------------------- +Wed Dec 16 10:48:09 CET 2009 - jengelh@medozas.de + +- package documentation as noarch + +------------------------------------------------------------------- +Sat Dec 12 18:12:02 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source + +------------------------------------------------------------------- +Fri Dec 4 10:40:02 CET 2009 - werner@suse.de + +- Fix bug in bash-4.0-security.patch (bnc#559877) + +------------------------------------------------------------------- +Thu Oct 29 15:23:20 CET 2009 - werner@suse.de + +- Update to newest patch level 35 + * bash incorrectly interprets wildcarded path components between + a **/ and the last / + * bash incorrectly treated single and double quotes as + delimiters rather than introducing quoted strings when + splitting the line into words for programmable completion + functions + +------------------------------------------------------------------- +Wed Sep 30 13:24:57 CEST 2009 - werner@suse.de + +- Make _rl_enable_meta configurable by the users (bnc#541379) + +------------------------------------------------------------------- +Wed Sep 9 17:41:15 CEST 2009 - werner@suse.de + +- Do not change tty owner group twice by child and parent (bnc#523667) + +------------------------------------------------------------------- +Wed Sep 9 17:32:20 CEST 2009 - werner@suse.de + +- Update to newest patch level 33 + * Includes one of our own patches + +------------------------------------------------------------------- +Wed Aug 26 13:01:19 CEST 2009 - coolo@novell.com + +- rediff patches to avoid fuzz + +------------------------------------------------------------------- +Tue Jul 28 13:19:20 CEST 2009 - werner@suse.de + +- Update to newest patch level 28 + +------------------------------------------------------------------- +Thu Jul 2 14:45:19 CEST 2009 - werner@suse.de + +- Add fix from bash maintainer for closing memory leak in read + builtin (bnc#510288) + +------------------------------------------------------------------- +Tue Jun 9 18:16:25 CEST 2009 - werner@suse.de + +- Branch off some sub packages: + * bash-lang to include localization + * bash-loadables for installing the loadable runtime builtins + * bash-devel to install headers for developing loadable builtins + +------------------------------------------------------------------- +Wed Jun 3 12:16:43 CEST 2009 - werner@suse.de + +- Enforce the usage of euidaccess(3) instead of stat(2) for testing + permissions for a file (bnc#509105) + +------------------------------------------------------------------- +Mon May 25 14:09:03 CEST 2009 - werner@suse.de + +- Update to newest patch level 24: + * include last few patches +- Add patches from mailing list for globstar expansion + +------------------------------------------------------------------- +Mon May 11 10:18:06 CEST 2009 - werne@suse.de + +- Increase size of hash table for runtime linker a lot + +------------------------------------------------------------------- +Mon Apr 27 12:18:44 CEST 2009 - werne@suse.de + +- Add patches from mailing list: + * fix problem with invisible characters in prompt + * make dir*/** work + +------------------------------------------------------------------- +Tue Apr 21 12:53:39 CEST 2009 - werne@suse.de + +- Do not crash on forbidden subdirectories with globstar extension + +------------------------------------------------------------------- +Wed Apr 15 11:27:56 CEST 2009 - werne@suse.de + +- Add fix to be able to clear to eol in readline library + +------------------------------------------------------------------- +Tue Apr 14 12:10:31 CEST 2009 - werne@suse.de + +- Add fix for timing issue in readline SIGWINCH handling + +------------------------------------------------------------------- +Wed Apr 8 14:14:10 CEST 2009 - werne@suse.de + +- Add patches from bug-bash@gnu.org to avoid eg. segmentation fault + +------------------------------------------------------------------- +Mon Mar 16 11:38:14 CET 2009 - werner@suse.de + +- Add patches from bug-bash@gnu.org to avoid eg. segmentation fault + +------------------------------------------------------------------- +Thu Mar 12 15:05:55 CET 2009 - werner@suse.de + +- Add patch from bug-bash@gnu.org to enable |& not only for + builtins and shell functions but for all commands. + +------------------------------------------------------------------- +Tue Mar 10 14:50:55 CET 2009 - werner@suse.de + +- Switch to official patches, now we are on patch level 10 + +------------------------------------------------------------------- +Wed Mar 4 17:36:35 CET 2009 - werner@suse.de + +- Use patches from bug-bash@gnu.org to make it work + +------------------------------------------------------------------- +Wed Mar 4 15:05:40 CET 2009 - werner@suse.de + +- Patch for bnc#481817 does not work in any case + +------------------------------------------------------------------- +Wed Mar 4 13:10:02 CET 2009 - werner@suse.de + +- My last patch for bnc#470548 send to bug-bash@gnu.org was not + fully applied and this had caused a memory corruption on tab + completion. +- Enable the parser to find closing parenthesis at the end of + an argument of a command even if backslash is used (bnc#481817) +- Correct link of shared libraries of devel readline package + +------------------------------------------------------------------- +Fri Feb 27 17:39:08 CET 2009 - werner@suse.de + +- Update bash 4.0 to patch level 0 +- Update readline 6.0 to patch level 0 + +------------------------------------------------------------------- +Wed Feb 18 16:42:47 CET 2009 - werner@suse.de + +- Add readline patch 13 + +------------------------------------------------------------------- +Fri Jan 30 17:03:36 CET 2009 - werner@suse.de + +- Restore state if shell function for completion is interrupted (bnc#470548) + +------------------------------------------------------------------- +Tue Jan 13 12:34:56 CET 2009 - olh@suse.de + +- obsolete old -XXbit packages (bnc#437293) + +------------------------------------------------------------------- +Fri Dec 19 15:59:27 CET 2008 - werner@suse.de + +- Enable large file support (bnc#460560) + +------------------------------------------------------------------- +Tue Dec 9 19:13:46 CET 2008 - schwab@suse.de + +- Add bash patches 40-48. + +------------------------------------------------------------------- +Tue Nov 25 14:41:50 CET 2008 - werner@suse.de + +- Parse the return value of setlocale(LC_ALL) (bnc#447846) + +------------------------------------------------------------------- +Thu Oct 16 12:07:20 CEST 2008 - werner@suse.de + +- Let's avoid not needed library dependencies (bnc#439051) + +------------------------------------------------------------------- +Mon Sep 1 11:59:26 CEST 2008 - prusnak@suse.cz + +- bash should suggest command-not-found, not scout + +------------------------------------------------------------------- +Thu Jul 24 16:41:41 CEST 2008 - werner@suse.de + +- Add command-not-found.patch for scout support (fate#303730) + +------------------------------------------------------------------- +Tue Jun 17 11:05:07 CEST 2008 - werner@suse.de + +- Avoid underline the full paragraph in the man page (bnc#400767) + +------------------------------------------------------------------- +Sat May 17 19:24:50 CEST 2008 - coolo@suse.de + +- fix rename of xxbit packages + +------------------------------------------------------------------- +Tue May 6 18:29:10 CEST 2008 - schwab@suse.de + +- Add bash patches 34-39. + +------------------------------------------------------------------- +Mon Apr 28 03:42:11 CEST 2008 - matz@suse.de + +- Fix last patch. + +------------------------------------------------------------------- +Thu Apr 24 15:59:20 CEST 2008 - werner@suse.de + +- Add workaround for bnc#382214 + +------------------------------------------------------------------- +Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de + +- added baselibs.conf file to build xxbit packages + for multilib support + +------------------------------------------------------------------- +Wed Apr 2 11:49:20 CEST 2008 - werner@suse.de + +- Allow to (re)send signals within trap handlers (bnc#345441) +- Clear exit status if not sourcing system profile (bnc#372061) + +------------------------------------------------------------------- +Thu Feb 28 11:49:28 CET 2008 - dmueller@suse.de + +- remove invalid filerequires, the libreadline5 dependency is enough + +------------------------------------------------------------------- +Mon Jan 28 16:12:25 CET 2008 - schwab@suse.de + +- Add bash patches 26-33. + +------------------------------------------------------------------- +Tue Jan 8 19:23:12 CET 2008 - werner@suse.de + +- Restart the signal handler for SIGCHLD if not already done + within the signal handler its self (may help for bug #345441) + +------------------------------------------------------------------- +Mon Jan 7 20:43:39 CET 2008 - schwab@suse.de + +- Fix memory leak in read builtin. + +------------------------------------------------------------------- +Fri Dec 7 10:16:43 CET 2007 - werner@suse.de + +- Add skel files .bashrc, bash_history, and .profile from aaa_skel + +------------------------------------------------------------------- +Tue Dec 4 16:44:05 CET 2007 - werner@suse.de + +- Extend fix for off-by-one error in libreadline (bug #274120) +- Enable ssh detection in the bash (bug #345570) + +------------------------------------------------------------------- +Thu Sep 20 15:10:06 CEST 2007 - werner@suse.de + +- Remove error triggering path requirement (bug #326751) + +------------------------------------------------------------------- +Mon Aug 27 01:30:00 CEST 2007 - schwab@suse.de + +- Add bash patches 18-25. + +------------------------------------------------------------------- +Sat Aug 11 14:25:14 CEST 2007 - schwab@suse.de + +- Add bash patches 10-17. + +------------------------------------------------------------------- +Sat Aug 4 01:48:42 CEST 2007 - dmueller@suse.de + +- fix devel requires + +------------------------------------------------------------------- +Fri Aug 3 18:15:46 CEST 2007 - schwab@suse.de + +- Fix dependencies. + +------------------------------------------------------------------- +Tue Jul 31 17:32:55 CEST 2007 - werner@suse.de + +- Branch off bash-doc and readline-doc (bug #260209) +- Rename readline to libreadline5 (bug #260209) + +------------------------------------------------------------------- +Thu Apr 19 13:33:30 CEST 2007 - schwab@suse.de + +- Fix bug in readline redisplay. + +------------------------------------------------------------------- +Thu Mar 29 13:25:57 CEST 2007 - dmueller@suse.de + +- add ncurses-devel requires to readline-devel + +------------------------------------------------------------------- +Mon Mar 26 15:43:53 CEST 2007 - rguenther@suse.de + +- Add bison and ncurses-devel BuildRequires. + +------------------------------------------------------------------- +Tue Mar 6 23:27:48 CET 2007 - rguenther@suse.de + +- Fix order of changelog entries. Remove duplicate entry. + +------------------------------------------------------------------- +Wed Feb 28 13:25:29 CET 2007 - werner@suse.de + +- Don't access buffer but resulting pointer for array element names + to avoid the not initialized area of the buffer. This also fixes + an inherent wrong calculation of the string length of the array + element names (bug #248717) + +------------------------------------------------------------------- +Thu Dec 14 13:10:30 CET 2006 - werner@suse.de + +- Update to bash 3.2 patch level 9 + +------------------------------------------------------------------- +Wed Dec 6 21:10:45 CET 2006 - schwab@suse.de + +- Remove obsolete patches. + +------------------------------------------------------------------- +Fri Nov 17 15:05:12 CET 2006 - werner@suse.de + +- Remove /usr/bin/bash (#206000) + +------------------------------------------------------------------- +Tue Nov 14 11:50:32 CET 2006 - werner@suse.de + +- Update to bash 3.2 patch level 5 + +------------------------------------------------------------------- +Wed Sep 27 18:08:11 CEST 2006 - werner@suse.de + +- Use PIE to make a shared bash binary +- Make the bash modules build for testing + +------------------------------------------------------------------- +Fri Sep 22 17:25:15 CEST 2006 - werner@suse.de + +- Remove rpath option for libraries use linker defaults instead + +------------------------------------------------------------------- +Fri Sep 22 15:01:46 CEST 2006 - werner@suse.de + +- Add symbolic link for POSIX bourne shell to /usr/bin/ (#206000) + +------------------------------------------------------------------- +Thu Sep 14 18:14:50 CEST 2006 - werner@suse.de + +- Add environment variable DEFAULT_BELL_STYLE to control the + bell style of the readline library without using intputrc. + +------------------------------------------------------------------- +Mon Aug 7 12:45:55 CEST 2006 - werner@suse.de + +- Let readline-devel requires libncurses.so (bug #188673) + +------------------------------------------------------------------- +Thu Jul 27 17:13:16 CEST 2006 - werner@suse.de + +- Let printf builtin handle stdout errors correctly (bug #190349) + +------------------------------------------------------------------- +Wed May 31 19:11:15 CEST 2006 - werner@suse.de + +- Fix crash in IFS multi byte handling (bug #180317) + +------------------------------------------------------------------- +Tue May 23 14:16:14 CEST 2006 - werner@suse.de + +- Make the test suite run even on ppc emulated on ppc64 + +------------------------------------------------------------------- +Mon May 15 17:16:37 CEST 2006 - werner@suse.de + +- Update bash 3.1 to patch level 17 + * Allow array subscripts to be sourounded by double quotes +- Run test suite with nearly all scripts + +------------------------------------------------------------------- +Mon Apr 3 12:40:23 CEST 2006 - werner@suse.de + +- Update bash 3.1 to patch level 16 + * Bash will dump core when attempting to perform globbing in + directories with very large numbers of files + * Solve problem with the extended globbing code prevented dots + from matching filenames when used in some matching patterns + +------------------------------------------------------------------- +Mon Mar 27 15:08:18 CEST 2006 - werner@suse.de + +- Use access(2) with temporary switched euid/ruid and egid/rgid + instead of stat(2) to determine the access permissions of a + file, this works even on RO mounted NFS file systems (#160513) + +------------------------------------------------------------------- +Wed Mar 22 16:09:24 CET 2006 - werner@suse.de + +- Be sure that ~/.inputrc is read even if INPUTRC is set to + system wide /etc/inputrc (bug #160003) +- Make prefix-meta work even with new readline syntax but + disable it by default (since bug #suse21096) + +------------------------------------------------------------------- +Mon Mar 20 15:43:02 CET 2006 - werner@suse.de + +- Update to bash 3.1 to patch level 14 and readline 5.1 to level 4 + * Do not terminate words prematurely if parentheses are involved + * Readline sometimes reference freed memory + * Fix double displayed prompt when using non-incremental searches + +------------------------------------------------------------------- +Sun Mar 12 17:16:32 CET 2006 - schwab@suse.de + +- Update bash31-010 patch, better fix for #151000. + +------------------------------------------------------------------- +Thu Mar 2 11:25:10 CET 2006 - werner@suse.de + +- Update bash 3.1 to patch level 11 and readline 5.1 to level 2 + * Includes fix for line-wrapping errors + * Replacement for bug fix of bug #146075 with better + reallocation and compaction of the job array list. + * Do not let SIGINT from terminal reach background processes + * Do not let asynchronous background jobs set the terminal + process group incorrectly. + * Replacement for bug fix of bug #151000 + * Do not strip quoting inside double-quoted command substitutions + +------------------------------------------------------------------- +Wed Mar 1 17:02:20 CET 2006 - werner@suse.de + +- Re-enable escaping newline within quotes in commands (#151000) + +------------------------------------------------------------------- +Mon Jan 30 13:28:36 CET 2006 - werner@suse.de + +- Do initialize the fresh members of the job array (bug #146075) + +------------------------------------------------------------------- +Mon Jan 30 12:00:27 CET 2006 - schwab@suse.de + +- Barf if /proc is missing. + +------------------------------------------------------------------- +Wed Jan 25 21:29:58 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Tue Jan 10 12:05:33 CET 2006 - werner@suse.de + +- Update to newest patch level 5: + + corrects several omissions in the bash documentation + + local array variable declared at function scope shadowing + a global variable should create a separate instance + + When tilde expansion fails, do not skip rest of an expansion +- Expand dollar quotes even for the single quote case (bug #141394) + +------------------------------------------------------------------- +Thu Dec 22 18:01:11 CET 2005 - werner@suse.de + +- Switch to first patchlevel for the bash and the readline library. + This should fix problems happen with local/eval/let builtins. + +------------------------------------------------------------------- +Mon Dec 19 13:36:46 CET 2005 - werner@suse.de + +- Remove dangling sym links + +------------------------------------------------------------------- +Tue Dec 13 15:19:43 CET 2005 - schwab@suse.de + +- Fix segfault in readline callback interface. + +------------------------------------------------------------------- +Mon Dec 12 16:03:34 CET 2005 - schwab@suse.de + +- Fix return of random data. +- Set CFLAGS_FOR_BUILD. + +------------------------------------------------------------------- +Fri Dec 9 18:15:44 CET 2005 - werner@suse.de + +- Update to bash version 3.1 and readline library version 5.1 + +------------------------------------------------------------------- +Thu Sep 29 17:41:12 CEST 2005 - werner@suse.de + +- More cookie for the compiler + +------------------------------------------------------------------- +Mon Sep 19 15:16:12 CEST 2005 - werner@suse.de + +- Give the compiler its cookie + +------------------------------------------------------------------- +Tue Apr 19 17:22:17 CEST 2005 - postadal@suse.cz + +- fixed crashing on read -e command and line wrapping (in readline code) + (bug #76709) + +------------------------------------------------------------------- +Fri Jan 28 13:34:10 CET 2005 - werner@suse.de + +- Add workaround for NFS bug which does not check permissions + on open of a file but close (bug #20244) + +------------------------------------------------------------------- +Thu Nov 25 15:29:10 CET 2004 - werner@suse.de + +- Remove local array patch because not needed anymore +- Fix a crash on internal arrays if unset during execution of + functions and files (bug #48511) + +------------------------------------------------------------------- +Sun Nov 21 03:37:08 CET 2004 - schwab@suse.de + +- Add patches from and + . + +------------------------------------------------------------------- +Fri Nov 19 16:31:21 CET 2004 - werner@suse.de + +- Fix the evalexp fix (bug #48253) + +------------------------------------------------------------------- +Mon Oct 25 17:31:46 CEST 2004 - werner@suse.de + +- Be sure that the FN macro nroff macro is available in all + sub manual pages (bug #47560) + +------------------------------------------------------------------- +Tue Oct 12 15:33:11 CEST 2004 - werner@suse.de + +- Re-activate first part of prompt fix because it does not harm + (bug #36919) + +------------------------------------------------------------------- +Tue Oct 12 12:35:47 CEST 2004 - ro@suse.de + +- no macros in Version lines + +------------------------------------------------------------------- +Mon Oct 11 15:56:32 CEST 2004 - werner@suse.de + +- Disable prompt patch for now because not needed and other + problmes caused by this fix (bug #36919) +- Clear out last_made_pid on success (bug #42232) + +------------------------------------------------------------------- +Thu Sep 30 14:33:55 CEST 2004 - werner@suse.de + +- Clear out prompt line of isearch for invisible chars (bug #36919) + +------------------------------------------------------------------- +Wed Sep 29 18:23:21 CEST 2004 - werner@suse.de + +- Fix prompt problem with invisible characters (bug #36919) + +------------------------------------------------------------------- +Fri Sep 17 16:10:23 CEST 2004 - werner@suse.de + +- Fix line wraping for newlines in prompt (bug #45519) + +------------------------------------------------------------------- +Thu Sep 16 00:05:25 CEST 2004 - schwab@suse.de + +- Fix missing return value. + +------------------------------------------------------------------- +Sat Sep 11 16:30:03 CEST 2004 - kukuk@suse.de + +- Disable use of WCONTINUED as long as bash does not check if + it is supported. + +------------------------------------------------------------------- +Mon Sep 6 18:07:54 CEST 2004 - werner@suse.de + +- Fix prefix strip for last added patch + +------------------------------------------------------------------- +Fri Sep 3 13:03:21 CEST 2004 - werner@suse.de + +- Add warning about broken glibc locale before we get the SIGSEGV + (bug #44658) + +------------------------------------------------------------------- +Sun Aug 1 11:18:30 CEST 2004 - schwab@suse.de + +- Fix rl_maybe_save_line. +- Track LC_TIME. + +------------------------------------------------------------------- +Fri Jul 30 17:52:53 CEST 2004 - werner@suse.de + +- Put version to bash 3.0 and readline 5.0 + +------------------------------------------------------------------- +Mon Jun 7 13:00:15 CEST 2004 - werner@suse.de + +- Add missed declaration of oldval for previous bugfix + +------------------------------------------------------------------- +Fri Jun 4 19:53:47 CEST 2004 - werner@suse.de + +- Fix local array variable handling (bug #41649) + +------------------------------------------------------------------- +Wed Jun 2 14:54:21 CEST 2004 - werner@suse.de + +- Fix evaluation none local return stack curruption (bug #41488) + +------------------------------------------------------------------- +Wed Apr 7 17:55:59 CEST 2004 - werner@suse.de + +- In case of quotes position counter has to be advanced (#38599) + +------------------------------------------------------------------- +Thu Apr 1 12:06:33 CEST 2004 - werner@suse.de + +- Add directoy check to distinguish none unique and unique + executables (bug #37329) + +------------------------------------------------------------------- +Mon Mar 29 14:22:25 CEST 2004 - werner@suse.de + +- Make the directory patch working as it should (bug #37329) + +------------------------------------------------------------------- +Thu Mar 25 17:48:09 CET 2004 - werner@suse.de + +- Move forward to official bug fixes to catch UTF-8 bug #31451 + and bug #36919 + +------------------------------------------------------------------- +Thu Feb 12 11:29:19 CET 2004 - werner@suse.de + +- Fix cut&paste error of fix for bug #34427 + +------------------------------------------------------------------- +Wed Feb 11 18:08:24 CET 2004 - werner@suse.de + +- Fix SIGSEGV in using UTF-8 and pattern matching (bug #34427) +- Fix LC_NUMERIC handling of builtin printf (bug #34428) + +------------------------------------------------------------------- +Mon Feb 2 12:42:14 CET 2004 - werner@suse.de + +- Fix the fix and also bug #34242 + +------------------------------------------------------------------- +Thu Jan 29 16:21:23 CET 2004 - werner@suse.de + +- Fix performance problem for pattern matching in UTF-8 locale + (port back patch from Mitsuru Chinen ) + +------------------------------------------------------------------- +Tue Jan 13 08:41:39 CET 2004 - kukuk@suse.de + +- Fix last changes + +------------------------------------------------------------------- +Sat Jan 10 17:23:23 CET 2004 - adrian@suse.de + +- add %run_ldconfig + +------------------------------------------------------------------- +Mon Jul 28 18:24:44 CEST 2003 - werner@suse.de + +- Add /etc/bash_completion.d directory + +------------------------------------------------------------------- +Thu Jun 26 09:54:53 CEST 2003 - kukuk@suse.de + +- Fix specfile for lib64 + +------------------------------------------------------------------- +Wed Jun 4 18:17:51 CEST 2003 - jh@suse.de + +- Enable profile feedback + +------------------------------------------------------------------- +Fri May 23 13:43:27 CEST 2003 - ro@suse.de + +- remove unpackaged files + +------------------------------------------------------------------- +Thu May 22 17:51:07 CEST 2003 - mfabian@suse.de + +- improvement for bash-2.05b-locale.patch and + bash-2.05b-readline-init.patch: this fixes the problem that + the line editor in bash is not correctly initialized in the first + bash after login via ssh or on the linux console. This is + especially obvious in UTF-8 locales when editing non-ASCII + characters on the command line. See also: + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=74701 + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=74925 + The following bug remains fixed: + http://bugzilla.suse.de/show_bug.cgi?id=16999 +- bash-2.05b-complete.patch: (by Miloslav Trmac ) + achieve correct alignment of file names containing non-ASCII + characters when typing "ls " and pressing Tab twice to show + the completions. See also: + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=90201 + +------------------------------------------------------------------- +Mon Mar 17 19:20:44 CET 2003 - werner@suse.de + +- Do not execute command line if tty is closed (bug #25445) + +------------------------------------------------------------------- +Thu Feb 13 11:38:41 CET 2003 - schwab@suse.de + +- Fix prompt decoding with -noediting. + +------------------------------------------------------------------- +Tue Feb 11 13:34:12 CET 2003 - kukuk@suse.de + +- To avoid loop in PreRequires, don't install info pages. The info + package contains a dir file which contains the bash entries + already. + +------------------------------------------------------------------- +Fri Feb 7 14:20:18 CET 2003 - ro@suse.de + +- fixed specfile + +------------------------------------------------------------------- +Fri Feb 7 01:14:57 CET 2003 - ro@suse.de + +- added install_info macros + +------------------------------------------------------------------- +Mon Jan 27 21:38:30 CET 2003 - schwab@suse.de + +- Fix bugs #21096 and #21392 properly: don't recurse on + do-lowercase-version for fallback entry. + +------------------------------------------------------------------- +Tue Jan 21 17:04:24 CET 2003 - werner@suse.de + +- Allow rbash as login shell (`-' problem, bug #22917) + +------------------------------------------------------------------- +Wed Dec 18 11:13:20 CET 2002 - schwab@suse.de + +- Use BuildRoot. + +------------------------------------------------------------------- +Thu Dec 12 15:16:51 CET 2002 - mfabian@suse.de + +- add bash-2.05b-display-mbspeed.patch received from + Jiro SEKIBA to improve display speed in + multibyte locales. + +------------------------------------------------------------------- +Sat Nov 9 16:22:15 CET 2002 - ro@suse.de + +- add bison to neededforbuild for now + (till we're sure about bison again) + +------------------------------------------------------------------- +Thu Oct 31 12:05:34 CET 2002 - werner@suse.de + +- For bug #21096 and #21392: implement an oom protection. + +------------------------------------------------------------------- +Mon Oct 21 14:58:42 CEST 2002 - werner@suse.de + +- More for bug#21096: Make prefix-meta work even if mapped onto + longer escape sequences. + +------------------------------------------------------------------- +Fri Oct 18 19:55:54 CEST 2002 - werner@suse.de + +- Fix bug#21096: sequences like `ESC ... CHARACTER' with CHARACTER + mapped on functions will not cause an endless recursion anymore. + +------------------------------------------------------------------- +Wed Sep 25 18:31:19 CEST 2002 - ro@suse.de + +- removed more bogus provides + +------------------------------------------------------------------- +Wed Sep 11 12:16:44 CEST 2002 - werner@suse.de + +- Correct Provides (package should not provides its self) + +------------------------------------------------------------------- +Fri Aug 30 16:15:57 CEST 2002 - werner@suse.de + +- Add version dependend require on readline (bug #18652) + +------------------------------------------------------------------- +Fri Aug 30 15:02:29 CEST 2002 - werner@suse.de + +- Fix annoying display bug in wide character support (bug #18449) + +------------------------------------------------------------------- +Wed Aug 28 15:06:48 CEST 2002 - werner@suse.de + +- Add comment about multi byte handling and echo builtin (#18449) + +------------------------------------------------------------------- +Wed Aug 21 12:49:45 MEST 2002 - mls@suse.de + +- fix $RANDOM randomness in subshells + +------------------------------------------------------------------- +Fri Aug 9 10:36:33 CEST 2002 - kukuk@suse.de + +- readline-devel should require readline + +------------------------------------------------------------------- +Mon Jul 29 15:39:39 CEST 2002 - werner@suse.de + +- Expansion of `~user/' is like `/' + +------------------------------------------------------------------- +Sat Jul 27 22:19:33 CEST 2002 - kukuk@suse.de + +- Remove not used tetex from neededforbuild +- Fix building of man2html (bash.html still broken) + +------------------------------------------------------------------- +Fri Jul 19 17:03:47 CEST 2002 - werner@suse.de + +- Check value of LANG before LC_ALL will be unset for getting the + _current_ default value of LC_ALL with setlocale(3) (bug #16999) + +------------------------------------------------------------------- +Fri Jul 19 16:09:12 CEST 2002 - werner@suse.de + +- Fix NULL pointer handled by memset (readline:mbutil.c) + +------------------------------------------------------------------- +Thu Jul 18 17:04:27 CEST 2002 - werner@suse.de + +- Update to new version bash 2.05b/readline 4.3 + +------------------------------------------------------------------- +Wed May 22 09:16:14 CEST 2002 - schwab@suse.de + +- Fix vi-change-char. +- Fix missing declaration. + +------------------------------------------------------------------- +Wed Apr 17 16:33:01 CEST 2002 - schwab@suse.de + +- Fix last change. + +------------------------------------------------------------------- +Thu Apr 11 11:55:02 CEST 2002 - sf@suse.de + +- using %{_libdir} to put the shlibs into the correct directories + (lib / lib64) + +------------------------------------------------------------------- +Tue Mar 26 15:27:45 CET 2002 - werner@suse.de + +- Fix possible endless loop if terminal will be disconneted during + complete answer (bug report from bastian@kde.org, for more see + http://bugs.kde.org/db/37/37999.html) + +------------------------------------------------------------------- +Wed Mar 20 00:47:48 CET 2002 - ro@suse.de + +- removed tetex from neededforbuild, it's not used here + +------------------------------------------------------------------- +Wed Mar 6 13:36:58 CET 2002 - werner@suse.de + +- Use improved bug fix for line wrapping problem, now line wrapping + work for char and wide char environments +- Fix readline version number + +------------------------------------------------------------------- +Wed Feb 27 14:30:37 CET 2002 - mfabian@suse.de + +- add readline-4.2-i18n-0.3-display.patch from + Jiro SEKIBA to fix a line wrapping + problem. + +------------------------------------------------------------------- +Mon Jan 21 13:49:50 CET 2002 - werner@suse.de + +- Fix bug #12834: Update to bash-2.05-i18n-0.5.patch.gz and + bash-2.05-readline-i18n-0.3.patch.gz + +------------------------------------------------------------------- +Thu Oct 18 14:49:18 CEST 2001 - werner@suse.de + +- Allways include /etc/inputrc if INPUTRC isn't system file + +------------------------------------------------------------------- +Mon Oct 8 14:26:26 CEST 2001 - werner@suse.de + +- Fix readline i18n patch: enable configure of multi byte handling, + fix warnings and bug in histexpand.c + +------------------------------------------------------------------- +Fri Oct 5 13:15:29 CEST 2001 - werner@suse.de + +- Add two patches for I18N support of bash and readline library + +------------------------------------------------------------------- +Tue Sep 4 11:36:33 CEST 2001 - werner@suse.de + +- Add patch to avoid trouble with C++ header definitions + +------------------------------------------------------------------- +Fri Aug 3 14:34:19 CEST 2001 - werner@suse.de + +- Fix fc crash (bug #9620) + +------------------------------------------------------------------- +Mon Jul 2 12:12:26 CEST 2001 - olh@suse.de + +- dont apply bash-2.05-s390x-unwind.patch on ppc and sparc + +------------------------------------------------------------------- +Thu Jun 14 01:30:56 CEST 2001 - bk@suse.de + +- fix 64-bit bigendian bug for s390x + +------------------------------------------------------------------- +Wed Jun 6 13:36:46 CEST 2001 - werner@suse.de + +- Re-order configure.in to avoid trouble with new autoconf + +------------------------------------------------------------------- +Tue May 8 20:03:27 CEST 2001 - mfabian@suse.de + +- bzip2 sources + +------------------------------------------------------------------- +Sat May 5 20:09:56 CEST 2001 - schwab@suse.de + +- Fix process substitution when stdin is closed. + +------------------------------------------------------------------- +Wed May 2 19:28:19 CEST 2001 - werner@suse.de + +- Make patch for 2.4.4 work within spec + +------------------------------------------------------------------- +Wed May 2 18:23:12 CEST 2001 - werner@suse.de + +- Remove buggy patch in job control, add a workaround + +------------------------------------------------------------------- +Mon Apr 30 13:03:32 CEST 2001 - werner@suse.de + +- Add patch to get job control into right order on a pipe + +------------------------------------------------------------------- +Thu Apr 12 13:09:25 CEST 2001 - werner@suse.de + +- Provide cpp macro OLD_READLINE for backwards compatibility + at compile time with old readline interface + +------------------------------------------------------------------- +Thu Apr 12 00:45:22 CEST 2001 - ro@suse.de + +- added split-alias as provides (again) + +------------------------------------------------------------------- +Wed Apr 11 20:05:33 CEST 2001 - werner@suse.de + +- Update to bash 2.05 and readline 4.2 +- Port of our patches + +------------------------------------------------------------------- +Thu Feb 22 16:47:10 CET 2001 - werner@suse.de + +- Split package into bash/readline/readline-devel +- Depend libreadline on libncurses + +------------------------------------------------------------------- +Thu Sep 14 19:36:33 CEST 2000 - werner@suse.de + +- Add some bug fixes +- Add missed ssh fix for none interactive shell + +------------------------------------------------------------------- +Wed Jun 7 16:14:10 CEST 2000 - werner@suse.de + +- Fix some patches +- Add export patch for bash 2.04 +- Fix `soname' of readline and history libraries +- Fix linkage of major readline and history libraries + +------------------------------------------------------------------- +Mon Jun 5 17:21:42 CEST 2000 - schwab@suse.de + +- Fix unwind_protect_pointer on 64-bit systems. + +------------------------------------------------------------------- +Wed May 31 20:27:10 CEST 2000 - schwab@suse.de + +- Comment out declaration of savestring in that conflicts + with other people's declaration (eg. gdb). + +------------------------------------------------------------------- +Mon May 29 16:36:08 CEST 2000 - aj@suse.de + +- Upgrade to bash 2.04 and readline 4.1. + +------------------------------------------------------------------- +Sun May 21 13:27:08 CEST 2000 - kukuk@suse.de + +- Use docdir + +------------------------------------------------------------------- +Sat Apr 1 20:47:46 GMT 2000 - bk@suse.de + +- remove obviosly unneeded link /usr/lib/libreadline.so on s390 + +------------------------------------------------------------------- +Tue Mar 14 15:38:40 CET 2000 - werner@suse.de + +- Add locale patch to enable LC_NUMERIC handling + +------------------------------------------------------------------- +Thu Feb 24 15:59:44 CET 2000 - werner@suse.de + +- Use $VENDOR for several linux architectures +- Set check_window_size (shopt checkwinsize) to true, this will + correct screen size even if it changes during a job. + +------------------------------------------------------------------- +Tue Feb 15 14:02:34 CET 2000 - schwab@suse.de + +- Update config.{guess,sub} to latest version. +- Fix spec file to create doc directory before installing into it. + +------------------------------------------------------------------- +Fri Jan 28 23:43:17 CET 2000 - werner@suse.de + +- Add mailstat patch (handles mail directories) +- Fix configuration (system is %arch-suse-linux) +- Fix segfault (job handling) +- Fix manual (add rbash manual, add some missed options) +- Install rbash (symlink to bash) +- Fix readline (End, Del) +- Fix temporary file handling (do not write without check) +- Use system random interface not builtin +- Remove some compiler warnings +- Set --enable-disabled-builtins (useful) +- Install shared readline and history in /lib (bash needs that) +- Enable shared readline (version 4.0) and history library +- Try to use shared readline and history for bash (TEST) + +------------------------------------------------------------------- +Fri Dec 3 17:29:40 CET 1999 - kasal@suse.de + +- added command to make and install doc/bashref.html + +------------------------------------------------------------------- +Fri Nov 26 20:52:19 MET 1999 - kukuk@suse.de + +- Fix spec file + +------------------------------------------------------------------- +Thu Nov 25 16:28:05 MET 1999 - kukuk@suse.de + +- Merge Makefile.Linux with spec file, use RPM_OPT_FLAGS +- Remove --disable-dparen-arithmetic + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Tue Aug 24 12:34:43 MEST 1999 - uli@suse.de + +- fixed for PPC + +------------------------------------------------------------------- +Mon Jul 19 09:27:00 MEST 1999 - florian@suse.de + +- update to bash 2.03, readline 4.0 + +------------------------------------------------------------------- +Wed Jan 13 15:42:09 MET 1999 - @suse.de + +- disabled `Broken pipe' messages + +------------------------------------------------------------------- +Sun Dec 13 22:34:55 MET 1998 - bs@suse.de + +- removed notify message - bash 2.0 is standard for a long time now. + +------------------------------------------------------------------- +Mon Dec 7 15:51:52 MET 1998 - florian@suse.de + +- remove SSH_CLIENT-kludge as this cannot detect all correct cases + where .bashrc should be loaded +- delete email-changes in bashbug script +- update readline to version 2.2.1 + +------------------------------------------------------------------- +Thu Nov 12 13:50:00 MET 1998 - bs@suse.de + +- minor fix for new rpm + +------------------------------------------------------------------- +Thu Oct 1 10:30:05 MEST 1998 - ro@suse.de + +- update to 2.02.1 / reintegrated werner's tmp-fix for bashbug + +------------------------------------------------------------------- +Thu Jul 23 14:03:44 MET DST 1998 - werner@suse.de + +- use mktemp + +------------------------------------------------------------------- +Thu Jul 16 20:39:05 MEST 1998 - werner@suse.de + +- fix bashbug temp file handling + +------------------------------------------------------------------- +Wed Jun 17 17:21:39 MEST 1998 - ro@suse.de + +- changed general.h: !defined (gid_t) + +------------------------------------------------------------------- +Mon Oct 27 12:55:07 MET 1997 - florian@suse.de + +- do not include old compatible-only safestring() in libreadline.a + + +------------------------------------------------------------------- +Thu Oct 9 19:08:47 MEST 1997 - florian@suse.de + + +- update to version 2.01.1 + +- add several bugfixes + +- fix missing things in spec-file + + +------------------------------------------------------------------- +Thu Aug 14 15:53:29 MEST 1997 - florian@suse.de + + +- add several bug-fixes from gnu.bash.bug and fix memory management + of LC_ALL + + +------------------------------------------------------------------- +Sat Jul 5 10:08:27 MEST 1997 - florian@suse.de + + +- add another bugfix from gnu.utils.bugs + + +------------------------------------------------------------------- +Mon Jun 23 23:04:57 MEST 1997 - florian@suse.de + + +- create the history file with 0600 perms + +- add minor bugfix to check for new email + + +------------------------------------------------------------------- +Thu Jun 5 11:08:05 MEST 1997 - florian@suse.de + + +- bash: check for NULL-pointer before calling "savestring()" + +- add bashref.info and newer FAQ + + + +------------------------------------------------------------------- +Tue Apr 22 15:16:57 CEST 1997 - bs@suse.de + +- added FAQ and bashref.html to /usr/doc/packages/bash + + +------------------------------------------------------------------- +Sun Apr 13 23:04:29 MEST 1997 - florian@suse.de + + +- update to bash 2.0 with lots of patches from gnu.utils.bugs + + +Mon Sep 2 02:48:35 MET DST 1996 + +new version with security patches + + +------------------------------------------------------------------- +Fri Aug 23 16:13:49 MET DST 1996 - florian@suse.de + +security fix included (0xff was command separator) +This document details the changes between this version, bash-4.1-rc, +and the previous version, bash-4.1-beta. + diff --git a/bash.keyring b/bash.keyring new file mode 100644 index 0000000..4c7de05 --- /dev/null +++ b/bash.keyring @@ -0,0 +1,25 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8Dp +vgRh40YpAwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qly +yX+2BZU+okBUqoWQkoWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJO +wyBFJdugjfwjSoRSwDOIMf0D/iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZ +bN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqESGZragl4VqJfxBr29Ag0UDvNbUbXoxQsA +Rdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQOTGOCa4W2o29nFfFjQrsrrYH +zVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP21Wf7f5niCCRKQLNy +Uy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWmW5fsm/di +50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJIheBBAWCAAGBQJa +Xm/3AAoJEBu4nAYCNnRJGPQBAM2cca3+cMUKWtSTxt4gYWBbV+ORFbJtbprOmukg +QNnEAQDrFDHtP9Wzo+R+0O7xUXjrkem0HcZmUKQPTim61wDRDbQaQ2hldCBSYW1l +eSA8Y2hldEBjd3J1LmVkdT6IZgQTEQIAHgUCQQ6wbAIbAwYLCQgHAwIDFQIDAxYC +AQIeAQIXgAASCRC7WGnwZOp0qwdlR1BHAAEBzs0An30UTMW8N1jOoJzNcXoopeLt +g3k4AJ9pwNiyhlyeezLsSMFkvTPAbBv+wbkBDQRBDrBvEAQAkK6TAOKBEM+EC4j6 +V/7o/riVZqcgU5cid2qG9TXdwNtD9a3kvA/ObZBO93sX59wc6Bnwo4VJxsOmMlpG +rAjJsxNwg3QHakEtf8LXRbVpj5xStdmBdQZUhIQyalo/2/TZq5OijtddUQcL5cs7 +0hTv/FpT3wUvr2Xr8rjF41IFEz8AAwcD/A0CZEGlzIrT5WCBnl6xBog/8vKiUCba +rByat3d1mL6DbizvKNXQRTC9E/vEdENAWCQCjr75Bu55xT8n3SXGtWdDC5xmZ/P3 +OBYORP8yl8H8I1FIosWOFirbIeYdZPq8SPD1HL+EXo9zSiHVrrZRJ19ooCKKbSdX +HFCY+aJG+0KZiFEEGBECAAkFAkEOsG8CGwwAEgkQu1hp8GTqdKsHZUdQRwABAeNw +AJ9mWRUIPBrP81M71zLe3r2halU83ACdHB7SqT9Yv+B+EffjrGHkHccVsU0= +=PsQ4 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/bash.spec b/bash.spec new file mode 100644 index 0000000..bab776b --- /dev/null +++ b/bash.spec @@ -0,0 +1,642 @@ +# +# spec file for package bash +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} > 1500 +%bcond_with alternatives +%else +%bcond_without alternatives +%endif +# Unicode tests do alloc to much memory +%bcond_with altarray +%define rl_major 8 +%define rl_version 8.2 + +%define bextend %{nil} +%define bversion 5.2 +%define bpatchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir}) +%global _incdir %{_includedir} +%global _ldldir %{_libdir}/bash +%global _minsh 0 +%bcond_with import_function +%bcond_with sjis +Name: bash +Version: %{bversion}.%{bpatchlvl} +Release: 0 +Summary: The GNU Bourne-Again Shell +# The package bash-completion is a source of +# bugs which will hit at most this package +#Recommends: bash-completion +License: GPL-3.0-or-later +Group: System/Shells +URL: https://www.gnu.org/software/bash/bash.html +# Git: https://git.savannah.gnu.org/cgit/bash.git +Source0: https://ftp.gnu.org/gnu/bash/bash-%{bversion}%{bextend}.tar.gz +Source1: bash-%{bversion}-patches.tar.bz2 +Source2: get_version_number.sh +Source4: run-tests +Source5: dot.bashrc +Source6: dot.profile +Source7: bash-rpmlintrc +Source8: baselibs.conf +# Remember unsafe method, compare with +# https://lists.gnu.org/archive/html/bug-bash/2011-03/msg00070.html +# https://lists.gnu.org/archive/html/bug-bash/2011-03/msg00071.html +# https://lists.gnu.org/archive/html/bug-bash/2011-03/msg00073.html +Source9: bash-4.2-history-myown.dif.bz2 +Source10: https://ftp.gnu.org/gnu/bash/bash-%{bversion}%{bextend}.tar.gz.sig +# GPG key 7C0135FB088AAF6C66C650B9BB5869F064EA74AB Chet Ramey +Source11: bash.keyring +Patch0: bash-%{bversion}.dif +Patch1: bash-2.03-manual.patch +Patch3: bash-4.3-2.4.4.patch +Patch4: bash-3.0-evalexp.patch +Patch5: bash-3.0-warn-locale.patch +Patch7: bash-4.3-decl.patch +Patch9: bash-4.3-include-unistd.dif +Patch10: bash-3.2-printf.patch +Patch11: bash-4.3-loadables.dif +Patch12: bash-4.1-completion.dif +Patch13: bash-4.2-nscdunmap.dif +Patch14: bash-4.3-sigrestart.patch +# PATCH-FIX-UPSTREAM bnc#382214 -- disabled due bnc#806628 by -DBNC382214=0 +Patch16: bash-4.0-setlocale.dif +# PATCH-EXTEND-SUSE bnc#828877 -- xterm resizing does not pass to all sub clients +Patch18: bash-4.3-winch.dif +Patch40: bash-4.1-bash.bashrc.dif +# PATCH-FIX-SUSE For bsc#1065158 add support for broken Japanese locale Shift JIS +Patch42: bash-4.3-SJIS.patch +Patch46: man2html-no-timestamp.patch +Patch47: bash-4.3-perl522.patch +# PATCH-FIX-SUSE +Patch48: bash-4.3-extra-import-func.patch +# PATCH-EXTEND-SUSE Allow root to clean file system if filled up +Patch49: bash-4.3-pathtemp.patch +# PATCH-FIX-SUSE +Patch50: quotes-man2html.patch +BuildRequires: autoconf +BuildRequires: bison +BuildRequires: fdupes +BuildRequires: glibc-locale +BuildRequires: glibc-locale-base +BuildRequires: makeinfo +BuildRequires: patchutils +BuildRequires: pkgconfig +BuildRequires: screen +BuildRequires: sed +%if %{with alternatives} +BuildRequires: update-alternatives +%endif +BuildRequires: pkgconfig(audit) +BuildRequires: pkgconfig(ncurses) +# This has to be always the same version as included in the bash its self +BuildRequires: pkgconfig(readline) = 8.2 +%if %{with alternatives} +Requires(post): update-alternatives +Requires(post): libreadline%{rl_major} = %{rl_version} +Requires(preun):update-alternatives +%endif +Requires: libreadline%{rl_major} = %{rl_version} +Suggests: bash-doc = %{version} +Suggests: command-not-found +Provides: /bin/bash +%if %{with alternatives} +Provides: /bin/sh +%else +Suggests: bash-sh +%endif + +%description +Bash is an sh-compatible command interpreter that executes commands +read from standard input or from a file. Bash incorporates useful +features from the Korn and C shells (ksh and csh). Bash is intended to +be a conformant implementation of the IEEE Posix Shell and Tools +specification (IEEE Working Group 1003.2). + +%package doc +Summary: Documentation how to Use the GNU Bourne-Again Shell +Group: Documentation/HTML +Supplements: (bash and patterns-base-documentation) +Provides: bash:%{_infodir}/bash.info.gz +BuildArch: noarch + +%description doc +This package contains the documentation for using the bourne shell +interpreter Bash. + +%lang_package + +%if %{without alternatives} +%package sh +Summary: Handle behaviour of /bin/sh +Group: System/Shells +Provides: alternative(sh) +Conflicts: alternative(sh) +PreReq: bash = %{version} +BuildArch: noarch + +%description sh +Use bash as /bin/sh implementation. +%endif + +%package devel +Summary: Include Files mandatory for Development of bash loadable builtins +Group: Development/Languages/C and C++ + +%description devel +This package contains the C header files for writing loadable new +builtins for the interpreter Bash. Use the output of the command +`pkg-config bash --cflags' on the compilers command line. + +%package loadables +Summary: Loadable bash builtins +Group: System/Shells + +%description loadables +This package contains the examples for the ready-to-dynamic-load +builtins found in the source tar ball of the bash: + +basename Return non-directory portion of pathname. + +cut cut(1) replacement. + +dirname Return directory portion of pathname. + +finfo Print file info. + +getconf POSIX.2 getconf utility. + +head Copy first part of files. + +id POSIX.2 user identity. + +ln Make links. + +logname Print login name of current user. + +mkdir Make directories. + +pathchk Check pathnames for validity and portability. + +print Loadable ksh-93 style print builtin. + +printenv Minimal builtin clone of BSD printenv(1). + +push Anyone remember TOPS-20? + +realpath Canonicalize pathnames, resolving symlinks. + +rmdir Remove directory. + +sleep sleep for fractions of a second. + +strftime Loadable builtin interface to strftime(3). + +sync Sync the disks by forcing pending filesystem writes to +complete. + +tee Duplicate standard input. + +tty Return terminal name. + +uname Print system information. + +unlink Remove a directory entry. + +whoami Print out username of current user. + +%if 0%{?suse_version} >= 1550 +%package legacybin +Summary: Legacy usrmove helper files +Group: System/Shells +Requires: bash = %{version}-%{release} +Requires: this-is-only-for-build-envs +Conflicts: rpmlib(X-CheckUnifiedSystemdir) +BuildArch: noarch + +%description legacybin +Legacy usrmove helper files for the build system. Do not install. +%endif + +%prep +%if %{with sjis} +%{warn:Shift JIS support is enabled} +%else +%{echo:Shift JIS support disabled} +%endif +%setup -q -n bash-%{bversion}%{bextend} -b1 +typeset -i level +set +x +for patch in ../bash-%{bversion}-patches/*-*[0-9]; do + test -e $patch || break + + let level=0 || true + file=$(lsdiff --files=1 $patch) + if test ! -e $file ; then + file=${file#*/} + let level++ || true + fi + test -e $file || exit 1 + sed -ri '/^\*\*\* \.\./{ s@\.\./bash-%{bversion}[^/]*/@@ }' $patch + echo Patch $patch + patch -s -p$level < $patch +done +set -x +%patch1 -b .manual +%patch3 -b .2.4.4 +%patch4 -b .evalexp +%patch5 -b .warnlc +%patch7 -b .decl +%patch9 -b .unistd +%patch10 -b .printf +%patch11 -b .plugins +%patch12 -b .completion +%patch13 -b .nscdunmap +%patch14 -b .sigrestart +%patch16 -b .setlocale +#%patch18 -p0 -b .winch +%patch40 -b .bashrc +%if %{with sjis} +%patch42 -b .sjis +%endif +%patch46 -b .notimestamp +%patch47 -b .perl522 +%if %{with import_function} +%patch48 -b .eif +%endif +%patch49 -b .pthtmp +%patch50 -b .qd +%patch0 + +# This has to be always the same version as included in the bash its self +rl1=($(sed -rn '/RL_READLINE_VERSION/p' lib/readline/readline.h)) +rl2=($(sed -rn '/RL_READLINE_VERSION/p' %{_includedir}/readline/readline.h)) +test ${rl1[2]} = ${rl2[2]} || exit 1 + +# Sometimes we face major ABI change(s) but only a minor version change +rl1=($(sed -rn '/RL_VERSION_MAJOR/p' lib/readline/readline.h)) +test ${rl1[2]} = %{rl_major} || exit 1 +rl2=($(sed -rn '/RL_VERSION_MINOR/p' lib/readline/readline.h)) +test ${rl1[2]}.${rl2[2]} = %{rl_version} || exit 1 + +%if 0%{?qemu_user_space_build} +# Something in qemu clobbers the signal mask to block SIGALRM during the +# execution of this test, causing it to hang. Skip it. +echo exit 0 > tests/read7.sub +%endif + +%build + LANG=POSIX + LC_ALL=$LANG + unset LC_CTYPE + SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1 + SCREENRC=${SCREENDIR}/bash + export SCREENRC SCREENDIR + exec 0< /dev/null + SCREENLOG=${SCREENDIR}/log + cat > $SCREENRC<<-EOF + deflogin off + deflog on + logfile $SCREENLOG + logfile flush 1 + logtstamp off + log on + setsid on + scrollback 0 + silence on + utf8 on + EOF + HOSTTYPE=%{_target_cpu} + VENDOR=%{_target_vendor} + OSTYPE=%{_target_os} + MACHTYPE=${HOSTTYPE}-${VENDOR}-${OSTYPE} + export LANG LC_ALL HOSTTYPE VENDOR OSTYPE MACHTYPE + cflags () + { + local flag=$1; shift + local var=$1; shift + test -n "${flag}" -a -n "${var}" || return + case "${!var}" in + *${flag}*) return + esac + set -o noclobber + case "$flag" in + -Wl,*) + if echo 'int main () { return 0; }' | \ + ${CC:-gcc} -Werror $flag -o /dev/null -xc - > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + ;; + *) + if ${CC:-gcc} -Werror ${flag/#-Wno-/-W} -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + if ${CXX:-g++} -Werror ${flag/#-Wno-/-W} -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + esac + set +o noclobber + } + LARGEFILE="$(getconf LFS_CFLAGS)" + CFLAGS="%{optflags} $LARGEFILE -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -g" + LDFLAGS="" + # + # Never ever put -DMUST_UNBLOCK_CHLD herein as this breaks bash + # + cflags -Wuninitialized CFLAGS + cflags -Wextra CFLAGS + cflags -Wno-unprototyped-calls CFLAGS + cflags -Wno-switch-enum CFLAGS + cflags -Wno-unused-variable CFLAGS + cflags -Wno-unused-parameter CFLAGS + cflags -Wno-parentheses CFLAGS + cflags -ftree-loop-linear CFLAGS + cflags -pipe CFLAGS + cflags -DBNC382214=0 CFLAGS + cflags -DIMPORT_FUNCTIONS_DEF=0 CFLAGS + cflags -Wl,--as-needed LDFLAGS + cflags -Wl,-O2 LDFLAGS + cflags -Wl,-rpath,%{_ldldir} LDFLAGS + # /proc is required for correct configuration + test -d /dev/fd || { echo "/proc is not mounted!" >&2; exit 1; } + CC=gcc +%if %{_minsh} + cflags -Os CFLAGS +# cflags -U_FORTIFY_SOURCE CFLAGS +# cflags -funswitch-loops CFLAGS +# cflags -ftree-loop-im CFLAGS +# cflags -ftree-loop-ivcanon CFLAGS +# cflags -fprefetch-loop-arrays CFLAGS +# cflags -fno-stack-protector CFLAGS +# cflags -fno-unwind-tables CFLAGS +# cflags -fno-asynchronous-unwind-tables CFLAGS +%endif + CFLAGS="$CFLAGS -DDEFAULT_LOADABLE_BUILTINS_PATH='\"%{_libdir}/%{name}\"'" + CC_FOR_BUILD="$CC" + CFLAGS_FOR_BUILD="$CFLAGS" + export CC_FOR_BUILD CFLAGS_FOR_BUILD CFLAGS LDFLAGS CC + autoconf + # + # We have a malloc with our glibc + # + SYSMALLOC=" + --without-gnu-malloc + --without-bash-malloc + --enable-mem-scramble + " + # + # System readline library (comment out it not to be used) + # + READLINE=" + --with-installed-readline + " + bash support/mkconffiles -v +%if %{_minsh} + ./configure --build=%{_target_cpu}-suse-linux \ + --prefix=%{_prefix} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --libdir=%{_libdir} \ + --with-curses \ + --with-afs \ + --with-gnu-ld \ + $SYSMALLOC \ + --enable-minimal-config \ + --enable-arith-for-command \ + --enable-array-variables \ + --disable-alt-array-implementation \ + --enable-brace-expansion \ + --enable-casemod-attributes \ + --enable-casemod-expansion \ + --enable-command-timing \ + --enable-cond-command \ + --enable-cond-regexp \ + --enable-coprocesses \ + --enable-directory-stack \ + --enable-dparen-arithmetic \ + --enable-extended-glob \ + --enable-job-control \ + --enable-net-redirections \ + --enable-process-substitution \ + --enable-glob-asciiranges-default \ + --disable-strict-posix-default \ + --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \ + $READLINE + %make_build Program=sh sh + %make_build distclean +%endif + ./configure --build=%{_target_cpu}-suse-linux \ + --prefix=%{_prefix} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --libdir=%{_libdir} \ + --docdir=%{_docdir}/%{name} \ + --with-curses \ + --with-afs \ + --with-gnu-ld \ + $SYSMALLOC \ + --enable-threads=posix \ + --enable-job-control \ + --enable-net-redirections \ + --enable-alias \ + --enable-readline \ + --enable-history \ + --enable-bang-history \ + --enable-directory-stack \ + --enable-process-substitution \ + --enable-prompt-string-decoding \ + --enable-select \ + --enable-help-builtin \ + --enable-separate-helpfiles \ + --enable-array-variables \ +%if %{with altarray} + --enable-alt-array-implementation \ +%else + --disable-alt-array-implementation \ +%endif + --enable-brace-expansion \ + --enable-command-timing \ + --enable-disabled-builtins \ + --enable-glob-asciiranges-default \ + --enable-translatable-strings \ + --disable-strict-posix-default \ + --enable-multibyte \ + --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \ + $READLINE + sed -rn '/Configuration feature settings controllable by autoconf/,/End of configuration settings controllable by autoconf/p' < config.h + profilecflags=CFLAGS="$CFLAGS" +%if 0%{?do_profiling} + profilecflags=CFLAGS="$CFLAGS %{cflags_profile_generate}" +%endif + makeopts="Machine=${HOSTTYPE} OS=${OSTYPE} VENDOR=${VENDOR} MACHTYPE=${MACHTYPE}" + %make_build $makeopts "$profilecflags" \ + all printenv recho zecho xcase + TMPDIR=$(mktemp -d /tmp/bash.XXXXXXXXXX) || exit 1 + > $SCREENLOG + tail -q -s 0.5 -f $SCREENLOG & pid=$! + env -i HOME=$PWD TERM=$TERM LD_LIBRARY_PATH=$LD_RUN_PATH TMPDIR=$TMPDIR \ + SCREENRC=$SCREENRC SCREENDIR=$SCREENDIR \ + screen -D -m %make_build -j1 TESTSCRIPT=%{SOURCE4} check + kill -TERM $pid +%if 0%{?do_profiling} + rm -f jobs.gcda + profilecflags=CFLAGS="$CFLAGS %{cflags_profile_feedback} -fprofile-correction" + %make_build $makeopts "$profilecflags" clean +%endif + %make_build $makeopts "$profilecflags" all + %make_build $makeopts -C examples/loadables/ + %make_build $makeopts documentation + grep -F '$'\' doc/bash.html %{nil:test for boo#1203091} + +%check + %make_build -j1 check + +%install + %make_install + make -C examples/loadables/ install-supported DESTDIR=%{buildroot} libdir=%{_libdir} + mv -vf %{buildroot}%{_ldldir}/*.h %{buildroot}%{_includedir}/bash/ + mv -vf %{buildroot}%{_ldldir}/*.inc %{buildroot}%{_datadir}/bash + rm -rf %{buildroot}/%{_lib}/pkgconfig + sed -ri '/CC = gcc/s@(CC = gcc).*@\1@' %{buildroot}%{_libdir}/pkgconfig/bash.pc +%if %{with alternatives} + mkdir -p %{buildroot}%{_sysconfdir}/alternatives +%endif +# +# It should be noted that the move of /bin/bash to /usr/bin/bash +# had NOT done by me at 2019/02/08. Now only a symbolic link +# remains here :( +# The same had happen for the system POSIX shell /bin/sh +# + mkdir -p %{buildroot}/bin + ln -sf %{_bindir}/bash %{buildroot}/bin/bash + ln -sf %{_bindir}/sh %{buildroot}/bin/sh + ln -sf bash %{buildroot}%{_bindir}/rbash +%if %{with alternatives} + ln -sf %{_sysconfdir}/alternatives/sh %{buildroot}%{_bindir}/sh +%else + ln -sf %{_bindir}/bash %{buildroot}%{_bindir}/sh +%endif + install -m 644 COMPAT NEWS %{buildroot}%{_docdir}/%{name} + install -m 644 doc/FAQ %{buildroot}%{_docdir}/%{name} + install -m 644 doc/INTRO %{buildroot}%{_docdir}/%{name} + install -m 644 doc/*.html %{buildroot}%{_docdir}/%{name} + install -m 644 doc/builtins.1 %{buildroot}%{_mandir}/man1/bash_builtins.1 + install -m 644 doc/rbash.1 %{buildroot}%{_mandir}/man1/rbash.1 + gzip -9f %{buildroot}%{_infodir}/*.inf*[^z] || true + mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d + sed 's/^|//' > %{buildroot}%{_docdir}/%{name}/BUGS <<\EOF +Known problems +-------------- +| +This version of bash/readline supports multi byte handling +that is e.g. wide character support for UTF-8. This causes +problems in geting the current cursor position within the +readline runtime library: +| +bash-%{bversion}> LANG=ja_JP +bash-%{bversion}> echo -n "Hello" +bash-%{bversion}> +| +In other words the prompt overwrites the output of the +echo comand. The boolean variable byte-oriented +set in %{_sysconfdir}/inputrc or $HOME/.inputrc avoids this +but disables multi byte handling. +EOF + # remove unpackaged files + mkdir -p %{buildroot}%{_sysconfdir}/skel + install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/skel/.bashrc + install -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/skel/.profile + touch -t 199605181720.50 %{buildroot}%{_sysconfdir}/skel/.bash_history + chmod 600 %{buildroot}%{_sysconfdir}/skel/.bash_history + %find_lang bash + %fdupes -s %{buildroot}%{_datadir}/bash/helpfiles + sed -ri '1{ s@/bin/sh@/bin/bash@ }' %{buildroot}%{_bindir}/bashbug + +%if %{with alternatives} +%post -p %{_bindir}/bash +%{_sbindir}/update-alternatives --quiet --force \ + --install %{_bindir}/sh sh %{_bindir}/bash 10100 + +%preun -p %{_bindir}/bash +if test "$1" = 0; then + %{_sbindir}/update-alternatives --quiet --remove sh %{_bindir}/bash +fi +%endif + +%files +%license COPYING +%config %attr(600,root,root) %{_sysconfdir}/skel/.bash_history +%config %attr(644,root,root) %{_sysconfdir}/skel/.bashrc +%config %attr(644,root,root) %{_sysconfdir}/skel/.profile +%if %{with alternatives} +%ghost %config %{_sysconfdir}/alternatives/sh +%endif +%dir %{_sysconfdir}/bash_completion.d +%if 0%{?suse_version} < 1550 +/bin/bash +%if %{with alternatives} +/bin/sh +%endif +%endif +%{_bindir}/bash +%{_bindir}/bashbug +%{_bindir}/rbash +%if %{with alternatives} +%{_bindir}/sh +%endif +%dir %{_datadir}/bash +%dir %{_datadir}/bash/helpfiles +%{_datadir}/bash/helpfiles/* +%{_mandir}/man1/bash.1%{?ext_man} +%{_mandir}/man1/bash_builtins.1%{?ext_man} +%{_mandir}/man1/bashbug.1%{?ext_man} +%{_mandir}/man1/rbash.1%{?ext_man} + +%if %{without alternatives} +%files sh +%if 0%{?suse_version} < 1550 +/bin/sh +%endif +%{_bindir}/sh +%endif + +%files lang -f bash.lang + +%files doc +%{_infodir}/bash.info%{?ext_info} +%doc %{_docdir}/%{name} + +%files devel +%dir %{_includedir}/bash/ +%dir %{_includedir}/bash/builtins/ +%dir %{_includedir}/bash/include/ +%{_incdir}/bash/*.h +%{_incdir}/bash/builtins/*.h +%{_incdir}/bash/include/*.h +%{_libdir}/pkgconfig/bash.pc +%{_datadir}/bash/*.inc + +%files loadables +%{_ldldir} + +%if 0%{?suse_version} >= 1550 +%files legacybin +/bin/bash +/bin/sh +%endif + +%changelog diff --git a/dot.bashrc b/dot.bashrc new file mode 100644 index 0000000..ad33cfd --- /dev/null +++ b/dot.bashrc @@ -0,0 +1,13 @@ +# Sample .bashrc for SUSE Linux +# Copyright (c) SUSE Software Solutions Germany GmbH + +# There are 3 different types of shells in bash: the login shell, normal shell +# and interactive shell. Login shells read ~/.profile and interactive shells +# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all +# settings made here will also take effect in a login shell. +# +# NOTE: It is recommended to make language settings in ~/.profile rather than +# here, since multilingual X sessions would not work properly if LANG is over- +# ridden in every subshell. + +test -s ~/.alias && . ~/.alias || true diff --git a/dot.profile b/dot.profile new file mode 100644 index 0000000..1bea108 --- /dev/null +++ b/dot.profile @@ -0,0 +1,25 @@ +# Sample .profile for SUSE Linux +# rewritten by Christian Steinruecken +# +# This file is read each time a login shell is started. +# All other interactive shells will only read .bashrc; this is particularly +# important for language settings, see below. + +test -z "$PROFILEREAD" && . /etc/profile || true + +# Some applications read the EDITOR variable to determine your favourite text +# editor. So uncomment the line below and enter the editor of your choice :-) +#export EDITOR=/usr/bin/vim +#export EDITOR=/usr/bin/mcedit + +# For some news readers it makes sense to specify the NEWSSERVER variable here +#export NEWSSERVER=your.news.server + +# Some people don't like fortune. If you uncomment the following lines, +# you will have a fortune each time you log in ;-) + +#if [ -x /usr/bin/fortune ] ; then +# echo +# /usr/bin/fortune +# echo +#fi diff --git a/get_version_number.sh b/get_version_number.sh new file mode 100644 index 0000000..b586f91 --- /dev/null +++ b/get_version_number.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Note: this file is used in the spec file, do not remove it +# Print the highest version number of the patches from the archive +sourcedir=$1 +test -n "${sourcedir}" || sourcedir=$PWD +test -e ${sourcedir}/bash.spec || exit 1 +version=$(sed -rn '/^%define[[:space:]]+bversion/{s/^%define[[:space:]]+bversion[[:space:]]+([0-9]+\.[0-9]+)(\.[^\.]+)?/\1/p}' ${sourcedir}/bash.spec) || exit 1 +test -e ${sourcedir}/bash-${version}.tar.gz || exit 1 +last=($(tar Oxf ${sourcedir}/bash-${version}.tar.gz bash-${version}/configure.ac | sed -rn '/^define.bashvers/{s/^define\(bashvers,[[:space:]]([0-9\.]+)\)/\1/p}')) || exit 1 +test -e ${sourcedir}/bash-${version}-patches.tar.bz2 || echo ${last[0]} +tar --wildcards -tf ${sourcedir}/bash-${version}-patches.tar.bz2 '*/bash[0-9][0-9]-*[0-9]' &> /dev/null || echo ${last[0]} +OFS="$IFS" +IFS=- +last=($(tar --wildcards -tf ${sourcedir}/bash-${version}-patches.tar.bz2 '*/bash[0-9][0-9]-*[0-9]' | sed -r 's@\.patch$@@'| sort -t '-' -k 3,3 -n | tail -n 1)) +IFS="$OFS" +echo ${last[3]/*0/} diff --git a/man2html-no-timestamp.patch b/man2html-no-timestamp.patch new file mode 100644 index 0000000..6067e57 --- /dev/null +++ b/man2html-no-timestamp.patch @@ -0,0 +1,15 @@ +--- + support/man2html.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- support/man2html.c ++++ support/man2html.c 2010-09-03 20:49:56.288632000 +0000 +@@ -4076,7 +4076,7 @@ main(int argc, char **argv) + if (subs) + fputs("\n", stdout); + fputs("\n", stdout); +- print_sig(); ++ /* print_sig(); */ + fputs("\n\n", stdout); + } else + fprintf(stderr, "man2html: no output produced\n"); diff --git a/quotes-man2html.patch b/quotes-man2html.patch new file mode 100644 index 0000000..0c7cfae --- /dev/null +++ b/quotes-man2html.patch @@ -0,0 +1,27 @@ +boo#1203091 + +--- + support/man2html.c | 12 ++++ + 1 file changed, 12 insertions(+) + +--- support/man2html.c ++++ support/man2html.c 2022-09-12 08:27:06.352648345 +0000 +@@ -476,6 +476,18 @@ expand_char(int nr) + charb[0] = nr / 256; + charb[1] = nr % 256; + charb[2] = '\0'; ++ if (charb[1] == 'q') { ++ switch (charb[0]) { ++ case 'a': ++ strncpy(charb, "'", 1); ++ charb[1] = '\0'; ++ break; ++ case 'd': ++ strncpy(charb, """, 6); ++ charb[6] = '\0'; ++ break; ++ } ++ } + if (charb[0] == '<') { /* Fix up <= */ + charb[4] = charb[1]; + strncpy(charb, "<", 4); diff --git a/run-tests b/run-tests new file mode 100644 index 0000000..bfdce94 --- /dev/null +++ b/run-tests @@ -0,0 +1,76 @@ +#! /bin/sh +# +# This program 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. +# +# This program 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 this program. If not, see . +# + +: ${TMPDIR:=/tmp} +export TMPDIR + +# basic /bin/sh syntax +SUFFIX=`${THIS_SH} -c 'echo $(( $RANDOM + $BASHPID ))'` + +BASH_TSTOUT=${TMPDIR}/bashtst-$SUFFIX # for now +export BASH_TSTOUT + +trap 'rm -f $BASH_TSTOUT' 0 1 2 3 15 + +PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests' +export PATH + + +# unset BASH_ENV only if it is set +[ "${BASH_ENV+set}" = "set" ] && unset BASH_ENV +# ditto for SHELLOPTS +#[ "${SHELLOPTS+set}" = "set" ] && unset SHELLOPTS + +: ${THIS_SH:=../bash} +export THIS_SH + +: ${BUILD_DIR:=..} +export BUILD_DIR + +${THIS_SH} ./version + +rm -f ${BASH_TSTOUT} + +echo Any output from any test, unless otherwise noted, indicates a possible anomaly + +for x in run-* +do + case $x in + $0|run-all|run-minimal|run-gprof|run-jobs) ;; + *.orig|*~) ;; + *) echo $x ; sh $x ; rm -f ${BASH_TSTOUT} ;; + esac +done + +trap 'rm -f $tmp' EXIT HUP INT QUIT TERM +tmp=$(mktemp /tmp/hello.XXXXXXXX) || exit 1 +echo '#!/bin/sh' > $tmp +echo exit >> $tmp +chmod 755 $tmp +${THIS_SH} -c $tmp + +typeset -i count=500 +echo '#########################' +echo 'fork + /bin/sh -c runtime' +time while ((count-- > 0)) ; do + ${THIS_SH} -c $tmp +done +echo '#########################' +set -x +read -t1 < /dev/tty +set +x +echo '#########################' +exit 0