Accepting request 862386 from Base:System

- 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'.

- 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.

- 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.

OBS-URL: https://build.opensuse.org/request/show/862386
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/bash?expand=0&rev=168
This commit is contained in:
Dominique Leuenberger 2021-01-20 17:22:49 +00:00 committed by Git OBS Bridge
commit 57c1e77a9f
17 changed files with 244 additions and 140 deletions

View File

@ -19,7 +19,7 @@
.B \-D .B \-D
A list of all double-quoted strings preceded by \fB$\fP A list of all double-quoted strings preceded by \fB$\fP
is printed on the standard output. is printed on the standard output.
@@ -7294,6 +7300,11 @@ Apply the following `\fBs\fP' modifier o @@ -7382,6 +7388,11 @@ Apply the following `\fBs\fP' modifier o
.SH "SHELL BUILTIN COMMANDS" .SH "SHELL BUILTIN COMMANDS"
.\" start of bash_builtins .\" start of bash_builtins
.zZ .zZ
@ -31,7 +31,7 @@
.PP .PP
Unless otherwise noted, each builtin command documented in this Unless otherwise noted, each builtin command documented in this
section as accepting options preceded by section as accepting options preceded by
@@ -10768,6 +10779,11 @@ process or job waited for. @@ -11081,6 +11092,11 @@ process or job waited for.
.SH "RESTRICTED SHELL" .SH "RESTRICTED SHELL"
.\" rbash.1 .\" rbash.1
.zY .zY

View File

@ -12,7 +12,7 @@
#include "../bashtypes.h" #include "../bashtypes.h"
@@ -662,12 +663,20 @@ printf_builtin (list) @@ -661,12 +662,20 @@ printf_builtin (list)
case 'A': case 'A':
#endif #endif
{ {

View File

@ -1,55 +0,0 @@
---
variables.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
--- variables.c
+++ variables.c 2018-12-21 13:24:48.757352405 +0000
@@ -1324,6 +1324,7 @@ static int seeded_subshell = 0;
# define BASH_RAND_MAX 0x7fffffff /* 32 bits */
#endif
+#if !defined(linux)
/* Returns a pseudo-random number between 0 and 32767. */
static int
brand ()
@@ -1380,6 +1381,40 @@ seedrand ()
#endif
}
+#else
+/* Use ISO C Random Number Functions of the glibc */
+static int
+brand (void)
+{
+ if (rseed == 0)
+ seedrand ();
+ return ((unsigned int)(rand() & BASH_RAND_MAX)); /* was % BASH_RAND_MAX+1 */
+}
+
+static void
+sbrand (unsigned long seed)
+{
+ rseed = seed;
+ srand(seed);
+}
+
+static void
+seedrand (void)
+{
+ struct timeval tv;
+#ifdef _EXTENDTHIS
+ SHELL_VAR *v;
+#endif
+ gettimeofday (&tv, NULL);
+#ifdef _EXTENDTHIS
+ v = find_variable ("BASH_VERSION");
+ sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid () ^ ((u_bits32_t)&v & 0x7fffffff));
+#else
+ srand (tv.tv_sec ^ tv.tv_usec ^ getpid ());
+#endif
+}
+#endif
+
static SHELL_VAR *
assign_random (self, value, unused, key)
SHELL_VAR *self;

View File

@ -12,7 +12,7 @@
/* The current domain for textdomain(3). */ /* The current domain for textdomain(3). */
static char *default_domain; static char *default_domain;
@@ -339,11 +340,21 @@ get_locale_var (var) @@ -359,11 +360,21 @@ get_locale_var (var)
if (locale == 0 || *locale == 0) if (locale == 0 || *locale == 0)
locale = lang; locale = lang;
if (locale == 0 || *locale == 0) if (locale == 0 || *locale == 0)

View File

@ -4,7 +4,7 @@
--- bashline.c --- bashline.c
+++ bashline.c 2018-11-29 08:12:25.876588305 +0000 +++ bashline.c 2018-11-29 08:12:25.876588305 +0000
@@ -2043,6 +2043,13 @@ globword: @@ -2128,6 +2128,13 @@ globword:
return ((char *)NULL); return ((char *)NULL);
} }

