From: Michael Tremer Date: Sun, 18 Sep 2016 13:57:39 +0000 (+0100) Subject: bash: Update to 4.4 X-Git-Url: http://git.ipfire.org/?p=people%2Fstevee%2Fipfire-3.x.git;a=commitdiff_plain;h=f4587ad056d4b5241f7035e8b76b16689a699cc5 bash: Update to 4.4 This drops most of the patches and uses CPPFLAGS instead. bash is now using libreadline from the system and not shipping an own version any more. Signed-off-by: Michael Tremer --- diff --git a/bash/bash.nm b/bash/bash.nm index 989479482..0ca9d1560 100644 --- a/bash/bash.nm +++ b/bash/bash.nm @@ -4,8 +4,8 @@ ############################################################################### name = bash -version = 4.3 -release = 11 +version = 4.4 +release = 1 groups = System/Tools url = http://www.gnu.org/software/bash/ @@ -28,29 +28,42 @@ build bison filesystem >= 002 ncurses-devel + readline-devel >= 7.0 texinfo end + # Disable parallel build + MAKETUNING = + prepare_cmds # Bash uses the RTLD_LAZY option when loading libraries. We want to use # RTLD_NOW (it is defined from : sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \ -i builtins/enable.def - - sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/%{thisapp}|" \ - Makefile.in end - configure_options += \ - --with-afs \ - --with-bash-malloc=no + CPPFLAGS += -D_GNU_SOURCE %(getconf LFS_CFLAGS) + + CPPFLAGS += -DNON_INTERACTIVE_LOGIN_SHELLS + CPPFLAGS += -DSSH_SOURCE_BASHRC # Recycles pids is neccessary. When bash's last fork's pid was X # and new fork's pid is also X, bash has to wait for this same pid. # Without Recycles pids bash will not wait. - make_build_targets += "CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS -DDEFAULT_PATH_VALUE='\"/usr/local/bin:/usr/bin\"' $(getconf LFS_CFLAGS)" + CPPFLAGS += -DRECYCLES_PIDS + + CPPFLAGS += \ + -DDEFAULT_PATH_VALUE='\"/usr/local/bin:/usr/bin\"' \ + -DSTANDARD_UTILS_PATH='\"/bin:/usr/bin:/sbin:/usr/sbin\"' \ + -DSYS_BASH_LOGOUT='\"/etc/bash.bash_logout\"' + + configure_options += \ + --with-installed-readline \ + --with-afs \ + --with-bash-malloc=no + + make_build_targets += CPPFLAGS="%{CPPFLAGS}" - # Test hangs forever test make tests end diff --git a/bash/patches/bash-2.02-security.patch b/bash/patches/bash-2.02-security.patch deleted file mode 100644 index f8a913b54..000000000 --- a/bash/patches/bash-2.02-security.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.02-orig/parse.y Wed Mar 25 18:16:23 1998 -+++ bash-2.02/parse.y Sun Apr 19 16:46:34 1998 -@@ -923,7 +923,7 @@ - - #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 diff --git a/bash/patches/bash-2.03-paths.patch b/bash/patches/bash-2.03-paths.patch deleted file mode 100644 index 24ec5cc0b..000000000 --- a/bash/patches/bash-2.03-paths.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100 -+++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100 -@@ -66,7 +66,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" -+ "/bin:/usr/bin:/usr/sbin:/sbin" - #endif - - /* Default primary and secondary prompt strings. */ diff --git a/bash/patches/bash-2.03-profile.patch b/bash/patches/bash-2.03-profile.patch deleted file mode 100644 index ba3344b3c..000000000 --- a/bash/patches/bash-2.03-profile.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h ---- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200 -+++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200 -@@ -26,6 +26,8 @@ - what POSIX.2 specifies. */ - #define CONTINUE_AFTER_KILL_ERROR - -+#define NON_INTERACTIVE_LOGIN_SHELLS -+ - /* Define BREAK_COMPLAINS if you want the non-standard, but useful - error messages about `break' and `continue' out of context. */ - #define BREAK_COMPLAINS diff --git a/bash/patches/bash-2.05a-interpreter.patch b/bash/patches/bash-2.05a-interpreter.patch deleted file mode 100644 index b9f0da2fb..000000000 --- a/bash/patches/bash-2.05a-interpreter.patch +++ /dev/null @@ -1,219 +0,0 @@ -diff -up bash-4.2-rc2/config.h.in.interpreter bash-4.2-rc2/config.h.in ---- bash-4.2-rc2/config.h.in.interpreter 2011-02-09 07:59:21.000000000 +0100 -+++ bash-4.2-rc2/config.h.in 2011-02-09 07:59:21.000000000 +0100 -@@ -706,6 +706,9 @@ - /* Define if you have the pathconf function. */ - #undef HAVE_PATHCONF - -+/* Define if you have the pread function. */ -+#undef HAVE_PREAD -+ - /* Define if you have the putenv function. */ - #undef HAVE_PUTENV - -@@ -898,6 +901,9 @@ - /* Define if you have the header file. */ - #undef HAVE_DLFCN_H - -+/* Define if you have the header file. */ -+#undef HAVE_ELF_H -+ - /* Define if you have the header file. */ - #undef HAVE_GRP_H - -diff -up bash-4.2-rc2/configure.in.interpreter bash-4.2-rc2/configure.in ---- bash-4.2-rc2/configure.in.interpreter 2011-01-16 21:31:12.000000000 +0100 -+++ bash-4.2-rc2/configure.ac 2011-02-09 08:02:27.000000000 +0100 -@@ -659,7 +659,7 @@ BASH_HEADER_INTTYPES - AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ - memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ -- regex.h syslog.h ulimit.h) -+ regex.h syslog.h ulimit.h elf.h) - AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \ - sys/resource.h sys/param.h sys/socket.h sys/stat.h \ - sys/time.h sys/times.h sys/types.h sys/wait.h) -@@ -723,7 +723,7 @@ dnl checks for system calls - AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ -- setitimer tcgetpgrp uname ulimit waitpid) -+ setitimer tcgetpgrp uname ulimit waitpid pread) - AC_REPLACE_FUNCS(rename) - - dnl checks for c library functions -diff -up bash-4.2-rc2/execute_cmd.c.interpreter bash-4.2-rc2/execute_cmd.c ---- bash-4.2-rc2/execute_cmd.c.interpreter 2011-01-20 04:24:47.000000000 +0100 -+++ bash-4.2-rc2/execute_cmd.c 2011-02-09 07:59:21.000000000 +0100 -@@ -41,6 +41,10 @@ - # include - #endif - -+#ifdef HAVE_ELF_H -+# include -+#endif -+ - #include "posixtime.h" - - #if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE) -@@ -4975,14 +4979,22 @@ shell_execve (command, args, env) - { - /* The file has the execute bits set, but the kernel refuses to - run it for some reason. See why. */ -+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) -+ int fd = open (command, O_RDONLY); -+ -+ if (fd >= 0) -+ sample_len = read (fd, sample, sizeof (sample)); -+ else -+ sample_len = -1; -+#endif - #if defined (HAVE_HASH_BANG_EXEC) -- READ_SAMPLE_BUF (command, sample, sample_len); - sample[sample_len - 1] = '\0'; - if (sample_len > 2 && sample[0] == '#' && sample[1] == '!') - { - char *interp; - int ilen; - -+ close (fd); - interp = getinterp (sample, sample_len, (int *)NULL); - ilen = strlen (interp); - errno = i; -@@ -4997,6 +5009,136 @@ shell_execve (command, args, env) - return (EX_NOEXEC); - } - #endif -+#if defined (HAVE_ELF_H) -+ if (i == ENOENT -+ && sample_len > EI_NIDENT -+ && memcmp (sample, ELFMAG, SELFMAG) == 0) -+ { -+ off_t offset = -1; -+ -+ /* It is an ELF file. Now determine whether it is dynamically -+ linked and if yes, get the offset of the interpreter -+ string. */ -+ if (sample[EI_CLASS] == ELFCLASS32 -+ && sample_len > sizeof (Elf32_Ehdr)) -+ { -+ Elf32_Ehdr ehdr; -+ Elf32_Phdr *phdr; -+ int nphdr; -+ -+ /* We have to copy the data since the sample buffer -+ might not be aligned correctly to be accessed as -+ an Elf32_Ehdr struct. */ -+ memcpy (&ehdr, sample, sizeof (Elf32_Ehdr)); -+ -+ nphdr = ehdr.e_phnum; -+ phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ if (phdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ ehdr.e_phoff); -+#else -+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -+ sample_len = read (fd, phdr, -+ nphdr * ehdr.e_phentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nphdr * ehdr.e_phentsize) -+ while (nphdr-- > 0) -+ if (phdr[nphdr].p_type == PT_INTERP) -+ { -+ offset = phdr[nphdr].p_offset; -+ break; -+ } -+ free (phdr); -+ } -+ } -+ else if (sample[EI_CLASS] == ELFCLASS64 -+ && sample_len > sizeof (Elf64_Ehdr)) -+ { -+ Elf64_Ehdr ehdr; -+ Elf64_Phdr *phdr; -+ int nphdr; -+ -+ /* We have to copy the data since the sample buffer -+ might not be aligned correctly to be accessed as -+ an Elf64_Ehdr struct. */ -+ memcpy (&ehdr, sample, sizeof (Elf64_Ehdr)); -+ -+ nphdr = ehdr.e_phnum; -+ phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ if (phdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ ehdr.e_phoff); -+#else -+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -+ sample_len = read (fd, phdr, -+ nphdr * ehdr.e_phentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nphdr * ehdr.e_phentsize) -+ while (nphdr-- > 0) -+ if (phdr[nphdr].p_type == PT_INTERP) -+ { -+ offset = phdr[nphdr].p_offset; -+ break; -+ } -+ free (phdr); -+ } -+ } -+ -+ if (offset != -1) -+ { -+ size_t maxlen = 0; -+ size_t actlen = 0; -+ char *interp = NULL; -+ -+ do -+ { -+ if (actlen == maxlen) -+ { -+ char *newinterp = realloc (interp, maxlen += 200); -+ if (newinterp == NULL) -+ { -+ actlen = 0; -+ break; -+ } -+ interp = newinterp; -+ -+#ifdef HAVE_PREAD -+ actlen = pread (fd, interp, maxlen, offset); -+#else -+ if (lseek (fd, offset, SEEK_SET) != -1) -+ actlen = read (fd, interp, maxlen); -+ else -+ actlen = -1; -+#endif -+ } -+ } -+ while (actlen > 0 && memchr (interp, '\0', actlen) == NULL); -+ -+ if (actlen > 0) -+ { -+ close (fd); -+ errno = i; -+ sys_error ("%s: %s: bad ELF interpreter", command, -+ interp); -+ free (interp); -+ return (EX_NOEXEC); -+ } -+ -+ free (interp); -+ } -+ } -+#endif -+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) -+ close (fd); -+#endif - errno = i; - file_error (command); - } diff --git a/bash/patches/bash-2.05b-manso.patch b/bash/patches/bash-2.05b-manso.patch deleted file mode 100644 index 39ebf744a..000000000 --- a/bash/patches/bash-2.05b-manso.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- bash-2.05b/doc/builtins.1.manso 2003-02-10 18:58:21.000000000 +0000 -+++ bash-2.05b/doc/builtins.1 2003-02-10 18:58:28.000000000 +0000 -@@ -10,6 +10,6 @@ - ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1) - .SH BASH BUILTIN COMMANDS - .nr zZ 1 --.so bash.1 -+.so man1/bash.1 - .SH SEE ALSO - bash(1), sh(1) diff --git a/bash/patches/bash-2.05b-pgrp_sync.patch b/bash/patches/bash-2.05b-pgrp_sync.patch deleted file mode 100644 index bd7ded60a..000000000 --- a/bash/patches/bash-2.05b-pgrp_sync.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.05b/aclocal.m4.pgrp_sync 2002-06-25 14:45:43.000000000 +0100 -+++ bash-2.05b/aclocal.m4 2003-01-15 18:17:35.000000000 +0000 -@@ -1255,7 +1255,7 @@ - wait(&status); - exit(ok ? 0 : 5); - } --], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes, -+], bash_cv_pgrp_pipe=yes,bash_cv_pgrp_pipe=yes, - [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no) - bash_cv_pgrp_pipe=no]) - ]) diff --git a/bash/patches/bash-2.05b-readline-oom.patch b/bash/patches/bash-2.05b-readline-oom.patch deleted file mode 100644 index f25d780ac..000000000 --- a/bash/patches/bash-2.05b-readline-oom.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.05b/lib/readline/readline.c.oom 2002-03-13 23:10:46.000000000 +0100 -+++ bash-2.05b/lib/readline/readline.c 2002-08-07 12:02:04.000000000 +0200 -@@ -817,7 +817,7 @@ - /* Special case rl_do_lowercase_version (). */ - if (func == rl_do_lowercase_version) - /* Should we do anything special if key == ANYOTHERKEY? */ -- return (_rl_dispatch (_rl_to_lower (key), map)); -+ return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map)); - - rl_executing_keymap = map; - rl_executing_key = key; diff --git a/bash/patches/bash-3.2-ssh_source_bash.patch b/bash/patches/bash-3.2-ssh_source_bash.patch deleted file mode 100644 index 5bd19ce9a..000000000 --- a/bash/patches/bash-3.2-ssh_source_bash.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h ---- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100 -+++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100 -@@ -90,7 +90,7 @@ - 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-capitalizing operators (~[~]) and the - `capcase' variable attribute (declare -c). */ diff --git a/bash/patches/bash-4.0-nobits.patch b/bash/patches/bash-4.0-nobits.patch deleted file mode 100644 index 0e77fda9f..000000000 --- a/bash/patches/bash-4.0-nobits.patch +++ /dev/null @@ -1,154 +0,0 @@ -diff -up bash-4.0/execute_cmd.c.nobits bash-4.0/execute_cmd.c ---- bash-4.0/execute_cmd.c.nobits 2009-08-11 11:53:38.000000000 +0200 -+++ bash-4.0/execute_cmd.c 2009-08-14 16:18:18.000000000 +0200 -@@ -4747,6 +4747,7 @@ shell_execve (command, args, env) - && memcmp (sample, ELFMAG, SELFMAG) == 0) - { - off_t offset = -1; -+ int dynamic_nobits = 0; - - /* It is an ELF file. Now determine whether it is dynamically - linked and if yes, get the offset of the interpreter -@@ -4756,13 +4757,61 @@ shell_execve (command, args, env) - { - Elf32_Ehdr ehdr; - Elf32_Phdr *phdr; -- int nphdr; -+ Elf32_Shdr *shdr; -+ int nphdr, nshdr; - - /* We have to copy the data since the sample buffer - might not be aligned correctly to be accessed as - an Elf32_Ehdr struct. */ - memcpy (&ehdr, sample, sizeof (Elf32_Ehdr)); - -+ nshdr = ehdr.e_shnum; -+ shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize); -+ -+ if (shdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize, -+ ehdr.e_shoff); -+#else -+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -+ sample_len = read (fd, shdr, -+ nshdr * ehdr.e_shentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nshdr * ehdr.e_shentsize) -+ { -+ char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size); -+ if (strings != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, strings, -+ shdr[ehdr.e_shstrndx].sh_size, -+ shdr[ehdr.e_shstrndx].sh_offset); -+#else -+ if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset, -+ SEEK_SET) != -1) -+ sample_len = read (fd, strings, -+ shdr[ehdr.e_shstrndx].sh_size); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == shdr[ehdr.e_shstrndx].sh_size) -+ while (nshdr-- > 0) -+ if (strcmp (strings + shdr[nshdr].sh_name, -+ ".interp") == 0 && -+ shdr[nshdr].sh_type == SHT_NOBITS) -+ { -+ dynamic_nobits++; -+ break; -+ } -+ free (strings); -+ } -+ } -+ free (shdr); -+ } -+ - nphdr = ehdr.e_phnum; - phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize); - if (phdr != NULL) -@@ -4792,13 +4841,60 @@ shell_execve (command, args, env) - { - Elf64_Ehdr ehdr; - Elf64_Phdr *phdr; -- int nphdr; -+ Elf64_Shdr *shdr; -+ int nphdr, nshdr; - - /* We have to copy the data since the sample buffer - might not be aligned correctly to be accessed as - an Elf64_Ehdr struct. */ - memcpy (&ehdr, sample, sizeof (Elf64_Ehdr)); - -+ nshdr = ehdr.e_shnum; -+ shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize); -+ if (shdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize, -+ ehdr.e_shoff); -+#else -+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -+ sample_len = read (fd, shdr, -+ nshdr * ehdr.e_shentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nshdr * ehdr.e_shentsize) -+ { -+ char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size); -+ if (strings != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, strings, -+ shdr[ehdr.e_shstrndx].sh_size, -+ shdr[ehdr.e_shstrndx].sh_offset); -+#else -+ if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset, -+ SEEK_SET) != -1) -+ sample_len = read (fd, strings, -+ shdr[ehdr.e_shstrndx].sh_size); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == shdr[ehdr.e_shstrndx].sh_size) -+ while (nshdr-- > 0) -+ if (strcmp (strings + shdr[nshdr].sh_name, -+ ".interp") == 0 && -+ shdr[nshdr].sh_type == SHT_NOBITS) -+ { -+ dynamic_nobits++; -+ break; -+ } -+ free (strings); -+ } -+ } -+ free (shdr); -+ } -+ - nphdr = ehdr.e_phnum; - phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize); - if (phdr != NULL) -@@ -4858,8 +4954,15 @@ shell_execve (command, args, env) - { - close (fd); - errno = i; -- sys_error ("%s: %s: bad ELF interpreter", command, -- interp); -+ if (dynamic_nobits > 0) -+ { -+ sys_error ("%s: bad ELF interpreter", command); -+ } -+ else -+ { -+ sys_error ("%s: %s: bad ELF interpreter", command, -+ interp); -+ } - free (interp); - return (EX_NOEXEC); - } diff --git a/bash/patches/bash-4.1-broken_pipe.patch b/bash/patches/bash-4.1-broken_pipe.patch deleted file mode 100644 index e0833741a..000000000 --- a/bash/patches/bash-4.1-broken_pipe.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.1/config-top.h.broken_pipe bash-4.1/config-top.h ---- bash-4.1/config-top.h.broken_pipe 2011-01-06 18:01:30.000000000 +0100 -+++ bash-4.1/config-top.h 2011-01-06 18:02:14.000000000 +0100 -@@ -51,7 +51,7 @@ - /* Define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS if you don't want builtins - like `echo' and `printf' to report errors when output does not succeed - due to EPIPE. */ --/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ -+#define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS - - /* The default value of the PATH variable. */ - #ifndef DEFAULT_PATH_VALUE diff --git a/bash/patches/bash-4.1-defer-sigchld-trap.patch b/bash/patches/bash-4.1-defer-sigchld-trap.patch deleted file mode 100644 index e00adecaf..000000000 --- a/bash/patches/bash-4.1-defer-sigchld-trap.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -pruN bash-4.1/jobs.c bash-4.1.patched/jobs.c ---- bash-4.1/jobs.c 2009-11-30 03:42:05.000000000 +0530 -+++ bash-4.1.patched/jobs.c 2012-03-06 16:44:15.706595703 +0530 -@@ -3037,6 +3037,7 @@ waitchld (wpid, block) - pid_t pid; - - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; -+ int called_from_sighand = sigchld; - static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */ - - call_set_current = children_exited = 0; diff --git a/bash/patches/bash-4.1-examples.patch b/bash/patches/bash-4.1-examples.patch deleted file mode 100644 index 19159e758..000000000 --- a/bash/patches/bash-4.1-examples.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up bash-4.1/examples/loadables/Makefile.in.examples bash-4.1/examples/loadables/Makefile.in ---- bash-4.1/examples/loadables/Makefile.in.examples 2010-06-22 16:20:02.000000000 +0200 -+++ bash-4.1/examples/loadables/Makefile.in 2010-06-22 16:20:41.000000000 +0200 -@@ -43,7 +43,7 @@ host_os = @host_os@ - host_cpu = @host_cpu@ - host_vendor = @host_vendor@ - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - LOCAL_CFLAGS = @LOCAL_CFLAGS@ - DEFS = @DEFS@ - LOCAL_DEFS = @LOCAL_DEFS@ -diff -up bash-4.1/examples/loadables/perl/Makefile.in.examples bash-4.1/examples/loadables/perl/Makefile.in ---- bash-4.1/examples/loadables/perl/Makefile.in.examples 2010-06-22 16:20:46.000000000 +0200 -+++ bash-4.1/examples/loadables/perl/Makefile.in 2010-06-22 16:21:04.000000000 +0200 -@@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@ - - PERL5 = perl5 - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - - # - # These values are generated for configure by ${topdir}/support/shobj-conf. diff --git a/bash/patches/bash-4.2-coverity.patch b/bash/patches/bash-4.2-coverity.patch deleted file mode 100644 index 5fc845617..000000000 --- a/bash/patches/bash-4.2-coverity.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ---- bash-4.2/execute_cmd.c.coverity 2011-02-24 13:04:35.000000000 +0100 -+++ bash-4.2/execute_cmd.c 2011-02-24 13:49:13.000000000 +0100 -@@ -5036,7 +5036,7 @@ shell_execve (command, args, env) - Elf32_Ehdr ehdr; - Elf32_Phdr *phdr; - Elf32_Shdr *shdr; -- int nphdr, nshdr; -+ Elf32_Half nphdr, nshdr; - - /* We have to copy the data since the sample buffer - might not be aligned correctly to be accessed as -@@ -5044,12 +5044,12 @@ shell_execve (command, args, env) - memcpy (&ehdr, sample, sizeof (Elf32_Ehdr)); - - nshdr = ehdr.e_shnum; -- shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize); -+ shdr = (Elf32_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize); - - if (shdr != NULL) - { - #ifdef HAVE_PREAD -- sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize, -+ sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize, - ehdr.e_shoff); - #else - if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -@@ -5091,11 +5091,11 @@ shell_execve (command, args, env) - } - - nphdr = ehdr.e_phnum; -- phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ phdr = (Elf32_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize); - if (phdr != NULL) - { - #ifdef HAVE_PREAD -- sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize, - ehdr.e_phoff); - #else - if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -@@ -5120,7 +5120,7 @@ shell_execve (command, args, env) - Elf64_Ehdr ehdr; - Elf64_Phdr *phdr; - Elf64_Shdr *shdr; -- int nphdr, nshdr; -+ Elf32_Half nphdr, nshdr; - - /* We have to copy the data since the sample buffer - might not be aligned correctly to be accessed as -@@ -5128,11 +5128,11 @@ shell_execve (command, args, env) - memcpy (&ehdr, sample, sizeof (Elf64_Ehdr)); - - nshdr = ehdr.e_shnum; -- shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize); -+ shdr = (Elf64_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize); - if (shdr != NULL) - { - #ifdef HAVE_PREAD -- sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize, -+ sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize, - ehdr.e_shoff); - #else - if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -@@ -5174,11 +5174,11 @@ shell_execve (command, args, env) - } - - nphdr = ehdr.e_phnum; -- phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ phdr = (Elf64_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize); - if (phdr != NULL) - { - #ifdef HAVE_PREAD -- sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize, - ehdr.e_phoff); - #else - if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -@@ -5200,8 +5200,8 @@ shell_execve (command, args, env) - - if (offset != -1) - { -- size_t maxlen = 0; -- size_t actlen = 0; -+ ssize_t maxlen = 0; -+ ssize_t actlen = 0; - char *interp = NULL; - - do -@@ -5250,7 +5250,8 @@ shell_execve (command, args, env) - } - #endif - #if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) -- close (fd); -+ if (fd >= 0) -+ close (fd); - #endif - errno = i; - file_error (command); diff --git a/bash/patches/bash-4.2-manpage_trap.patch b/bash/patches/bash-4.2-manpage_trap.patch deleted file mode 100644 index e81882f3d..000000000 --- a/bash/patches/bash-4.2-manpage_trap.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.1/doc/bash.1.manpage_trap bash-4.1/doc/bash.1 ---- bash-4.1/doc/bash.1.manpage_trap 2012-08-28 10:06:00.561999092 +0200 -+++ bash-4.1/doc/bash.1 2012-08-28 10:06:24.225304505 +0200 -@@ -9251,7 +9251,7 @@ being inverted via - These are the same conditions obeyed by the \fBerrexit\fP (\fB\-e\fP) option. - .if t .sp 0.5 - .if n .sp 1 --Signals ignored upon entry to the shell cannot be trapped or reset. -+Signals ignored upon entry to the shell cannot be trapped, reset or listed. - Trapped signals that are not being ignored are reset to their original - values in a subshell or subshell environment when one is created. - The return status is false if any diff --git a/bash/patches/bash-4.2-rc2-logout.patch b/bash/patches/bash-4.2-rc2-logout.patch deleted file mode 100644 index 5aff01af4..000000000 --- a/bash/patches/bash-4.2-rc2-logout.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up bash-3.2/config-top.h.logout bash-3.2/config-top.h ---- bash-3.2/config-top.h.logout 2011-04-14 08:55:55.000000000 +0200 -+++ bash-3.2/config-top.h 2011-04-14 08:55:55.000000000 +0200 -@@ -78,7 +78,7 @@ - /* #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. */ -diff -up bash-3.2/doc/bash.1.logout bash-3.2/doc/bash.1 ---- bash-3.2/doc/bash.1.logout 2011-04-14 09:16:32.000000000 +0200 -+++ bash-3.2/doc/bash.1 2011-04-14 11:59:33.000000000 +0200 -@@ -326,8 +326,8 @@ option may be used when the shell is sta - .PP - When a login shell exits, - .B bash --reads and executes commands from the file \fI~/.bash_logout\fP, if it --exists. -+reads and executes commands from the files \fI~/.bash_logout\fP -+and \fI/etc/bash.bash_logout\fP, if the files exists. - .PP - When an interactive shell that is not a login shell is started, - .B bash -@@ -8814,6 +8814,9 @@ The \fBbash\fP executable - .FN /etc/profile - The systemwide initialization file, executed for login shells - .TP -+.FN /etc/bash.bash_logout -+The systemwide login shell cleanup file, executed when a login shell exits -+.TP - .FN ~/.bash_profile - The personal initialization file, executed for login shells - .TP diff --git a/bash/patches/bash-4.2-size_type.patch b/bash/patches/bash-4.2-size_type.patch deleted file mode 100644 index ab566776e..000000000 --- a/bash/patches/bash-4.2-size_type.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up bash-4.2/variables.h.size_type bash-4.2/variables.h ---- bash-4.2/variables.h.size_type 2012-11-29 10:33:25.109036844 +0100 -+++ bash-4.2/variables.h 2012-11-29 10:46:12.718530162 +0100 -@@ -95,8 +95,8 @@ typedef struct variable { - - typedef struct _vlist { - SHELL_VAR **list; -- int list_size; /* allocated size */ -- int list_len; /* current number of entries */ -+ size_t list_size; /* allocated size */ -+ size_t list_len; /* current number of entries */ - } VARLIST; - - /* The various attributes that a given variable can have. */ diff --git a/bash/patches/bash-4.3-here-doc-ps2-comsub.patch0 b/bash/patches/bash-4.3-here-doc-ps2-comsub.patch0 deleted file mode 100644 index 0ccfd2011..000000000 --- a/bash/patches/bash-4.3-here-doc-ps2-comsub.patch0 +++ /dev/null @@ -1,47 +0,0 @@ -*** ../bash-4.3-patched/shell.h 2012-12-25 21:11:01.000000000 -0500 ---- shell.h 2014-06-03 09:24:28.000000000 -0400 -*************** -*** 169,173 **** - int expand_aliases; - int echo_input_at_read; -! - } sh_parser_state_t; - ---- 169,174 ---- - int expand_aliases; - int echo_input_at_read; -! int need_here_doc; -! - } sh_parser_state_t; - -*** ../bash-4.3-patched/parse.y 2014-05-14 09:16:40.000000000 -0400 ---- parse.y 2014-04-30 09:27:59.000000000 -0400 -*************** -*** 2643,2647 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 2643,2647 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 6076,6079 **** ---- 6076,6080 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 6124,6127 **** ---- 6125,6129 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); diff --git a/bash/patches/bash-4.3-lastpipe-nested-pipe-segfault.patch0 b/bash/patches/bash-4.3-lastpipe-nested-pipe-segfault.patch0 deleted file mode 100644 index 200a84f1d..000000000 --- a/bash/patches/bash-4.3-lastpipe-nested-pipe-segfault.patch0 +++ /dev/null @@ -1,24 +0,0 @@ -*** ../bash-4.3-patched/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500 ---- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 -*************** -*** 2410,2414 **** - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! exec_result = job_exit_status (lastpipe_jid); - #endif - unfreeze_jobs_list (); ---- 2425,2438 ---- - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! /* If wait_for removes the job from the jobs table, use result of last -! command as pipeline's exit status as usual. The jobs list can get -! frozen and unfrozen at inconvenient times if there are multiple pipelines -! running simultaneously. */ -! if (INVALID_JOB (lastpipe_jid) == 0) -! exec_result = job_exit_status (lastpipe_jid); -! else if (pipefail_opt) -! exec_result = exec_result | lstdin; /* XXX */ -! /* otherwise we use exec_result */ -! - #endif - unfreeze_jobs_list (); diff --git a/bash/patches/bash-4.3-man-ulimit.patch b/bash/patches/bash-4.3-man-ulimit.patch deleted file mode 100644 index fdba5442e..000000000 --- a/bash/patches/bash-4.3-man-ulimit.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ccd35766d2451677f4c49f66b8e18ad6e274d56a Mon Sep 17 00:00:00 2001 -From: Jan Chaloupka -Date: Mon, 7 Jul 2014 07:15:41 +0200 -Subject: [PATCH] bash.1: posix block size for cf options - ---- - doc/bash.1 | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/doc/bash.1 b/doc/bash.1 -index a4ad746..1916515 100644 ---- a/doc/bash.1 -+++ b/doc/bash.1 -@@ -9451,6 +9451,7 @@ and - which are unscaled values. - The return status is 0 unless an invalid option or argument is supplied, - or an error occurs while setting a new limit. -+In POSIX Mode 512-byte blocks are used for the `-c' and `-f' options. - .RE - .TP - \fBumask\fP [\fB\-p\fP] [\fB\-S\fP] [\fImode\fP] --- -1.9.3 - diff --git a/bash/patches/bash-4.3-parse-time-keyword.patch0 b/bash/patches/bash-4.3-parse-time-keyword.patch0 deleted file mode 100644 index 40337f5a1..000000000 --- a/bash/patches/bash-4.3-parse-time-keyword.patch0 +++ /dev/null @@ -1,28 +0,0 @@ -*** ../bash-4.3-patched/parse.y 2014-04-07 11:56:12.000000000 -0400 ---- parse.y 2014-06-11 10:25:53.000000000 -0400 -*************** -*** 2789,2797 **** - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ -! case '(': /* ) */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ ---- 2789,2802 ---- - case OR_OR: - case '&': -+ case WHILE: - case DO: -+ case UNTIL: -+ case IF: - case THEN: -+ case ELIF: - case ELSE: - case '{': /* } */ -! case '(': /* )( */ -! case ')': /* only valid in case statement */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ diff --git a/bash/patches/bash-4.3-pathexp-globignore-delim.patch0 b/bash/patches/bash-4.3-pathexp-globignore-delim.patch0 deleted file mode 100644 index 6b019f96b..000000000 --- a/bash/patches/bash-4.3-pathexp-globignore-delim.patch0 +++ /dev/null @@ -1,15 +0,0 @@ -*** ../bash-4.3-patched/pathexp.c 2014-01-31 09:34:33.000000000 -0500 ---- pathexp.c 2014-06-20 15:33:09.000000000 -0400 -*************** -*** 539,543 **** - return 0; - -! n = skip_to_delim (s, i, ":", SD_NOJMP|SD_EXTGLOB); - t = substring (s, i, n); - ---- 539,543 ---- - return 0; - -! n = skip_to_delim (s, i, ":", SD_NOJMP|SD_EXTGLOB|SD_GLOB); - t = substring (s, i, n); - diff --git a/bash/patches/bash-4.3-readline-revert-lines.patch0 b/bash/patches/bash-4.3-readline-revert-lines.patch0 deleted file mode 100644 index 2ce3d87e3..000000000 --- a/bash/patches/bash-4.3-readline-revert-lines.patch0 +++ /dev/null @@ -1,18 +0,0 @@ -*** ../bash-4.3-patched/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400 ---- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400 -*************** -*** 462,465 **** ---- 462,466 ---- - /* Set up rl_line_buffer and other variables from history entry */ - rl_replace_from_history (entry, 0); /* entry->line is now current */ -+ entry->data = 0; /* entry->data is now current undo list */ - /* Undo all changes to this history entry */ - while (rl_undo_list) -*************** -*** 469,473 **** - FREE (entry->line); - entry->line = savestring (rl_line_buffer); -- entry->data = 0; - } - entry = previous_history (); ---- 470,473 ---- diff --git a/bash/patches/bash-bashbug.patch b/bash/patches/bash-bashbug.patch deleted file mode 100644 index 7ed60d2ca..000000000 --- a/bash/patches/bash-bashbug.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -up bash-4.2-rc2/doc/bash.1.bashbug bash-4.2-rc2/doc/bash.1 ---- bash-4.2-rc2/doc/bash.1.bashbug 2011-01-16 21:31:39.000000000 +0100 -+++ bash-4.2-rc2/doc/bash.1 2011-02-09 08:52:14.000000000 +0100 -@@ -9857,7 +9857,7 @@ The latest version is always available f - .PP - Once you have determined that a bug actually exists, use the - .I bashbug --command to submit a bug report. -+command (from the source package) to submit a bug report. - If you have a fix, you are encouraged to mail that as well! - Suggestions and `philosophical' bug reports may be mailed - to \fIbug-bash@gnu.org\fP or posted to the Usenet -@@ -9879,10 +9879,6 @@ A description of the bug behaviour - A short script or `recipe' which exercises the bug - .PD - .PP --.I bashbug --inserts the first three items automatically into the template --it provides for filing a bug report. --.PP - Comments and bug reports concerning - this manual page should be directed to - .IR chet.ramey@case.edu . -diff -up bash-4.2-rc2/doc/bashref.texi.bashbug bash-4.2-rc2/doc/bashref.texi ---- bash-4.2-rc2/doc/bashref.texi.bashbug 2011-01-16 21:31:57.000000000 +0100 -+++ bash-4.2-rc2/doc/bashref.texi 2011-02-09 08:47:07.000000000 +0100 -@@ -7635,7 +7635,7 @@ The latest version of Bash is always ava - @uref{ftp://ftp.gnu.org/pub/gnu/bash/}. - - Once you have determined that a bug actually exists, use the --@code{bashbug} command to submit a bug report. -+@code{bashbug} command (from the source package) to submit a bug report. - If you have a fix, you are encouraged to mail that as well! - Suggestions and `philosophical' bug reports may be mailed - to @email{bug-bash@@gnu.org} or posted to the Usenet -@@ -7657,9 +7657,6 @@ to reproduce it. - @end itemize - - @noindent --@code{bashbug} inserts the first three items automatically into --the template it provides for filing a bug report. -- - Please send all reports concerning this manual to - @email{bug-bash@@gnu.org}. - -diff -up bash-4.2-rc2/shell.c.bashbug bash-4.2-rc2/shell.c ---- bash-4.2-rc2/shell.c.bashbug 2011-01-02 22:04:51.000000000 +0100 -+++ bash-4.2-rc2/shell.c 2011-02-09 08:47:07.000000000 +0100 -@@ -1823,7 +1823,6 @@ show_shell_usage (fp, extra) - { - fprintf (fp, _("Type `%s -c \"help set\"' for more information about shell options.\n"), shell_name); - fprintf (fp, _("Type `%s -c help' for more information about shell builtin commands.\n"), shell_name); -- fprintf (fp, _("Use the `bashbug' command to report bugs.\n")); - } - } - diff --git a/bash/patches/bash-infotags.patch b/bash/patches/bash-infotags.patch deleted file mode 100644 index 2e50d6ef0..000000000 --- a/bash/patches/bash-infotags.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- bash-3.1/doc/Makefile.in.infotags 2006-07-12 13:57:18.000000000 +0100 -+++ bash-3.1/doc/Makefile.in 2006-07-12 13:58:25.000000000 +0100 -@@ -69,7 +69,6 @@ - TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html - MAN2HTML = ${BUILD_DIR}/support/man2html - HTMLPOST = ${srcdir}/htmlpost.sh --INFOPOST = ${srcdir}/infopost.sh - QUIETPS = #set this to -q to shut up dvips - PAPERSIZE = letter # change to a4 for A4-size paper - PSDPI = 600 # could be 300 if you like -@@ -146,7 +145,7 @@ - - PSFILES = bash.ps bashbug.ps article.ps builtins.ps rbash.ps - DVIFILES = bashref.dvi bashref.ps --INFOFILES = bashref.info -+INFOFILES = bashref.info bash.info - MAN0FILES = bash.0 bashbug.0 builtins.0 rbash.0 - HTMLFILES = bashref.html bash.html - PDFFILES = bash.pdf bashref.pdf article.pdf rose94.pdf -@@ -167,8 +166,8 @@ - bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER) - $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi - --bash.info: bashref.info -- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \ -+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER) -+ $(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi -o $@ - - bash.txt: bash.1 - bash.ps: bash.1 diff --git a/bash/patches/bash-requires.patch b/bash/patches/bash-requires.patch index 5d82ac607..888de173c 100644 --- a/bash/patches/bash-requires.patch +++ b/bash/patches/bash-requires.patch @@ -1,19 +1,28 @@ -diff -up bash-4.1/builtins.h.requires bash-4.1/builtins.h ---- bash-4.1/builtins.h.requires 2009-01-04 20:32:23.000000000 +0100 -+++ bash-4.1/builtins.h 2010-08-02 17:42:41.000000000 +0200 -@@ -41,6 +41,8 @@ - #define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */ +commit efb0da0c0fee3e3ca21b21cd72f63cdfd7766d45 +Author: Michael Tremer +Date: Sun Sep 18 14:12:44 2016 +0100 + + Implement --rpm-requires + + Signed-off-by: Michael Tremer + +diff --git a/builtins.h b/builtins.h +index 0cfea18..c0c6acc 100644 +--- a/builtins.h ++++ b/builtins.h +@@ -42,6 +42,7 @@ #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */ #define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */ -+#define REQUIRES_BUILTIN 0x40 /* This builtin requires other files. */ -+ + #define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */ ++#define REQUIRES_BUILTIN 0x80 /* This builtin requires other files. */ #define BASE_INDENT 4 -diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c ---- bash-4.1/builtins/mkbuiltins.c.requires 2009-01-04 20:32:23.000000000 +0100 -+++ bash-4.1/builtins/mkbuiltins.c 2010-08-02 17:42:41.000000000 +0200 -@@ -69,9 +69,15 @@ extern char *strcpy (); +diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c +index 4f51201..69707ec 100644 +--- a/builtins/mkbuiltins.c ++++ b/builtins/mkbuiltins.c +@@ -69,10 +69,15 @@ extern char *strcpy (); #define whitespace(c) (((c) == ' ') || ((c) == '\t')) /* Flag values that builtins can have. */ @@ -23,13 +32,13 @@ diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c + in ../builtins.h */ #define BUILTIN_FLAG_SPECIAL 0x01 #define BUILTIN_FLAG_ASSIGNMENT 0x02 - #define BUILTIN_FLAG_POSIX_BUILTIN 0x04 -+#define BUILTIN_FLAG_REQUIRES 0x08 -+ + #define BUILTIN_FLAG_LOCALVAR 0x04 + #define BUILTIN_FLAG_POSIX_BUILTIN 0x08 ++#define BUILTIN_FLAG_REQUIRES 0x16 #define BASE_INDENT 4 -@@ -163,10 +169,18 @@ char *posix_builtins[] = +@@ -173,11 +178,19 @@ char *posix_builtins[] = (char *)NULL }; @@ -43,13 +52,14 @@ diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c /* Forward declarations. */ static int is_special_builtin (); static int is_assignment_builtin (); + static int is_localvar_builtin (); static int is_posix_builtin (); +static int is_requires_builtin (); #if !defined (HAVE_RENAME) static int rename (); -@@ -812,6 +826,9 @@ builtin_handler (self, defs, arg) - new->flags |= BUILTIN_FLAG_ASSIGNMENT; +@@ -831,6 +844,9 @@ builtin_handler (self, defs, arg) + new->flags |= BUILTIN_FLAG_LOCALVAR; if (is_posix_builtin (name)) new->flags |= BUILTIN_FLAG_POSIX_BUILTIN; + if (is_requires_builtin (name)) @@ -58,21 +68,22 @@ diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c array_add ((char *)new, defs->builtins); building_builtin = 1; -@@ -1229,11 +1246,12 @@ write_builtins (defs, structfile, extern +@@ -1250,12 +1266,13 @@ write_builtins (defs, structfile, externfile) else fprintf (structfile, "(sh_builtin_func_t *)0x0, "); -- fprintf (structfile, "%s%s%s%s, %s_doc,\n", -+ fprintf (structfile, "%s%s%s%s%s, %s_doc,\n", +- fprintf (structfile, "%s%s%s%s%s, %s_doc,\n", ++ fprintf (structfile, "%s%s%s%s%s%s, %s_doc,\n", "BUILTIN_ENABLED | STATIC_BUILTIN", (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "", + (builtin->flags & BUILTIN_FLAG_LOCALVAR) ? " | LOCALVAR_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "", + (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "", document_name (builtin)); - if (inhibit_functions) -@@ -1581,6 +1599,13 @@ is_posix_builtin (name) + /* Don't translate short document summaries that are identical +@@ -1645,6 +1662,13 @@ is_posix_builtin (name) return (_find_in_table (name, posix_builtins)); } @@ -86,10 +97,11 @@ diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c #if !defined (HAVE_RENAME) static int rename (from, to) -diff -up bash-4.1/doc/bash.1.requires bash-4.1/doc/bash.1 ---- bash-4.1/doc/bash.1.requires 2010-08-02 17:42:41.000000000 +0200 -+++ bash-4.1/doc/bash.1 2010-08-02 18:09:27.000000000 +0200 -@@ -231,6 +231,14 @@ The shell becomes restricted (see +diff --git a/doc/bash.1 b/doc/bash.1 +index 9a7a384..1c738bb 100644 +--- a/doc/bash.1 ++++ b/doc/bash.1 +@@ -238,6 +238,14 @@ The shell becomes restricted (see .B "RESTRICTED SHELL" below). .TP @@ -102,12 +114,13 @@ diff -up bash-4.1/doc/bash.1.requires bash-4.1/doc/bash.1 +builtin are not parsed so some dependencies may be missed. +.TP .B \-\-verbose - Equivalent to \fB\-v\fP. + Equivalent to \fB\-v\fP. .TP -diff -up bash-4.1/doc/bashref.texi.requires bash-4.1/doc/bashref.texi ---- bash-4.1/doc/bashref.texi.requires 2010-08-02 17:42:41.000000000 +0200 -+++ bash-4.1/doc/bashref.texi 2010-08-02 18:11:58.000000000 +0200 -@@ -5343,6 +5343,13 @@ standard. @xref{Bash POSIX Mode}, for a +diff --git a/doc/bashref.texi b/doc/bashref.texi +index c0f4a2f..8e30d4f 100644 +--- a/doc/bashref.texi ++++ b/doc/bashref.texi +@@ -6243,6 +6243,13 @@ standard. @xref{Bash POSIX Mode}, for a description of the Bash @item --restricted Make the shell a restricted shell (@pxref{The Restricted Shell}). @@ -121,18 +134,19 @@ diff -up bash-4.1/doc/bashref.texi.requires bash-4.1/doc/bashref.texi @item --verbose Equivalent to @option{-v}. Print shell input lines as they're read. -diff -up bash-4.1/eval.c.requires bash-4.1/eval.c ---- bash-4.1/eval.c.requires 2009-01-04 20:32:26.000000000 +0100 -+++ bash-4.1/eval.c 2010-08-02 17:42:41.000000000 +0200 -@@ -53,6 +53,7 @@ extern int last_command_exit_value, stdi - extern int need_here_doc; +diff --git a/eval.c b/eval.c +index db863e7..5a5af32 100644 +--- a/eval.c ++++ b/eval.c +@@ -56,6 +56,7 @@ extern int need_here_doc; extern int current_command_number, current_command_line_count, line_number; extern int expand_aliases; + extern char *ps0_prompt; +extern int rpm_requires; #if defined (HAVE_POSIX_SIGNALS) extern sigset_t top_level_mask; -@@ -136,7 +137,7 @@ reader_loop () +@@ -148,7 +149,7 @@ reader_loop () if (read_command () == 0) { @@ -141,10 +155,11 @@ diff -up bash-4.1/eval.c.requires bash-4.1/eval.c { last_command_exit_value = EXECUTION_SUCCESS; dispose_command (global_command); -diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c ---- bash-4.1/execute_cmd.c.requires 2010-08-02 17:42:41.000000000 +0200 -+++ bash-4.1/execute_cmd.c 2010-08-02 17:42:41.000000000 +0200 -@@ -503,6 +503,8 @@ async_redirect_stdin () +diff --git a/execute_cmd.c b/execute_cmd.c +index 2a3df6d..2e3fb0c 100644 +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -529,6 +529,8 @@ async_redirect_stdin () #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0) @@ -153,7 +168,7 @@ diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c /* Execute the command passed in COMMAND, perhaps doing it asynchronously. COMMAND is exactly what read_command () places into GLOBAL_COMMAND. ASYNCHROUNOUS, if non-zero, says to do this command in the background. -@@ -534,7 +536,13 @@ execute_command_internal (command, async +@@ -561,7 +563,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, if (breaking || continuing) return (last_command_exit_value); @@ -168,7 +183,7 @@ diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c return (EXECUTION_SUCCESS); QUIT; -@@ -5066,7 +5074,7 @@ execute_intern_function (name, function) +@@ -5609,7 +5617,7 @@ execute_intern_function (name, funcdef) if (check_identifier (name, posixly_correct) == 0) { @@ -177,9 +192,10 @@ diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c { last_command_exit_value = EX_BADUSAGE; jump_to_top_level (ERREXIT); -diff -up bash-4.1/execute_cmd.h.requires bash-4.1/execute_cmd.h ---- bash-4.1/execute_cmd.h.requires 2009-01-16 22:20:15.000000000 +0100 -+++ bash-4.1/execute_cmd.h 2010-08-02 17:42:41.000000000 +0200 +diff --git a/execute_cmd.h b/execute_cmd.h +index 62bec82..d42dc85 100644 +--- a/execute_cmd.h ++++ b/execute_cmd.h @@ -22,6 +22,8 @@ #define _EXECUTE_CMD_H_ @@ -187,11 +203,12 @@ diff -up bash-4.1/execute_cmd.h.requires bash-4.1/execute_cmd.h +#include "variables.h" +#include "command.h" - extern struct fd_bitmap *new_fd_bitmap __P((int)); - extern void dispose_fd_bitmap __P((struct fd_bitmap *)); -diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c ---- bash-4.1/make_cmd.c.requires 2009-09-11 23:26:12.000000000 +0200 -+++ bash-4.1/make_cmd.c 2010-08-02 17:42:41.000000000 +0200 + #if defined (ARRAY_VARS) + struct func_array_state +diff --git a/make_cmd.c b/make_cmd.c +index b42e9ff..95ec723 100644 +--- a/make_cmd.c ++++ b/make_cmd.c @@ -42,11 +42,15 @@ #include "flags.h" #include "make_cmd.h" @@ -208,18 +225,21 @@ diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c #if defined (JOB_CONTROL) #include "jobs.h" -@@ -56,6 +60,10 @@ - +@@ -57,9 +61,13 @@ extern int line_number, current_command_line_count, parser_state; extern int last_command_exit_value; + extern int shell_initialized; +extern int rpm_requires; -+ + + int here_doc_first_line = 0; + +static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - ++ /* Object caching */ sh_obj_cache_t wdcache = {0, 0, 0}; -@@ -820,6 +828,27 @@ make_coproc_command (name, command) + sh_obj_cache_t wlcache = {0, 0, 0}; +@@ -839,6 +847,27 @@ make_coproc_command (name, command) return (make_command (cm_coproc, (SIMPLE_COM *)temp)); } @@ -247,7 +267,7 @@ diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c /* Reverse the word list and redirection list in the simple command has just been parsed. It seems simpler to do this here the one time then by any other method that I can think of. */ -@@ -837,6 +866,27 @@ clean_simple_command (command) +@@ -856,6 +885,27 @@ clean_simple_command (command) REVERSE_LIST (command->value.Simple->redirects, REDIRECT *); } @@ -275,12 +295,13 @@ diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c parser_state &= ~PST_REDIRLIST; return (command); } -diff -up bash-4.1/shell.c.requires bash-4.1/shell.c ---- bash-4.1/shell.c.requires 2010-08-02 17:42:41.000000000 +0200 -+++ bash-4.1/shell.c 2010-08-02 17:42:41.000000000 +0200 -@@ -193,6 +193,9 @@ int have_devfd = 0; +diff --git a/shell.c b/shell.c +index 45b77f9..b43de50 100644 +--- a/shell.c ++++ b/shell.c +@@ -201,6 +201,9 @@ int have_devfd = 0; /* The name of the .(shell)rc file. */ - static char *bashrc_file = "~/.bashrc"; + static char *bashrc_file = DEFAULT_BASHRC; +/* Non-zero if we are finding the scripts requirements. */ +int rpm_requires; @@ -288,7 +309,7 @@ diff -up bash-4.1/shell.c.requires bash-4.1/shell.c /* Non-zero means to act more like the Bourne shell on startup. */ static int act_like_sh; -@@ -251,6 +254,7 @@ static const struct { +@@ -264,6 +267,7 @@ static const struct { { "protected", Int, &protected_mode, (char **)0x0 }, #endif { "rcfile", Charp, (int *)0x0, &bashrc_file }, @@ -296,7 +317,7 @@ diff -up bash-4.1/shell.c.requires bash-4.1/shell.c #if defined (RESTRICTED_SHELL) { "restricted", Int, &restricted, (char **)0x0 }, #endif -@@ -485,6 +489,12 @@ main (argc, argv, env) +@@ -500,6 +504,12 @@ main (argc, argv, env) if (dump_translatable_strings) read_but_dont_execute = 1; diff --git a/bash/patches/bash43-001 b/bash/patches/bash43-001 deleted file mode 100644 index ea1c6b265..000000000 --- a/bash/patches/bash43-001 +++ /dev/null @@ -1,58 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-001 - -Bug-Reported-by: NBaH -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html - -Bug-Description: - -A missing check for a valid option prevented `test -R' from working. There -is another problem that causes bash to look up the wrong variable name when -processing the argument to `test -R'. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500 ---- test.c 2014-02-28 21:22:44.000000000 -0500 -*************** -*** 647,652 **** - - case 'R': -! v = find_variable (arg); -! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE); - } - ---- 647,652 ---- - - case 'R': -! v = find_variable_noref (arg); -! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE); - } - -*************** -*** 724,727 **** ---- 724,728 ---- - case 'u': case 'v': case 'w': case 'x': case 'z': - case 'G': case 'L': case 'O': case 'S': case 'N': -+ case 'R': - return (1); - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 0 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-002 b/bash/patches/bash43-002 deleted file mode 100644 index 735b7b81a..000000000 --- a/bash/patches/bash43-002 +++ /dev/null @@ -1,62 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-002 - -Bug-Reported-by: Moe Tunes -Bug-Reference-ID: <53103F49.3070100@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html - -Bug-Description: - -A change to save state while running the DEBUG trap caused pipelines to hang -on systems which need process group synchronization while building pipelines. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500 ---- trap.c 2014-02-28 09:51:43.000000000 -0500 -*************** -*** 921,925 **** - - #if defined (JOB_CONTROL) -! save_pipeline (1); /* XXX only provides one save level */ - #endif - ---- 921,926 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! save_pipeline (1); /* XXX only provides one save level */ - #endif - -*************** -*** 941,945 **** - - #if defined (JOB_CONTROL) -! restore_pipeline (1); - #endif - ---- 942,947 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! restore_pipeline (1); - #endif - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-003 b/bash/patches/bash43-003 deleted file mode 100644 index 0f32f410d..000000000 --- a/bash/patches/bash43-003 +++ /dev/null @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-003 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-004 b/bash/patches/bash43-004 deleted file mode 100644 index 010f04a2a..000000000 --- a/bash/patches/bash43-004 +++ /dev/null @@ -1,47 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-004 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-005 b/bash/patches/bash43-005 deleted file mode 100644 index bcd40697c..000000000 --- a/bash/patches/bash43-005 +++ /dev/null @@ -1,63 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-005 - -Bug-Reported-by: David Sines -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html - -Bug-Description: - -When in Posix mode, bash did not correctly interpret the ANSI-C-style -$'...' quoting mechanism when performing pattern substitution word -expansions within double quotes. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-07 20:57:15.000000000 -0500 -*************** -*** 3399,3403 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 3399,3403 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** ../bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500 ---- y.tab.c 2014-03-28 10:41:15.000000000 -0400 -*************** -*** 5711,5715 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 5711,5715 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-006 b/bash/patches/bash43-006 deleted file mode 100644 index 24ff057a5..000000000 --- a/bash/patches/bash43-006 +++ /dev/null @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-006 - -Bug-Reported-by: Eduardo A . Bustamante Lopez -Bug-Reference-ID: <20140228170013.GA16015@dualbus.me> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html - -Bug-Description: - -A shell that started with job control active but was not interactive left -the terminal in the wrong process group when exiting, causing its parent -shell to get a stop signal when it attempted to read from the terminal. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500 ---- jobs.c 2014-03-02 18:05:09.000000000 -0500 -*************** -*** 4375,4379 **** - end_job_control () - { -! if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); ---- 4375,4379 ---- - end_job_control () - { -! if (interactive_shell || job_control) /* XXX - should it be just job_control? */ - { - terminate_stopped_jobs (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-007 b/bash/patches/bash43-007 deleted file mode 100644 index 0d62c9ec6..000000000 --- a/bash/patches/bash43-007 +++ /dev/null @@ -1,50 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-007 - -Bug-Reported-by: geir.hauge@gmail.com -Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html - -Bug-Description: - -Using compound assignments for associative arrays like - -assoc=( [x]= [y]=bar ) - -left the value corresponding to the key `x' NULL. This caused subsequent -lookups to interpret it as unset. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400 ---- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400 -*************** -*** 598,601 **** ---- 598,606 ---- - { - val = expand_assignment_string_to_string (val, 0); -+ if (val == 0) -+ { -+ val = (char *)xmalloc (1); -+ val[0] = '\0'; /* like do_assignment_internal */ -+ } - free_val = 1; - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-008 b/bash/patches/bash43-008 deleted file mode 100644 index 0ae7c9522..000000000 --- a/bash/patches/bash43-008 +++ /dev/null @@ -1,188 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-008 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: <20140318135901.GB22158@chaz.gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html - -Bug-Description: - -Some extended glob patterns incorrectly matched filenames with a leading -dot, regardless of the setting of the `dotglob' option. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400 ---- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400 -*************** -*** 211,214 **** ---- 211,215 ---- - case '!': - case '@': -+ case '?': - return (pat[1] == LPAREN); - default: -*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500 ---- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400 -*************** -*** 180,202 **** - int flags; - { -! char *pp, *pe, *t; -! int n, r; - - pp = pat + 2; -! pe = pp + strlen (pp) - 1; /*(*/ -! if (*pe != ')') -! return 0; -! if ((t = strchr (pp, '|')) == 0) /* easy case first */ - { - *pe = '\0'; - r = skipname (pp, dname, flags); /*(*/ - *pe = ')'; - return r; - } - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; - r = skipname (pp, dname, flags); - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ ---- 180,215 ---- - int flags; - { -! char *pp, *pe, *t, *se; -! int n, r, negate; - -+ negate = *pat == '!'; - pp = pat + 2; -! se = pp + strlen (pp) - 1; /* end of string */ -! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ -! /* we should check for invalid extglob pattern here */ -! /* if pe != se we have more of the pattern at the end of the extglob -! pattern. Check the easy case first ( */ -! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0) - { - *pe = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); /*(*/ -+ #endif - *pe = ')'; - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); -+ #endif - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ -*************** -*** 205,219 **** - } /*(*/ - -! if (pp == pe) /* glob_patscan might find end of pattern */ - return r; - -! *pe = '\0'; -! # if defined (HANDLE_MULTIBYTE) -! r = mbskipname (pp, dname, flags); /*(*/ -! # else -! r = skipname (pp, dname, flags); /*(*/ -! # endif -! *pe = ')'; -! return r; - } - #endif ---- 218,227 ---- - } /*(*/ - -! /* glob_patscan might find end of pattern */ -! if (pp == se) - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - } - #endif -*************** -*** 278,289 **** - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n; -! int r; - - pp = pat + 2; -! pe = pp + wcslen (pp) - 1; /*(*/ -! if (*pe != L')') -! return 0; -! if ((t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; ---- 286,298 ---- - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n, *se; -! int r, negate; - -+ negate = *pat == L'!'; - pp = pat + 2; -! se = pp + wcslen (pp) - 1; /*(*/ -! pe = glob_patscan_wc (pp, se, 0); -! -! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; -*************** -*** 292,295 **** ---- 301,306 ---- - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan_wc (pp, pe, '|')) - { -*************** -*** 306,313 **** - return r; - -! *pe = L'\0'; -! r = wchkname (pp, dname); /*(*/ -! *pe = L')'; -! return r; - #else - return (wchkname (pat, dname)); ---- 317,322 ---- - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - #else - return (wchkname (pat, dname)); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-009 b/bash/patches/bash43-009 deleted file mode 100644 index 015835cde..000000000 --- a/bash/patches/bash43-009 +++ /dev/null @@ -1,64 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-009 - -Bug-Reported-by: Matthias Klose -Bug-Reference-ID: <53346FC8.6090005@debian.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html - -Bug-Description: - -There is a problem with unsigned sign extension when attempting to reallocate -the input line when it is fewer than 3 characters long and there has been a -history expansion. The sign extension causes the shell to not reallocate the -line, which results in a segmentation fault when it writes past the end. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-27 16:33:29.000000000 -0400 -*************** -*** 2425,2429 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 2425,2429 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** ../bash-4.3-patched/y.tab.c 2014-03-28 11:17:06.000000000 -0400 ---- y.tab.c 2014-04-07 11:48:31.000000000 -0400 -*************** -*** 4737,4741 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 4737,4741 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-010 b/bash/patches/bash43-010 deleted file mode 100644 index 835a96ead..000000000 --- a/bash/patches/bash43-010 +++ /dev/null @@ -1,157 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-010 - -Bug-Reported-by: Albert Shih -Bug-Reference-ID: Wed, 5 Mar 2014 23:01:40 +0100 -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html - -Bug-Description: - -Patch (apply with `patch -p0'): - -This patch changes the behavior of programmable completion to compensate -for two assumptions made by the bash-completion package. Bash-4.3 changed -to dequote the argument to programmable completion only under certain -circumstances, to make the behavior of compgen more consistent when run -from the command line -- closer to the behavior when run by a shell function -run as part of programmable completion. Bash-completion can pass quoted -arguments to compgen when the original word to be completed was not quoted, -expecting programmable completion to dequote the word before attempting -completion. - -This patch fixes two cases: - -1. An empty string that bash-completion passes to compgen as a quoted null - string (''). - -2. An unquoted word that bash-completion quotes using single quotes or - backslashes before passing it to compgen. - -In these cases, since readline did not detect a quote character in the original -word to be completed, bash-4.3 - -*** ../bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500 ---- externs.h 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 325,328 **** ---- 325,329 ---- - extern char *sh_backslash_quote_for_double_quotes __P((char *)); - extern int sh_contains_shell_metas __P((char *)); -+ extern int sh_contains_quotes __P((char *)); - - /* declarations for functions defined in lib/sh/spell.c */ -*** ../bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400 ---- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 312,313 **** ---- 312,327 ---- - return (0); - } -+ -+ int -+ sh_contains_quotes (string) -+ char *string; -+ { -+ char *s; -+ -+ for (s = string; s && *s; s++) -+ { -+ if (*s == '\'' || *s == '"' || *s == '\\') -+ return 1; -+ } -+ return 0; -+ } -*** ../bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400 ---- pcomplete.c 2014-03-25 17:23:23.000000000 -0400 -*************** -*** 184,187 **** ---- 184,188 ---- - COMPSPEC *pcomp_curcs; - const char *pcomp_curcmd; -+ const char *pcomp_curtxt; - - #ifdef DEBUG -*************** -*** 754,757 **** ---- 755,784 ---- - dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - } -+ /* Intended to solve a mismatched assumption by bash-completion. If -+ the text to be completed is empty, but bash-completion turns it into -+ a quoted string ('') assuming that this code will dequote it before -+ calling readline, do the dequoting. */ -+ else if (iscompgen && iscompleting && -+ pcomp_curtxt && *pcomp_curtxt == 0 && -+ text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 && -+ rl_filename_dequoting_function) -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); -+ /* Another mismatched assumption by bash-completion. If compgen is being -+ run as part of bash-completion, and the argument to compgen is not -+ the same as the word originally passed to the programmable completion -+ code, dequote the argument if it has quote characters. It's an -+ attempt to detect when bash-completion is quoting its filename -+ argument before calling compgen. */ -+ /* We could check whether gen_shell_function_matches is in the call -+ stack by checking whether the gen-shell-function-matches tag is in -+ the unwind-protect stack, but there's no function to do that yet. -+ We could simply check whether we're executing in a function by -+ checking variable_context, and may end up doing that. */ -+ else if (iscompgen && iscompleting && rl_filename_dequoting_function && -+ pcomp_curtxt && text && -+ STREQ (pcomp_curtxt, text) == 0 && -+ variable_context && -+ sh_contains_quotes (text)) /* guess */ -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - else - dfn = savestring (text); -*************** -*** 1523,1527 **** - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd; - STRINGLIST *ret; - ---- 1550,1554 ---- - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd, *oldtxt; - STRINGLIST *ret; - -*************** -*** 1546,1552 **** ---- 1573,1581 ---- - oldcs = pcomp_curcs; - oldcmd = pcomp_curcmd; -+ oldtxt = pcomp_curtxt; - - pcomp_curcs = cs; - pcomp_curcmd = cmd; -+ pcomp_curtxt = word; - - ret = gen_compspec_completions (cs, cmd, word, start, end, foundp); -*************** -*** 1554,1557 **** ---- 1583,1587 ---- - pcomp_curcs = oldcs; - pcomp_curcmd = oldcmd; -+ pcomp_curtxt = oldtxt; - - /* We need to conditionally handle setting *retryp here */ -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-011 b/bash/patches/bash43-011 deleted file mode 100644 index cdc1572ee..000000000 --- a/bash/patches/bash43-011 +++ /dev/null @@ -1,49 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-011 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html - -Bug-Description: - -The signal handling changes to bash and readline (to avoid running any code -in a signal handler context) cause the cursor to be placed on the wrong -line of a multi-line command after a ^C interrupts editing. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500 ---- lib/readline/display.c 2014-03-27 11:52:45.000000000 -0400 -*************** -*** 2678,2682 **** - if (_rl_echoing_p) - { -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); ---- 2678,2683 ---- - if (_rl_echoing_p) - { -! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-012 b/bash/patches/bash43-012 deleted file mode 100644 index 176fa15bd..000000000 --- a/bash/patches/bash43-012 +++ /dev/null @@ -1,43 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-012 - -Bug-Reported-by: Eduardo A. Bustamante López -Bug-Reference-ID: <5346B54C.4070205@case.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html - -Bug-Description: - -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. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/jobs.c 2014-03-28 10:54:19.000000000 -0400 ---- jobs.c 2014-04-15 08:47:03.000000000 -0400 -*************** -*** 3598,3601 **** ---- 3598,3602 ---- - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); -+ unwind_protect_pointer (this_shell_builtin); - - /* We have to add the commands this way because they will be run -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-013 b/bash/patches/bash43-013 deleted file mode 100644 index 8f4006b48..000000000 --- a/bash/patches/bash43-013 +++ /dev/null @@ -1,66 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-013 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html - -Bug-Description: - -Using reverse-i-search when horizontal scrolling is enabled does not redisplay -the entire line containing the successful search results. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400 ---- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400 -*************** -*** 1638,1642 **** - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { ---- 1638,1642 ---- - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ - current_invis_chars != visible_wrap_offset) - { -*************** -*** 1826,1831 **** - _rl_last_c_pos += bytes_to_insert; - - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! goto clear_rest_of_line; - } - } ---- 1826,1836 ---- - _rl_last_c_pos += bytes_to_insert; - -+ /* XXX - we only want to do this if we are at the end of the line -+ so we move there with _rl_move_cursor_relative */ - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! { -! _rl_move_cursor_relative (ne-new, new); -! goto clear_rest_of_line; -! } - } - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-014 b/bash/patches/bash43-014 deleted file mode 100644 index f8371967f..000000000 --- a/bash/patches/bash43-014 +++ /dev/null @@ -1,102 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-014 - -Bug-Reported-by: Greg Wooledge -Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html - -Bug-Description: - -Under certain circumstances, $@ is expanded incorrectly in contexts where -word splitting is not performed. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/subst.c 2014-01-23 16:26:37.000000000 -0500 ---- subst.c 2014-04-19 15:41:26.000000000 -0400 -*************** -*** 3249,3254 **** ---- 3249,3256 ---- - return ((char *)NULL); - -+ expand_no_split_dollar_star = 1; - w->flags |= W_NOSPLIT2; - l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); -+ expand_no_split_dollar_star = 0; - if (l) - { -*************** -*** 7848,7851 **** ---- 7850,7857 ---- - according to POSIX.2, this expands to a list of the positional - parameters no matter what IFS is set to. */ -+ /* XXX - what to do when in a context where word splitting is not -+ performed? Even when IFS is not the default, posix seems to imply -+ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2 -+ here. */ - temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted); - -*************** -*** 8817,8820 **** ---- 8823,8827 ---- - { - char *ifs_chars; -+ char *tstring; - - ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL; -*************** -*** 8831,8834 **** ---- 8838,8865 ---- - if (split_on_spaces) - list = list_string (istring, " ", 1); /* XXX quoted == 1? */ -+ /* If we have $@ (has_dollar_at != 0) and we are in a context where we -+ don't want to split the result (W_NOSPLIT2), and we are not quoted, -+ we have already separated the arguments with the first character of -+ $IFS. In this case, we want to return a list with a single word -+ with the separator possibly replaced with a space (it's what other -+ shells seem to do). -+ quoted_dollar_at is internal to this function and is set if we are -+ passed an argument that is unquoted (quoted == 0) but we encounter a -+ double-quoted $@ while expanding it. */ -+ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2)) -+ { -+ /* Only split and rejoin if we have to */ -+ if (*ifs_chars && *ifs_chars != ' ') -+ { -+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -+ tstring = string_list (list); -+ } -+ else -+ tstring = istring; -+ tword = make_bare_word (tstring); -+ if (tstring != istring) -+ free (tstring); -+ goto set_word_flags; -+ } - else if (has_dollar_at && ifs_chars) - list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -*************** -*** 8836,8839 **** ---- 8867,8871 ---- - { - tword = make_bare_word (istring); -+ set_word_flags: - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) - tword->flags |= W_QUOTED; -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-015 b/bash/patches/bash43-015 deleted file mode 100644 index 9c4e5ea48..000000000 --- a/bash/patches/bash43-015 +++ /dev/null @@ -1,58 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-015 - -Bug-Reported-by: Clark Wang -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html - -Bug-Description: - -When completing directory names, the directory name is dequoted twice. -This causes problems for directories with single and double quotes in -their names. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/bashline.c 2014-02-09 19:56:58.000000000 -0500 ---- bashline.c 2014-04-25 14:57:52.000000000 -0400 -*************** -*** 4168,4174 **** - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! dfn = bash_dequote_filename ((char *)text, qc); - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! free (dfn); - - if (m1 == 0 || m1[0] == 0) ---- 4209,4222 ---- - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! /* If rl_completion_found_quote != 0, rl_completion_matches will call the -! filename dequoting function, causing the directory name to be dequoted -! twice. */ -! if (rl_dispatching && rl_completion_found_quote == 0) -! dfn = bash_dequote_filename ((char *)text, qc); -! else -! dfn = (char *)text; - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! if (dfn != text) -! free (dfn); - - if (m1 == 0 || m1[0] == 0) -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-016 b/bash/patches/bash43-016 deleted file mode 100644 index 882d5939b..000000000 --- a/bash/patches/bash43-016 +++ /dev/null @@ -1,132 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-016 - -Bug-Reported-by: Pierre Gaston -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html - -Bug-Description: - -An extended glob pattern containing a slash (`/') causes the globbing code -to misinterpret it as a directory separator. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400 -*************** -*** 124,127 **** ---- 124,129 ---- - extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int)); - -+ extern char *glob_dirscan __P((char *, int)); -+ - /* Compile `glob_loop.c' for single-byte characters. */ - #define CHAR unsigned char -*************** -*** 188,191 **** ---- 190,196 ---- - pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ - /* we should check for invalid extglob pattern here */ -+ if (pe == 0) -+ return 0; -+ - /* if pe != se we have more of the pattern at the end of the extglob - pattern. Check the easy case first ( */ -*************** -*** 1016,1020 **** - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname; - unsigned int directory_len; - int free_dirname; /* flag */ ---- 1021,1025 ---- - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname, *fn; - unsigned int directory_len; - int free_dirname; /* flag */ -*************** -*** 1032,1035 **** ---- 1037,1052 ---- - /* Find the filename. */ - filename = strrchr (pathname, '/'); -+ #if defined (EXTENDED_GLOB) -+ if (filename && extended_glob) -+ { -+ fn = glob_dirscan (pathname, '/'); -+ #if DEBUG_MATCHING -+ if (fn != filename) -+ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename); -+ #endif -+ filename = fn; -+ } -+ #endif -+ - if (filename == NULL) - { -*** ../bash-4.3-patched/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400 -*************** -*** 43,46 **** ---- 43,48 ---- - #define WRPAREN L')' - -+ extern char *glob_patscan __P((char *, char *, int)); -+ - /* Return 1 of the first character of WSTRING could match the first - character of pattern WPAT. Wide character version. */ -*************** -*** 376,377 **** ---- 378,410 ---- - return matlen; - } -+ -+ /* Skip characters in PAT and return the final occurrence of DIRSEP. This -+ is only called when extended_glob is set, so we have to skip over extglob -+ patterns x(...) */ -+ char * -+ glob_dirscan (pat, dirsep) -+ char *pat; -+ int dirsep; -+ { -+ char *p, *d, *pe, *se; -+ -+ d = pe = se = 0; -+ for (p = pat; p && *p; p++) -+ { -+ if (extglob_pattern_p (p)) -+ { -+ if (se == 0) -+ se = p + strlen (p) - 1; -+ pe = glob_patscan (p + 2, se, 0); -+ if (pe == 0) -+ continue; -+ else if (*pe == 0) -+ break; -+ p = pe - 1; /* will do increment above */ -+ continue; -+ } -+ if (*p == dirsep) -+ d = p; -+ } -+ return d; -+ } - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-017 b/bash/patches/bash43-017 deleted file mode 100644 index 4016fb934..000000000 --- a/bash/patches/bash43-017 +++ /dev/null @@ -1,51 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-017 - -Bug-Reported-by: Dan Douglas -Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html - -Bug-Description: - -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. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/variables.c 2014-02-14 11:55:12.000000000 -0500 ---- variables.c 2014-05-07 10:53:57.000000000 -0400 -*************** -*** 2198,2205 **** - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! { -! VUNSETATTR (old_var, att_invisible); /* XXX */ -! return (old_var); -! } - - was_tmpvar = old_var && tempvar_p (old_var); ---- 2260,2264 ---- - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! return (old_var); - - was_tmpvar = old_var && tempvar_p (old_var); - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-018 b/bash/patches/bash43-018 deleted file mode 100644 index 39499f663..000000000 --- a/bash/patches/bash43-018 +++ /dev/null @@ -1,44 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-018 - -Bug-Reported-by: Geir Hauge -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html - -Bug-Description: - -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. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400 ---- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400 -*************** -*** 180,183 **** ---- 180,184 ---- - FREE (newval); - -+ VUNSETATTR (entry, att_invisible); /* no longer invisible */ - return (entry); - } - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-019 b/bash/patches/bash43-019 deleted file mode 100644 index a93714beb..000000000 --- a/bash/patches/bash43-019 +++ /dev/null @@ -1,84 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-019 - -Bug-Reported-by: John Lenton -Bug-Reference-ID: -Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 - -Bug-Description: - -The -t timeout option to `read' does not work when the -e option is used. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/input.c 2014-01-10 15:07:08.000000000 -0500 ---- lib/readline/input.c 2014-05-22 18:40:59.000000000 -0400 -*************** -*** 535,540 **** ---- 538,551 ---- - else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) - return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); -+ /* keyboard-generated signals of interest */ - else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) - RL_CHECK_SIGNALS (); -+ /* non-keyboard-generated signals of interest */ -+ else if (_rl_caught_signal == SIGALRM -+ #if defined (SIGVTALRM) -+ || _rl_caught_signal == SIGVTALRM -+ #endif -+ ) -+ RL_CHECK_SIGNALS (); - - if (rl_signal_event_hook) -*** ../bash-4.3-patched/builtins/read.def 2013-09-02 11:54:00.000000000 -0400 ---- builtins/read.def 2014-05-08 11:43:35.000000000 -0400 -*************** -*** 443,447 **** - #if defined (READLINE) - if (edit) -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); - #endif - falarm (tmsec, tmusec); ---- 443,450 ---- - #if defined (READLINE) - if (edit) -! { -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); -! add_unwind_protect (bashline_reset_event_hook, (char *)NULL); -! } - #endif - falarm (tmsec, tmusec); -*************** -*** 1022,1025 **** ---- 1025,1029 ---- - old_attempted_completion_function = rl_attempted_completion_function; - rl_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_set_event_hook (); - if (itext) - { -*************** -*** 1033,1036 **** ---- 1037,1041 ---- - rl_attempted_completion_function = old_attempted_completion_function; - old_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_reset_event_hook (); - - if (ret == 0) -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-020 b/bash/patches/bash43-020 deleted file mode 100644 index 5f533ef8d..000000000 --- a/bash/patches/bash43-020 +++ /dev/null @@ -1,110 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-020 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html - -Bug-Description: - -When PS2 contains a command substitution, here-documents entered in an -interactive shell can sometimes cause a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/shell.h 2012-12-25 21:11:01.000000000 -0500 ---- shell.h 2014-06-03 09:24:28.000000000 -0400 -*************** -*** 169,173 **** - int expand_aliases; - int echo_input_at_read; -! - } sh_parser_state_t; - ---- 169,174 ---- - int expand_aliases; - int echo_input_at_read; -! int need_here_doc; -! - } sh_parser_state_t; - -*** ../bash-4.3-patched/parse.y 2014-05-14 09:16:40.000000000 -0400 ---- parse.y 2014-04-30 09:27:59.000000000 -0400 -*************** -*** 2643,2647 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 2643,2647 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 6076,6079 **** ---- 6076,6080 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 6124,6127 **** ---- 6125,6129 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** ../bash-4.3-patched/y.tab.c 2014-04-07 11:56:12.000000000 -0400 ---- y.tab.c 2014-07-30 09:55:57.000000000 -0400 -*************** -*** 4955,4959 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 5151,5155 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 8388,8391 **** ---- 8584,8588 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 8436,8439 **** ---- 8633,8637 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-021 b/bash/patches/bash43-021 deleted file mode 100644 index fd1c945ec..000000000 --- a/bash/patches/bash43-021 +++ /dev/null @@ -1,52 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-021 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html - -Bug-Description: - -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. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400 ---- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400 -*************** -*** 462,465 **** ---- 462,466 ---- - /* Set up rl_line_buffer and other variables from history entry */ - rl_replace_from_history (entry, 0); /* entry->line is now current */ -+ entry->data = 0; /* entry->data is now current undo list */ - /* Undo all changes to this history entry */ - while (rl_undo_list) -*************** -*** 469,473 **** - FREE (entry->line); - entry->line = savestring (rl_line_buffer); -- entry->data = 0; - } - entry = previous_history (); ---- 470,473 ---- - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-022 b/bash/patches/bash43-022 deleted file mode 100644 index 7ce39ec0a..000000000 --- a/bash/patches/bash43-022 +++ /dev/null @@ -1,56 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-022 - -Bug-Reported-by: scorp.dev.null@gmail.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html - -Bug-Description: - -Using nested pipelines within loops with the `lastpipe' option set can result -in a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500 ---- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 -*************** -*** 2410,2414 **** - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! exec_result = job_exit_status (lastpipe_jid); - #endif - unfreeze_jobs_list (); ---- 2425,2438 ---- - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! /* If wait_for removes the job from the jobs table, use result of last -! command as pipeline's exit status as usual. The jobs list can get -! frozen and unfrozen at inconvenient times if there are multiple pipelines -! running simultaneously. */ -! if (INVALID_JOB (lastpipe_jid) == 0) -! exec_result = job_exit_status (lastpipe_jid); -! else if (pipefail_opt) -! exec_result = exec_result | lstdin; /* XXX */ -! /* otherwise we use exec_result */ -! - #endif - unfreeze_jobs_list (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-023 b/bash/patches/bash43-023 deleted file mode 100644 index d1e4e9d7c..000000000 --- a/bash/patches/bash43-023 +++ /dev/null @@ -1,104 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-023 - -Bug-Reported-by: Tim Friske -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00056.html - -Bug-Description: - -Bash does not correctly parse process substitution constructs that contain -unbalanced parentheses as part of the contained command. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/subst.h 2014-01-11 21:02:27.000000000 -0500 ---- subst.h 2014-07-20 17:25:01.000000000 -0400 -*************** -*** 83,87 **** - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *)); - #endif /* PROCESS_SUBSTITUTION */ - ---- 83,87 ---- - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *, int)); - #endif /* PROCESS_SUBSTITUTION */ - -*** ../bash-4.3-patched/subst.c 2014-05-15 08:26:45.000000000 -0400 ---- subst.c 2014-07-20 17:26:44.000000000 -0400 -*************** -*** 1193,1202 **** - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex) - char *string; - char *starter; - int *sindex; - { - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); - } - #endif /* PROCESS_SUBSTITUTION */ ---- 1193,1208 ---- - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex, xflags) - char *string; - char *starter; - int *sindex; -+ int xflags; - { -+ #if 0 - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); -+ #else -+ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); -+ return (xparse_dolparen (string, string+*sindex, sindex, xflags)); -+ #endif - } - #endif /* PROCESS_SUBSTITUTION */ -*************** -*** 1786,1790 **** - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); - free (temp); /* no SX_ALLOC here */ - i = si; ---- 1792,1796 ---- - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si, 0); - free (temp); /* no SX_ALLOC here */ - i = si; -*************** -*** 8250,8254 **** - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/ - sindex = t_index; - ---- 8256,8260 ---- - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/ - sindex = t_index; - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-024 b/bash/patches/bash43-024 deleted file mode 100644 index a24b8fbbc..000000000 --- a/bash/patches/bash43-024 +++ /dev/null @@ -1,54 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-024 - -Bug-Reported-by: Corentin Peuvrel -Bug-Reference-ID: <53CE9E5D.6050203@pom-monitoring.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html - -Bug-Description: - -Indirect variable references do not work correctly if the reference -variable expands to an array reference using a subscript other than 0 -(e.g., foo='bar[1]' ; echo ${!foo}). - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/subst.c 2014-06-03 09:32:44.000000000 -0400 ---- subst.c 2014-07-23 09:58:19.000000000 -0400 -*************** -*** 7375,7379 **** - - if (want_indir) -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); ---- 7445,7455 ---- - - if (want_indir) -! { -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); -! /* Turn off the W_ARRAYIND flag because there is no way for this function -! to return the index we're supposed to be using. */ -! if (tdesc && tdesc->flags) -! tdesc->flags &= ~W_ARRAYIND; -! } - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-025 b/bash/patches/bash43-025 deleted file mode 100644 index 721aca030..000000000 --- a/bash/patches/bash43-025 +++ /dev/null @@ -1,123 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-025 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -Under certain circumstances, bash will execute user code while processing the -environment for exported function definitions. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/builtins/common.h 2013-07-08 16:54:47.000000000 -0400 ---- builtins/common.h 2014-09-12 14:25:47.000000000 -0400 -*************** -*** 34,37 **** ---- 49,54 ---- - #define SEVAL_PARSEONLY 0x020 - #define SEVAL_NOLONGJMP 0x040 -+ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ -+ #define SEVAL_ONECMD 0x100 /* only allow a single command */ - - /* Flags for describe_command, shared between type.def and command.def */ -*** ../bash-4.3-patched/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500 ---- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400 -*************** -*** 309,312 **** ---- 313,324 ---- - struct fd_bitmap *bitmap; - -+ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) -+ { -+ internal_warning ("%s: ignoring function definition attempt", from_file); -+ should_jump_to_top_level = 0; -+ last_result = last_command_exit_value = EX_BADUSAGE; -+ break; -+ } -+ - bitmap = new_fd_bitmap (FD_BITMAP_SIZE); - begin_unwind_frame ("pe_dispose"); -*************** -*** 369,372 **** ---- 381,387 ---- - dispose_fd_bitmap (bitmap); - discard_unwind_frame ("pe_dispose"); -+ -+ if (flags & SEVAL_ONECMD) -+ break; - } - } -*** ../bash-4.3-patched/variables.c 2014-05-15 08:26:50.000000000 -0400 ---- variables.c 2014-09-14 14:23:35.000000000 -0400 -*************** -*** 359,369 **** - strcpy (temp_string + char_index + 1, string); - -! if (posixly_correct == 0 || legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); -! -! /* Ancient backwards compatibility. Old versions of bash exported -! functions like name()=() {...} */ -! if (name[char_index - 1] == ')' && name[char_index - 2] == '(') -! name[char_index - 2] = '\0'; - - if (temp_var = find_function (name)) ---- 364,372 ---- - strcpy (temp_string + char_index + 1, string); - -! /* Don't import function names that are invalid identifiers from the -! environment, though we still allow them to be defined as shell -! variables. */ -! if (legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - - if (temp_var = find_function (name)) -*************** -*** 382,389 **** - report_error (_("error importing function definition for `%s'"), name); - } -- -- /* ( */ -- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') -- name[char_index - 2] = '('; /* ) */ - } - #if defined (ARRAY_VARS) ---- 385,388 ---- -*** ../bash-4.3-patched/subst.c 2014-08-11 11:16:35.000000000 -0400 ---- subst.c 2014-09-12 15:31:04.000000000 -0400 -*************** -*** 8048,8052 **** - goto return0; - } -! else if (var = find_variable_last_nameref (temp1)) - { - temp = nameref_cell (var); ---- 8118,8124 ---- - goto return0; - } -! else if (var && (invisible_p (var) || var_isset (var) == 0)) -! temp = (char *)NULL; -! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0) - { - temp = nameref_cell (var); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/bash/patches/bash43-026 b/bash/patches/bash43-026 deleted file mode 100644 index d5d5b1dd0..000000000 --- a/bash/patches/bash43-026 +++ /dev/null @@ -1,60 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-026 - -Bug-Reported-by: Tavis Ormandy -Bug-Reference-ID: -Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929 - -Bug-Description: - -Under certain circumstances, bash can incorrectly save a lookahead character and -return it on a subsequent call, even when reading a new line. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3.25/parse.y 2014-07-30 10:14:31.000000000 -0400 ---- parse.y 2014-09-25 20:20:21.000000000 -0400 -*************** -*** 2954,2957 **** ---- 2954,2959 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*** ../bash-4.3.25/y.tab.c 2014-07-30 10:14:32.000000000 -0400 ---- y.tab.c 2014-09-25 20:21:48.000000000 -0400 -*************** -*** 5266,5269 **** ---- 5266,5271 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*************** -*** 8540,8542 **** - } - #endif /* HANDLE_MULTIBYTE */ -- ---- 8542,8543 ---- -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 26 - - #endif /* _PATCHLEVEL_H_ */