View File

@ -12,7 +12,7 @@
# include <unistd.h> # include <unistd.h>
#endif #endif
@@ -1800,6 +1801,28 @@ init_interactive_script () @@ -1855,6 +1856,28 @@ init_interactive_script ()
#endif #endif
} }
@ -41,7 +41,7 @@
void void
get_current_user_info () get_current_user_info ()
{ {
@@ -1831,6 +1854,7 @@ get_current_user_info () @@ -1886,6 +1909,7 @@ get_current_user_info ()
#if defined (HAVE_GETPWENT) #if defined (HAVE_GETPWENT)
endpwent (); endpwent ();
#endif #endif

View File

@ -1,15 +1,17 @@
--- ---
array.c | 2 +- array.c | 2 +-
examples/loadables/tee.c | 3 ++- examples/loadables/tee.c | 3 ++-
hashlib.c | 2 +- hashlib.c | 4 ++--
jobs.c | 9 +++++++++ jobs.c | 9 +++++++++
sig.c | 4 ++-- sig.c | 4 ++--
sig.h | 4 ++-- sig.h | 4 ++--
6 files changed, 17 insertions(+), 7 deletions(-) trap.c | 2 +-
trap.h | 2 +-
8 files changed, 20 insertions(+), 10 deletions(-)
--- array.c --- array.c
+++ array.c 2018-11-29 08:10:37.098634355 +0000 +++ array.c 2020-10-12 16:00:37.207185803 +0000
@@ -965,7 +965,7 @@ char *s, *sep; @@ -1028,7 +1028,7 @@ char *s, *sep;
* To make a running version, compile -DTEST_ARRAY and link with: * To make a running version, compile -DTEST_ARRAY and link with:
* xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a * xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a
*/ */
@ -19,7 +21,7 @@
int int
signal_is_trapped(s) signal_is_trapped(s)
--- examples/loadables/tee.c --- examples/loadables/tee.c
+++ examples/loadables/tee.c 2018-11-29 08:10:37.098634355 +0000 +++ examples/loadables/tee.c 2020-10-12 16:00:37.267184666 +0000
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
#include "bashansi.h" #include "bashansi.h"
@ -38,19 +40,21 @@
extern char *strerror (); extern char *strerror ();
--- hashlib.c --- hashlib.c
+++ hashlib.c 2018-11-29 08:10:37.098634355 +0000 +++ hashlib.c 2020-10-12 16:02:31.677016331 +0000
@@ -391,7 +391,7 @@ hash_pstats (table, name) @@ -473,8 +473,8 @@ hash_pstats (table, name)
HASH_TABLE *table, *ntable; HASH_TABLE *table, *ntable;
-int interrupt_immediately = 0; -int interrupt_immediately = 0;
-int running_trap = 0;
+volatile sig_atomic_t interrupt_immediately = 0; +volatile sig_atomic_t interrupt_immediately = 0;
+volatile sig_atomic_t running_trap = 0;
int int
signal_is_trapped (s) signal_is_trapped (s)
--- jobs.c --- jobs.c
+++ jobs.c 2018-11-29 08:10:37.102634281 +0000 +++ jobs.c 2020-10-12 16:00:37.267184666 +0000
@@ -1999,6 +1999,15 @@ make_child (command, async_p) @@ -2221,6 +2221,15 @@ make_child (command, flags)
child process, go back and change callers who free `command' in child process, go back and change callers who free `command' in
the child process when this returns. */ the child process when this returns. */
mypid = getpid (); mypid = getpid ();
@ -67,7 +71,7 @@
/* Close default_buffered_input if it's > 0. We don't close it if it's /* 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, 0 because that's the file descriptor used when redirecting input,
--- sig.c --- sig.c
+++ sig.c 2018-11-29 08:10:37.102634281 +0000 +++ sig.c 2020-10-12 16:00:37.267184666 +0000
@@ -83,10 +83,10 @@ sigset_t top_level_mask; @@ -83,10 +83,10 @@ sigset_t top_level_mask;
#endif /* JOB_CONTROL */ #endif /* JOB_CONTROL */
@ -82,7 +86,7 @@
#if defined (SIGWINCH) #if defined (SIGWINCH)
static SigHandler *old_winch = (SigHandler *)SIG_DFL; static SigHandler *old_winch = (SigHandler *)SIG_DFL;
--- sig.h --- sig.h
+++ sig.h 2018-11-29 08:10:37.102634281 +0000 +++ sig.h 2020-10-12 16:03:44.403637781 +0000
@@ -109,8 +109,8 @@ do { \ @@ -109,8 +109,8 @@ do { \
extern volatile sig_atomic_t sigwinch_received; extern volatile sig_atomic_t sigwinch_received;
extern volatile sig_atomic_t sigterm_received; extern volatile sig_atomic_t sigterm_received;
@ -93,4 +97,26 @@
+extern volatile sig_atomic_t terminate_immediately; +extern volatile sig_atomic_t terminate_immediately;
/* Functions from sig.c. */ /* Functions from sig.c. */
extern sighandler termsig_sighandler __P((int)); extern sighandler termsig_sighandler PARAMS((int));
--- trap.c
+++ trap.c 2020-10-12 16:08:10.102600477 +0000
@@ -111,7 +111,7 @@ int pending_traps[NSIG];
Used in execute_cmd.c and builtins/common.c to clean up when
parse_and_execute does not return normally after executing the
trap command (e.g., when `return' is executed in the trap command). */
-int running_trap;
+volatile sig_atomic_t running_trap;
/* Set to last_command_exit_value before running a trap. */
int trap_saved_exit_value;
--- trap.h
+++ trap.h 2020-10-12 16:05:57.105122164 +0000
@@ -62,7 +62,7 @@ extern char *trap_list[];
extern int trapped_signal_received;
extern int wait_signal_received;
-extern int running_trap;
+extern volatile sig_atomic_t running_trap;
extern int trap_saved_exit_value;
extern int suppress_debug_trap_verbose;

View File

@ -1,16 +1,16 @@
--- ---
examples/loadables/finfo.c | 9 ++++----- examples/loadables/finfo.c | 3 +--
examples/loadables/head.c | 2 -- examples/loadables/head.c | 2 --
examples/loadables/id.c | 2 -- examples/loadables/id.c | 2 --
examples/loadables/mkdir.c | 2 +- examples/loadables/mkdir.c | 2 +-
examples/loadables/pathchk.c | 2 -- examples/loadables/pathchk.c | 2 --
examples/loadables/print.c | 2 +- examples/loadables/print.c | 2 +-
examples/loadables/tee.c | 2 -- examples/loadables/tee.c | 2 --
7 files changed, 6 insertions(+), 15 deletions(-) 7 files changed, 3 insertions(+), 12 deletions(-)
--- examples/loadables/finfo.c --- examples/loadables/finfo.c
+++ examples/loadables/finfo.c 2018-09-20 08:07:43.739129083 +0000 +++ examples/loadables/finfo.c 2018-09-20 08:07:43.739129083 +0000
@@ -102,7 +102,7 @@ int argc; @@ -108,7 +108,7 @@ int argc;
char **argv; char **argv;
{ {
register int i; register int i;
@ -19,24 +19,7 @@
sh_optind = 0; /* XXX */ sh_optind = 0; /* XXX */
prog = base_pathname(argv[0]); prog = base_pathname(argv[0]);
@@ -334,13 +334,13 @@ int flags; @@ -396,7 +396,6 @@ finfo_builtin(list)
else
printf("%ld\n", st->st_ctime);
} else if (flags & OPT_DEV)
- printf("%d\n", st->st_dev);
+ printf("%lu\n", (unsigned long)st->st_dev);
else if (flags & OPT_INO)
printf("%lu\n", (unsigned long)st->st_ino);
else if (flags & OPT_FID)
- printf("%d:%lu\n", st->st_dev, (unsigned long)st->st_ino);
+ printf("%lu:%lu\n", (unsigned long)st->st_dev, (unsigned long)st->st_ino);
else if (flags & OPT_NLINK)
- printf("%d\n", st->st_nlink);
+ printf("%lu\n", (unsigned long)st->st_nlink);
else if (flags & OPT_LNKNAM) {
#ifdef S_ISLNK
b = xmalloc(4096);
@@ -390,7 +390,6 @@ finfo_builtin(list)
{ {
int c, r; int c, r;
char **v; char **v;

View File

@ -60,7 +60,7 @@
static char * static char *
get_tmpdir (flags) get_tmpdir (flags)
int flags; int flags;
@@ -186,7 +221,8 @@ sh_mktmpfd (nameroot, flags, namep) @@ -194,7 +229,8 @@ sh_mktmpfd (nameroot, flags, namep)
{ {
char *filename, *tdir, *lroot; char *filename, *tdir, *lroot;
int fd, tdlen; int fd, tdlen;
@ -70,7 +70,7 @@
filename = (char *)xmalloc (PATH_MAX + 1); filename = (char *)xmalloc (PATH_MAX + 1);
tdir = get_tmpdir (flags); tdir = get_tmpdir (flags);
tdlen = strlen (tdir); tdlen = strlen (tdir);
@@ -201,6 +237,10 @@ sh_mktmpfd (nameroot, flags, namep) @@ -217,6 +253,10 @@ sh_mktmpfd (nameroot, flags, namep)
free (filename); free (filename);
filename = NULL; filename = NULL;
} }
@ -81,7 +81,7 @@
if (namep) if (namep)
*namep = filename; *namep = filename;
return fd; return fd;
@@ -219,6 +259,13 @@ sh_mktmpfd (nameroot, flags, namep) @@ -235,6 +275,13 @@ sh_mktmpfd (nameroot, flags, namep)
} }
while (fd < 0 && errno == EEXIST); while (fd < 0 && errno == EEXIST);

View File

@ -4,7 +4,7 @@
--- sig.c --- sig.c
+++ sig.c 2018-11-29 08:13:00.103944580 +0000 +++ sig.c 2018-11-29 08:13:00.103944580 +0000
@@ -761,6 +761,8 @@ set_signal_handler (sig, handler) @@ -788,6 +788,8 @@ set_signal_handler (sig, handler)
if (sig == SIGCHLD) if (sig == SIGCHLD)
act.sa_flags |= SA_RESTART; /* XXX */ act.sa_flags |= SA_RESTART; /* XXX */
#endif #endif
@ -13,7 +13,7 @@
/* Let's see if we can keep SIGWINCH from interrupting interruptible system /* Let's see if we can keep SIGWINCH from interrupting interruptible system
calls, like open(2)/read(2)/write(2) */ calls, like open(2)/read(2)/write(2) */
#if defined (SIGWINCH) #if defined (SIGWINCH)
@@ -771,6 +773,10 @@ set_signal_handler (sig, handler) @@ -798,6 +800,10 @@ set_signal_handler (sig, handler)
it to be as close to SIG_IGN as possible. */ it to be as close to SIG_IGN as possible. */
if (sig == SIGTERM && handler == sigterm_sighandler) if (sig == SIGTERM && handler == sigterm_sighandler)
act.sa_flags |= SA_RESTART; /* XXX */ act.sa_flags |= SA_RESTART; /* XXX */

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:079f287939ff1fbd753c397277ad58249ba96bb06b7ed4a212cc3626aada8a3e
size 12963

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d
size 10135110

3
bash-5.1-patches.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67717d807a3d64efeafa02b9078297e345a90b9ed153964c4b392579b1ff5be2
size 3631

View File

@ -15,8 +15,8 @@
13 files changed, 37 insertions(+), 21 deletions(-) 13 files changed, 37 insertions(+), 21 deletions(-)
--- Makefile.in --- Makefile.in
+++ Makefile.in 2018-11-29 08:14:06.638693338 +0000 +++ Makefile.in 2020-11-23 07:50:41.491908452 +0000
@@ -456,7 +456,7 @@ SOURCES = $(CSOURCES) $(HSOURCES) $(BUI @@ -457,7 +457,7 @@ SOURCES = $(CSOURCES) $(HSOURCES) $(BUI
# headers in top-level source directory that get installed by install-headers # 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 \ 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 \ variables.h array.h assoc.h arrayfunc.h quit.h dispose_cmd.h \
@ -26,7 +26,7 @@
bashintl.h bashansi.h bashjmp.h alias.h hashlib.h \ bashintl.h bashansi.h bashjmp.h alias.h hashlib.h \
conftypes.h unwind_prot.h jobs.h siglist.h conftypes.h unwind_prot.h jobs.h siglist.h
--- config-top.h --- config-top.h
+++ config-top.h 2018-11-29 08:14:06.638693338 +0000 +++ config-top.h 2020-11-23 07:52:34.257749719 +0000
@@ -60,10 +60,14 @@ @@ -60,10 +60,14 @@
due to EPIPE. */ due to EPIPE. */
/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */
@ -75,10 +75,10 @@
-/* #define SSH_SOURCE_BASHRC */ -/* #define SSH_SOURCE_BASHRC */
+#define SSH_SOURCE_BASHRC +#define SSH_SOURCE_BASHRC
/* Define if you want the case-capitalizing operators (~[~]) and the /* Define if you want the case-toggling operators (~[~]) and the
`capcase' variable attribute (declare -c). */ `capcase' variable attribute (declare -c). */
--- doc/Makefile.in --- doc/Makefile.in
+++ doc/Makefile.in 2018-11-29 08:14:06.638693338 +0000 +++ doc/Makefile.in 2020-11-23 07:50:41.491908452 +0000
@@ -154,7 +154,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ @@ -154,7 +154,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $
# $(RM) $@ # $(RM) $@
# -${TEXI2PDF} $< # -${TEXI2PDF} $<
@ -89,8 +89,8 @@
everything: all pdf everything: all pdf
--- doc/bash.1 --- doc/bash.1
+++ doc/bash.1 2018-11-29 08:14:06.638693338 +0000 +++ doc/bash.1 2020-11-23 07:50:41.491908452 +0000
@@ -5443,8 +5443,8 @@ file (the \fIinputrc\fP file). @@ -5520,8 +5520,8 @@ file (the \fIinputrc\fP file).
The name of this file is taken from the value of the The name of this file is taken from the value of the
.SM .SM
.B INPUTRC .B INPUTRC
@ -98,10 +98,10 @@
-.IR ~/.inputrc . -.IR ~/.inputrc .
+environment variable. If that variable is unset, readline will read both +environment variable. If that variable is unset, readline will read both
+.IR /etc/inputrc " and " ~/.inputrc . +.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 When a program which uses the readline library starts up, the
initialization file is read, and the key bindings and variables @@ -11241,6 +11241,9 @@ The individual login shell cleanup file,
are set.
@@ -10922,6 +10922,9 @@ The individual login shell cleanup file,
.TP .TP
.FN ~/.inputrc .FN ~/.inputrc
Individual \fIreadline\fP initialization file Individual \fIreadline\fP initialization file
@ -112,7 +112,7 @@
.SH AUTHORS .SH AUTHORS
Brian Fox, Free Software Foundation Brian Fox, Free Software Foundation
--- general.h --- general.h
+++ general.h 2018-11-29 08:14:06.638693338 +0000 +++ general.h 2020-11-23 07:50:41.491908452 +0000
@@ -21,10 +21,13 @@ @@ -21,10 +21,13 @@
#if !defined (_GENERAL_H_) #if !defined (_GENERAL_H_)
#define _GENERAL_H_ #define _GENERAL_H_
@ -128,8 +128,8 @@
#if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE) #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE)
# if defined (HAVE_SYS_TIME_H) # if defined (HAVE_SYS_TIME_H)
--- parse.y --- parse.y
+++ parse.y 2018-11-29 08:14:06.638693338 +0000 +++ parse.y 2020-11-23 07:50:41.491908452 +0000
@@ -1456,7 +1456,7 @@ input_file_descriptor () @@ -1458,7 +1458,7 @@ input_file_descriptor ()
#if defined (READLINE) #if defined (READLINE)
char *current_readline_prompt = (char *)NULL; char *current_readline_prompt = (char *)NULL;
@ -139,7 +139,7 @@
static int static int
--- shell.c --- shell.c
+++ shell.c 2018-11-29 08:14:06.638693338 +0000 +++ shell.c 2020-11-23 07:50:41.491908452 +0000
@@ -45,6 +45,7 @@ @@ -45,6 +45,7 @@
#if defined (HAVE_UNISTD_H) #if defined (HAVE_UNISTD_H)
# include <sys/types.h> # include <sys/types.h>
@ -148,7 +148,7 @@
#endif #endif
#include "bashintl.h" #include "bashintl.h"
@@ -497,7 +498,7 @@ main (argc, argv, env) @@ -503,7 +504,7 @@ main (argc, argv, env)
if (dump_translatable_strings) if (dump_translatable_strings)
read_but_dont_execute = 1; read_but_dont_execute = 1;
@ -157,18 +157,18 @@
disable_priv_mode (); disable_priv_mode ();
/* Need to get the argument to a -c option processed in the /* Need to get the argument to a -c option processed in the
@@ -1294,6 +1295,9 @@ disable_priv_mode () @@ -1310,6 +1311,9 @@ disable_priv_mode ()
{ {
int e; int e;
+ if (!current_user.user_name) + if (!current_user.user_name)
+ get_current_user_info(); + get_current_user_info();
+ initgroups (current_user.user_name, current_user.gid); + initgroups (current_user.user_name, current_user.gid);
if (setuid (current_user.uid) < 0) #if HAVE_SETRESUID
{ if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0)
e = errno; #else
--- support/man2html.c --- support/man2html.c
+++ support/man2html.c 2018-11-29 08:14:06.638693338 +0000 +++ support/man2html.c 2020-11-23 07:50:41.491908452 +0000
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
@ -178,7 +178,7 @@
#define NULL_TERMINATED(n) ((n) + 1) #define NULL_TERMINATED(n) ((n) + 1)
--- support/rlvers.sh --- support/rlvers.sh
+++ support/rlvers.sh 2018-11-29 08:14:06.638693338 +0000 +++ support/rlvers.sh 2020-11-23 07:50:41.495908376 +0000
@@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers @@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers
# defaults # defaults
@ -194,9 +194,9 @@
# cannot rely on the presence of getopts # cannot rely on the presence of getopts
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
--- support/shobj-conf --- support/shobj-conf
+++ support/shobj-conf 2018-11-29 08:14:06.642693263 +0000 +++ support/shobj-conf 2020-11-23 07:50:41.495908376 +0000
@@ -126,10 +126,11 @@ sunos5*|solaris2*) @@ -126,10 +126,11 @@ sunos5*|solaris2*)
linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*|dragonfly*)
SHOBJ_CFLAGS=-fPIC SHOBJ_CFLAGS=-fPIC
SHOBJ_LD='${CC}' SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' - SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
@ -208,10 +208,10 @@
+ echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 2>&1 && SHLIB_LIBS=-ltinfo || SHLIB_LIBS=-lncurses + echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 2>&1 && SHLIB_LIBS=-ltinfo || SHLIB_LIBS=-lncurses
;; ;;
freebsd2*) # Darwin/MacOS X
--- tests/glob.tests --- tests/glob.tests
+++ tests/glob.tests 2018-11-29 08:14:06.642693263 +0000 +++ tests/glob.tests 2020-11-23 07:50:41.495908376 +0000
@@ -15,8 +15,8 @@ ${THIS_SH} ./glob3.sub @@ -33,8 +33,8 @@ ${THIS_SH} ./glob9.sub
MYDIR=$PWD # save where we are MYDIR=$PWD # save where we are
@ -223,7 +223,7 @@
rm -rf * rm -rf *
--- tests/run-intl --- tests/run-intl
+++ tests/run-intl 2018-11-29 08:14:06.642693263 +0000 +++ tests/run-intl 2020-11-23 07:50:41.495908376 +0000
@@ -5,4 +5,4 @@ echo "warning: some of these tests will @@ -5,4 +5,4 @@ echo "warning: some of these tests will
echo "warning: locales installed on your system." >&2 echo "warning: locales installed on your system." >&2
@ -231,7 +231,7 @@
-diff $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT} -diff $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT}
+diff -w $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
+++ tests/run-read 2018-11-29 08:14:06.642693263 +0000 +++ tests/run-read 2020-11-23 07:50:41.495908376 +0000
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
echo "warning: please do not consider output differing only in the amount of" >&2 echo "warning: please do not consider output differing only in the amount of" >&2
echo "warning: white space to be an error." >&2 echo "warning: white space to be an error." >&2

3
bash-5.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa
size 10458638

View File

@ -1,13 +1,165 @@
-------------------------------------------------------------------
Mon Jan 11 12:00:19 UTC 2021 - Dr. Werner Fink <werner@suse.de>
- 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 <werner@suse.de>
- 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 <lnussel@suse.de> Thu Nov 19 15:47:13 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- remove obsolete info macros - remove obsolete info macros
-------------------------------------------------------------------
Tue Nov 10 13:31:20 UTC 2020 - Dr. Werner Fink <werner@suse.de>
- 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 <lnussel@suse.de> Fri Oct 16 07:08:31 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- prepare usrmerge (boo#1029961) - prepare usrmerge (boo#1029961)
-------------------------------------------------------------------
Mon Oct 12 17:19:06 UTC 2020 - Dr. Werner Fink <werner@suse.de>
- 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 <sndirsch@suse.com> Wed Sep 23 16:30:31 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package bash # spec file for package bash
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -21,8 +21,8 @@
Name: bash Name: bash
%define bextend %nil %define bextend %nil
%define bversion 5.0 %define bversion 5.1
%define bpatchlvl 18 %define bpatchlvl 4
Version: %{bversion}.%{bpatchlvl} Version: %{bversion}.%{bpatchlvl}
Release: 0 Release: 0
Summary: The GNU Bourne-Again Shell Summary: The GNU Bourne-Again Shell
@ -49,7 +49,6 @@ Source8: baselibs.conf
Source9: bash-4.2-history-myown.dif.bz2 Source9: bash-4.2-history-myown.dif.bz2
Patch0: bash-%{bversion}.dif Patch0: bash-%{bversion}.dif
Patch1: bash-2.03-manual.patch Patch1: bash-2.03-manual.patch
Patch2: bash-4.0-security.patch
Patch3: bash-4.3-2.4.4.patch Patch3: bash-4.3-2.4.4.patch
Patch4: bash-3.0-evalexp.patch Patch4: bash-3.0-evalexp.patch
Patch5: bash-3.0-warn-locale.patch Patch5: bash-3.0-warn-locale.patch
@ -82,7 +81,7 @@ BuildRequires: ncurses-devel
BuildRequires: patchutils BuildRequires: patchutils
BuildRequires: pkg-config BuildRequires: pkg-config
# This has to be always the same version as included in the bash its self # This has to be always the same version as included in the bash its self
BuildRequires: readline-devel == 8.0 BuildRequires: readline-devel == 8.1
BuildRequires: screen BuildRequires: screen
BuildRequires: sed BuildRequires: sed
BuildRequires: update-alternatives BuildRequires: update-alternatives
@ -229,7 +228,6 @@ for patch in ../bash-%{bversion}-patches/*; do
done done
set -x set -x
%patch1 -p0 -b .manual %patch1 -p0 -b .manual
%patch2 -p0 -b .security
%patch3 -p0 -b .2.4.4 %patch3 -p0 -b .2.4.4
%patch4 -p0 -b .evalexp %patch4 -p0 -b .evalexp
%patch5 -p0 -b .warnlc %patch5 -p0 -b .warnlc