diff --git a/patches/apk-tools-2.6.6.local.patch b/patches/apk-tools-2.6.6.local.patch deleted file mode 100644 index a520370..0000000 --- a/patches/apk-tools-2.6.6.local.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- apk-tools-2.6.6/src/apk.c.orig 2016-02-09 15:57:53.000000000 +0100 -+++ apk-tools-2.6.6/src/apk.c 2016-03-09 10:24:39.763540600 +0100 -@@ -425,12 +425,15 @@ - - static void apk_applet_register_builtin(void) - { -+#if 0 - extern apk_init_func_t __start_initapplets[], __stop_initapplets[]; - apk_init_func_t *p; - - list_init(&apk_applet_list); - for (p = __start_initapplets; p < __stop_initapplets; p++) - (*p)(); -+#endif -+ list_init(&apk_applet_list); - } - - int main(int argc, char **argv) ---- apk-tools-2.6.6/Make.rules.orig 2016-02-09 15:57:53.000000000 +0100 -+++ apk-tools-2.6.6/Make.rules 2016-03-09 10:44:12.457459300 +0100 -@@ -70,7 +70,7 @@ - INSTALLDIR := $(INSTALL) -d - - CFLAGS ?= -g -O2 --CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC -+CFLAGS_ALL := -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC - CFLAGS_ALL += $(CFLAGS) - - LDFLAGS ?= -g ---- apk-tools-2.6.6/src/Makefile.orig 2016-02-09 15:57:53.000000000 +0100 -+++ apk-tools-2.6.6/src/Makefile 2016-11-16 13:49:33.370051100 +0100 -@@ -6,7 +6,7 @@ - ifneq ($(LUAAPK),) - LUA_VERSION ?= 5.2 - LUA_PC ?= lua$(LUA_VERSION) --LUA_LIBDIR ?= /usr/lib/lua/$(LUA_VERSION) -+LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION) - LIBAPK := YesPlease - shlibs-y += apk.so - apk.so-objs := lua-apk.o -@@ -66,7 +66,7 @@ - LDFLAGS_apk-test += -L$(obj) - - CFLAGS_ALL += $(shell $(PKG_CONFIG) --cflags $(PKGDEPS)) --LIBS := /usr/lib/libfetch.a \ -+LIBS := $(PREFIX)/lib/libfetch.a \ - -Wl,--as-needed \ - $(shell $(PKG_CONFIG) --libs $(PKGDEPS)) \ - -Wl,--no-as-needed diff --git a/patches/apk-tools-2.6.8.local.patch b/patches/apk-tools-2.6.8.local.patch new file mode 100644 index 0000000..5119a82 --- /dev/null +++ b/patches/apk-tools-2.6.8.local.patch @@ -0,0 +1,47 @@ +--- apk-tools-2.6.8/Make.rules.orig 2016-10-25 10:06:30.000000000 +0200 ++++ apk-tools-2.6.8/Make.rules 2016-12-17 21:23:39.261695200 +0100 +@@ -70,7 +70,7 @@ + INSTALLDIR := $(INSTALL) -d + + CFLAGS ?= -g -O2 +-CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC ++CFLAGS_ALL := -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC + CFLAGS_ALL += $(CFLAGS) + + LDFLAGS ?= -g +--- apk-tools-2.6.8/src/apk.c.orig 2016-10-25 10:06:30.000000000 +0200 ++++ apk-tools-2.6.8/src/apk.c 2016-12-17 21:22:30.592520300 +0100 +@@ -428,12 +428,15 @@ + + static void apk_applet_register_builtin(void) + { ++#if 0 + extern apk_init_func_t __start_initapplets[], __stop_initapplets[]; + apk_init_func_t *p; + + list_init(&apk_applet_list); + for (p = __start_initapplets; p < __stop_initapplets; p++) + (*p)(); ++#endif ++ list_init(&apk_applet_list); + } + + int main(int argc, char **argv) +--- apk-tools-2.6.8/src/Makefile.orig 2016-10-25 10:06:30.000000000 +0200 ++++ apk-tools-2.6.8/src/Makefile 2016-12-17 21:25:34.221413300 +0100 +@@ -7,13 +7,13 @@ + ZLIB_CFLAGS := $(shell $(PKG_CONFIG) --cflags zlib) + ZLIB_LIBS := $(shell $(PKG_CONFIG) --libs zlib) + +-FETCH_LIBS := $(shell $(CC) -print-file-name=libfetch.a) ++FETCH_LIBS := $(shell $(CC) -print-file-name=$(PREFIX)/lib/libfetch.a) + + # lua module + ifneq ($(LUAAPK),) + LUA_VERSION ?= 5.2 + LUA_PC ?= lua$(LUA_VERSION) +-LUA_LIBDIR ?= /usr/lib/lua/$(LUA_VERSION) ++LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION) + LIBAPK := YesPlease + shlibs-y += apk.so + apk.so-objs := lua-apk.o diff --git a/patches/bash-4.3.local.patch b/patches/bash-4.3.local.patch deleted file mode 100644 index 995f7a7..0000000 --- a/patches/bash-4.3.local.patch +++ /dev/null @@ -1,7885 +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_ */ - 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_ */ - 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_ */ - 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_ */ - 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_ */ - 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_ */ - 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_ */ - 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_ */ - 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/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/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_ */ - 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_ */ - 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/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_ */ - 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/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_ */ - 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/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_ */ - 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/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_ */ - 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/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_ */ - 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/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/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_ */ - 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/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_ */ - 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/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_ */ - 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/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/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_ */ - 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/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/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/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_ */ - 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/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_ */ - 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/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_ */ - 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/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/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_ */ - 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/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_ */ - 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/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/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/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/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_ */ - 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/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/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_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-027 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -This patch changes the encoding bash uses for exported functions to avoid -clashes with shell variables and to avoid depending only on an environment -variable's contents to determine whether or not to interpret it as a shell -function. - -Patch (apply with `patch -p0'): - -*** bash-4.3/variables.c 2014-09-25 23:02:18.000000000 -0400 ---- variables.c 2014-09-27 20:52:04.000000000 -0400 -*************** -*** 84,87 **** ---- 84,92 ---- - #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') - -+ #define BASHFUNC_PREFIX "BASH_FUNC_" -+ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ -+ #define BASHFUNC_SUFFIX "%%" -+ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ -+ - extern char **environ; - -*************** -*** 280,284 **** - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); ---- 285,289 ---- - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *, int)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); -*************** -*** 350,369 **** - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) - { - string_length = strlen (string); -! temp_string = (char *)xmalloc (3 + string_length + char_index); - -! strcpy (temp_string, name); -! temp_string[char_index] = ' '; -! 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)) - { - VSETATTR (temp_var, (att_exported|att_imported)); ---- 355,385 ---- - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && -! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && -! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && -! STREQN ("() {", string, 4)) - { -+ size_t namelen; -+ char *tname; /* desired imported function name */ -+ -+ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; -+ -+ tname = name + BASHFUNC_PREFLEN; /* start of func name */ -+ tname[namelen] = '\0'; /* now tname == func name */ -+ - string_length = strlen (string); -! temp_string = (char *)xmalloc (namelen + string_length + 2); - -! memcpy (temp_string, tname, namelen); -! temp_string[namelen] = ' '; -! memcpy (temp_string + namelen + 1, string, string_length + 1); - - /* Don't import function names that are invalid identifiers from the - environment, though we still allow them to be defined as shell - variables. */ -! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname))) -! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - -! if (temp_var = find_function (tname)) - { - VSETATTR (temp_var, (att_exported|att_imported)); -*************** -*** 378,383 **** - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), name); - } - } - #if defined (ARRAY_VARS) ---- 394,402 ---- - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), tname); - } -+ -+ /* Restore original suffix */ -+ tname[namelen] = BASHFUNC_SUFFIX[0]; - } - #if defined (ARRAY_VARS) -*************** -*** 2955,2959 **** - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value); - - array_needs_making = 1; ---- 2974,2978 ---- - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value, 0); - - array_needs_making = 1; -*************** -*** 3853,3871 **** - - static inline char * -! mk_env_string (name, value) - const char *name, *value; - { -! int name_len, value_len; -! char *p; - - name_len = strlen (name); - value_len = STRLEN (value); -! p = (char *)xmalloc (2 + name_len + value_len); -! strcpy (p, name); -! p[name_len] = '='; - if (value && *value) -! strcpy (p + name_len + 1, value); - else -! p[name_len + 1] = '\0'; - return (p); - } ---- 3872,3911 ---- - - static inline char * -! mk_env_string (name, value, isfunc) - const char *name, *value; -+ int isfunc; - { -! size_t name_len, value_len; -! char *p, *q; - - name_len = strlen (name); - value_len = STRLEN (value); -! -! /* If we are exporting a shell function, construct the encoded function -! name. */ -! if (isfunc && value) -! { -! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2); -! q = p; -! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); -! q += BASHFUNC_PREFLEN; -! memcpy (q, name, name_len); -! q += name_len; -! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); -! q += BASHFUNC_SUFFLEN; -! } -! else -! { -! p = (char *)xmalloc (2 + name_len + value_len); -! memcpy (p, name, name_len); -! q = p + name_len; -! } -! -! q[0] = '='; - if (value && *value) -! memcpy (q + 1, value, value_len + 1); - else -! q[1] = '\0'; -! - return (p); - } -*************** -*** 3953,3957 **** - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value); - - if (USE_EXPORTSTR == 0) ---- 3993,3997 ---- - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value, function_p (var)); - - if (USE_EXPORTSTR == 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 26 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 27 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-028 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are two local buffer overflows in parse.y that can cause the shell -to dump core when given many here-documents attached to a single command -or many nested loops. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-09-25 23:02:35.000000000 -0400 ---- parse.y 2014-09-29 16:47:03.000000000 -0400 -*************** -*** 169,172 **** ---- 169,175 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 266,270 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 269,275 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 308,312 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 313,317 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 521,525 **** - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS WORD ---- 526,530 ---- - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS WORD -*************** -*** 528,532 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS WORD ---- 533,537 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS WORD -*************** -*** 535,539 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_MINUS WORD ---- 540,544 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_MINUS WORD -*************** -*** 542,546 **** - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS_MINUS WORD ---- 547,551 ---- - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS_MINUS WORD -*************** -*** 549,553 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS_MINUS WORD ---- 554,558 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS_MINUS WORD -*************** -*** 556,560 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_LESS WORD ---- 561,565 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_LESS WORD -*************** -*** 2637,2640 **** ---- 2642,2660 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*** bash-4.3/y.tab.c 2014-10-01 11:38:24.000000000 -0400 ---- y.tab.c 2014-10-01 12:46:11.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/homes/chet/src/bash/src/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" -*************** -*** 320,323 **** ---- 320,326 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 417,421 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 420,426 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 459,463 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 464,468 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 493,497 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 324 "/usr/homes/chet/src/bash/src/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 504,508 **** - } - /* Line 193 of yacc.c. */ -! #line 507 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ ---- 509,513 ---- - } - /* Line 193 of yacc.c. */ -! #line 512 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ -*************** -*** 517,521 **** - - /* Line 216 of yacc.c. */ -! #line 520 "y.tab.c" - - #ifdef short ---- 522,526 ---- - - /* Line 216 of yacc.c. */ -! #line 525 "y.tab.c" - - #ifdef short -*************** -*** 887,907 **** - static const yytype_uint16 yyrline[] = - { -! 0, 377, 377, 388, 397, 412, 422, 424, 428, 434, -! 440, 446, 452, 458, 464, 470, 476, 482, 488, 494, -! 500, 506, 512, 518, 525, 532, 539, 546, 553, 560, -! 566, 572, 578, 584, 590, 596, 602, 608, 614, 620, -! 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, -! 686, 692, 700, 702, 704, 708, 712, 723, 725, 729, -! 731, 733, 749, 751, 755, 757, 759, 761, 763, 765, -! 767, 769, 771, 773, 775, 779, 784, 789, 794, 799, -! 804, 809, 814, 821, 826, 831, 836, 843, 848, 853, -! 858, 863, 868, 875, 880, 885, 892, 895, 898, 902, -! 904, 935, 942, 947, 964, 969, 986, 993, 995, 997, -! 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, 1029, -! 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, 1053, -! 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, 1100, -! 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, 1130, -! 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, 1200, -! 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276 - }; - #endif ---- 892,912 ---- - static const yytype_uint16 yyrline[] = - { -! 0, 382, 382, 393, 402, 417, 427, 429, 433, 439, -! 445, 451, 457, 463, 469, 475, 481, 487, 493, 499, -! 505, 511, 517, 523, 530, 537, 544, 551, 558, 565, -! 571, 577, 583, 589, 595, 601, 607, 613, 619, 625, -! 631, 637, 643, 649, 655, 661, 667, 673, 679, 685, -! 691, 697, 705, 707, 709, 713, 717, 728, 730, 734, -! 736, 738, 754, 756, 760, 762, 764, 766, 768, 770, -! 772, 774, 776, 778, 780, 784, 789, 794, 799, 804, -! 809, 814, 819, 826, 831, 836, 841, 848, 853, 858, -! 863, 868, 873, 880, 885, 890, 897, 900, 903, 907, -! 909, 940, 947, 952, 969, 974, 991, 998, 1000, 1002, -! 1007, 1011, 1015, 1019, 1021, 1023, 1027, 1028, 1032, 1034, -! 1036, 1038, 1042, 1044, 1046, 1048, 1050, 1052, 1056, 1058, -! 1067, 1075, 1076, 1082, 1083, 1090, 1094, 1096, 1098, 1105, -! 1107, 1109, 1113, 1114, 1117, 1119, 1121, 1125, 1126, 1135, -! 1148, 1164, 1179, 1181, 1183, 1190, 1193, 1197, 1199, 1205, -! 1211, 1228, 1248, 1250, 1273, 1277, 1279, 1281 - }; - #endif -*************** -*** 2094,2098 **** - { - case 2: -! #line 378 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2108,2112 **** - - case 3: -! #line 389 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2120,2124 **** - - case 4: -! #line 398 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2138,2142 **** - - case 5: -! #line 413 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2149,2163 **** - - case 6: -! #line 423 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 425 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 429 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2168,2172 **** - - case 9: -! #line 435 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2177,2181 **** - - case 10: -! #line 441 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2186,2190 **** - - case 11: -! #line 447 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2195,2199 **** - - case 12: -! #line 453 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2204,2208 **** - - case 13: -! #line 459 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2213,2217 **** - - case 14: -! #line 465 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2222,2226 **** - - case 15: -! #line 471 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2231,2235 **** - - case 16: -! #line 477 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2240,2244 **** - - case 17: -! #line 483 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2249,2253 **** - - case 18: -! #line 489 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2258,2262 **** - - case 19: -! #line 495 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2267,2271 **** - - case 20: -! #line 501 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2276,2280 **** - - case 21: -! #line 507 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2285,2289 **** - - case 22: -! #line 513 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2294,2358 **** - - case 23: -! #line 519 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 24: -! #line 526 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 25: -! #line 533 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 26: -! #line 540 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 27: -! #line 547 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 28: -! #line 554 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 29: -! #line 561 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2299,2363 ---- - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2363,2367 **** - - case 30: -! #line 567 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2372,2376 **** - - case 31: -! #line 573 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2381,2385 **** - - case 32: -! #line 579 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2390,2394 **** - - case 33: -! #line 585 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2399,2403 **** - - case 34: -! #line 591 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2408,2412 **** - - case 35: -! #line 597 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2417,2421 **** - - case 36: -! #line 603 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2426,2430 **** - - case 37: -! #line 609 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2435,2439 **** - - case 38: -! #line 615 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2444,2448 **** - - case 39: -! #line 621 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2453,2457 **** - - case 40: -! #line 627 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2462,2466 **** - - case 41: -! #line 633 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2471,2475 **** - - case 42: -! #line 639 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2480,2484 **** - - case 43: -! #line 645 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2489,2493 **** - - case 44: -! #line 651 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2498,2502 **** - - case 45: -! #line 657 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2507,2511 **** - - case 46: -! #line 663 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2516,2520 **** - - case 47: -! #line 669 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2525,2529 **** - - case 48: -! #line 675 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2534,2538 **** - - case 49: -! #line 681 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2543,2547 **** - - case 50: -! #line 687 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2552,2556 **** - - case 51: -! #line 693 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2561,2580 **** - - case 52: -! #line 701 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 703 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 705 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 709 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2583,2587 **** - - case 56: -! #line 713 "/usr/homes/chet/src/bash/src/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; -*************** -*** 2595,2619 **** - - case 57: -! #line 724 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 726 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 730 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 732 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 734 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2634,2703 **** - - case 62: -! #line 750 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 752 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 756 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 758 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 760 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 762 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 764 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 766 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 768 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 770 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 772 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 774 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 776 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 780 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2707,2711 **** - - case 76: -! #line 785 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2715,2719 **** - - case 77: -! #line 790 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2723,2727 **** - - case 78: -! #line 795 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2731,2735 **** - - case 79: -! #line 800 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2739,2743 **** - - case 80: -! #line 805 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2747,2751 **** - - case 81: -! #line 810 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2755,2759 **** - - case 82: -! #line 815 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2763,2767 **** - - case 83: -! #line 822 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2771,2775 **** - - case 84: -! #line 827 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2779,2783 **** - - case 85: -! #line 832 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2787,2791 **** - - case 86: -! #line 837 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2795,2799 **** - - case 87: -! #line 844 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2803,2807 **** - - case 88: -! #line 849 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2811,2815 **** - - case 89: -! #line 854 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2819,2823 **** - - case 90: -! #line 859 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2827,2831 **** - - case 91: -! #line 864 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2835,2839 **** - - case 92: -! #line 869 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2843,2847 **** - - case 93: -! #line 876 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2851,2855 **** - - case 94: -! #line 881 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2859,2863 **** - - case 95: -! #line 886 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2867,2891 **** - - case 96: -! #line 893 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 896 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 899 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 903 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 905 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2919,2923 **** - - case 101: -! #line 936 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2927,2931 **** - - case 102: -! #line 943 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2935,2939 **** - - case 103: -! #line 948 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2955,2959 **** - - case 104: -! #line 965 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2963,2967 **** - - case 105: -! #line 970 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2983,2987 **** - - case 106: -! #line 987 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2991,3105 **** - - case 107: -! #line 994 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 996 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 998 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1003 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1007 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1011 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1015 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1017 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1019 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1024 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1028 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1030 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1032 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1034 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1038 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1040 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1042 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1044 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1046 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1048 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1052 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1054 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1063 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3110,3114 **** - - case 132: -! #line 1072 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3117,3121 **** - - case 134: -! #line 1079 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3127,3141 **** - - case 136: -! #line 1090 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1092 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1094 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3147,3181 **** - - case 139: -! #line 1101 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1103 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1105 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1113 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1115 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1117 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1131 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3193,3197 **** - - case 150: -! #line 1144 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3212,3216 **** - - case 151: -! #line 1160 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3228,3242 **** - - case 152: -! #line 1175 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1177 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1179 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3248,3267 **** - - case 155: -! #line 1186 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1189 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1193 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1195 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3272,3276 **** - - case 159: -! #line 1201 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3281,3285 **** - - case 160: -! #line 1207 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3301,3305 **** - - case 161: -! #line 1224 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3322,3331 **** - - case 162: -! #line 1244 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1246 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3353,3372 **** - - case 164: -! #line 1269 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1273 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1275 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1277 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3374,3378 **** - - /* Line 1267 of yacc.c. */ -! #line 3377 "y.tab.c" - default: break; - } ---- 3379,3383 ---- - - /* Line 1267 of yacc.c. */ -! #line 3382 "y.tab.c" - default: break; - } -*************** -*** 3588,3592 **** - - -! #line 1279 "/usr/homes/chet/src/bash/src/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - -*************** -*** 4949,4952 **** ---- 4954,4972 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*************** -*** 8542,8543 **** ---- 8562,8564 ---- - } - #endif /* HANDLE_MULTIBYTE */ -+ -*** 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 27 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 28 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-029 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -When bash is parsing a function definition that contains a here-document -delimited by end-of-file (or end-of-string), it leaves the closing delimiter -uninitialized. This can result in an invalid memory access when the parsed -function is later copied. - -Patch (apply with `patch -p0'): - -*** bash-4.3/make_cmd.c 2011-12-16 08:08:01.000000000 -0500 ---- make_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 693,696 **** ---- 693,697 ---- - temp->redirector = source; - temp->redirectee = dest_and_filename; -+ temp->here_doc_eof = 0; - temp->instruction = instruction; - temp->flags = 0; -*** bash-4.3/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400 ---- copy_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 127,131 **** - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); - /*FALLTHROUGH*/ - case r_reading_string: ---- 127,131 ---- - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0; - /*FALLTHROUGH*/ - case r_reading_string: -*** 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 28 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 29 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-030 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -A combination of nested command substitutions and function importing from -the environment can cause bash to execute code appearing in the environment -variable value following the function definition. - -Patch (apply with `patch -p0'): - -*** bash-4.3/builtins/evalstring.c 2014-10-01 12:57:47.000000000 -0400 ---- builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400 -*************** -*** 309,318 **** - 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; - } - ---- 313,335 ---- - struct fd_bitmap *bitmap; - -! if (flags & SEVAL_FUNCDEF) - { -! char *x; -! -! /* If the command parses to something other than a straight -! function definition, or if we have not consumed the entire -! string, or if the parser has transformed the function -! name (as parsing will if it begins or ends with shell -! whitespace, for example), reject the attempt */ -! if (command->type != cm_function_def || -! ((x = parser_remaining_input ()) && *x) || -! (STREQ (from_file, command->value.Function_def->name->word) == 0)) -! { -! internal_warning (_("%s: ignoring function definition attempt"), from_file); -! should_jump_to_top_level = 0; -! last_result = last_command_exit_value = EX_BADUSAGE; -! reset_parser (); -! break; -! } - } - -*************** -*** 379,383 **** - - if (flags & SEVAL_ONECMD) -! break; - } - } ---- 396,403 ---- - - if (flags & SEVAL_ONECMD) -! { -! reset_parser (); -! break; -! } - } - } -*** bash-4.3/parse.y 2014-10-01 12:58:43.000000000 -0400 ---- parse.y 2014-10-03 14:48:59.000000000 -0400 -*************** -*** 2539,2542 **** ---- 2539,2552 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 4028,4033 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 4053,4058 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** bash-4.3/shell.h 2014-10-01 12:57:39.000000000 -0400 ---- shell.h 2014-10-03 14:49:12.000000000 -0400 -*************** -*** 181,184 **** ---- 181,186 ---- - - /* Let's try declaring these here. */ -+ extern char *parser_remaining_input __P((void)); -+ - extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); - extern void restore_parser_state __P((sh_parser_state_t *)); -*** bash-4.3/y.tab.c 2014-10-01 13:09:46.000000000 -0400 ---- y.tab.c 2014-10-04 19:26:22.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - #include "config.h" -*************** -*** 498,502 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 2099,2103 **** - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2113,2117 **** - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2125,2129 **** - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2143,2147 **** - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2154,2168 **** - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2173,2177 **** - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2182,2186 **** - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2191,2195 **** - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2200,2204 **** - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2209,2213 **** - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2218,2222 **** - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2227,2231 **** - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2236,2240 **** - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2245,2249 **** - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2254,2258 **** - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2263,2267 **** - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2272,2276 **** - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2281,2285 **** - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2290,2294 **** - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2299,2303 **** - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2299,2303 ---- - - case 23: -! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2309,2313 **** - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2309,2313 ---- - - case 24: -! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2319,2323 **** - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2319,2323 ---- - - case 25: -! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2329,2333 **** - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2329,2333 ---- - - case 26: -! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2339,2343 **** - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2339,2343 ---- - - case 27: -! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2349,2353 **** - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2349,2353 ---- - - case 28: -! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2359,2363 **** - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2359,2363 ---- - - case 29: -! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2368,2372 **** - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2377,2381 **** - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2386,2390 **** - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2395,2399 **** - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2404,2408 **** - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2413,2417 **** - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2422,2426 **** - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2431,2435 **** - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2440,2444 **** - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2449,2453 **** - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2458,2462 **** - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2467,2471 **** - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2476,2480 **** - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2485,2489 **** - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2494,2498 **** - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2503,2507 **** - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2512,2516 **** - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2521,2525 **** - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2530,2534 **** - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2539,2543 **** - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2548,2552 **** - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2557,2561 **** - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2566,2585 **** - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2588,2592 **** - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - register REDIRECT *t; -*************** -*** 2600,2624 **** - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2639,2708 **** - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2712,2716 **** - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2720,2724 **** - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2728,2732 **** - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2736,2740 **** - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2744,2748 **** - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2752,2756 **** - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2760,2764 **** - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2768,2772 **** - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2776,2780 **** - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2784,2788 **** - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2792,2796 **** - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2800,2804 **** - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2808,2812 **** - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2816,2820 **** - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2824,2828 **** - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2832,2836 **** - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2840,2844 **** - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2848,2852 **** - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2856,2860 **** - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2864,2868 **** - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2872,2896 **** - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2924,2928 **** - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2932,2936 **** - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2940,2944 **** - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2960,2964 **** - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2968,2972 **** - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2988,2992 **** - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2996,3110 **** - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3115,3119 **** - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3122,3126 **** - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3132,3146 **** - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3152,3186 **** - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3198,3202 **** - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3217,3221 **** - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3233,3247 **** - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3253,3272 **** - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3277,3281 **** - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3286,3290 **** - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3306,3310 **** - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3327,3336 **** - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3358,3377 **** - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3593,3597 **** - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - -*************** -*** 4851,4854 **** ---- 4851,4864 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 6340,6345 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 6350,6355 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** 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 29 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 30 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-031 - -Bug-Reported-by: lolilolicon -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00139.html - -Bug-Description: - -The new nameref assignment functionality introduced in bash-4.3 did not perform -enough validation on the variable value and would create variables with -invalid names. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.h 2014-01-11 21:02:27.000000000 -0500 ---- subst.h 2014-09-01 12:16:56.000000000 -0400 -*************** -*** 48,51 **** ---- 48,52 ---- - #define ASS_MKGLOBAL 0x0008 /* force global assignment */ - #define ASS_NAMEREF 0x0010 /* assigning to nameref variable */ -+ #define ASS_FROMREF 0x0020 /* assigning from value of nameref variable */ - - /* Flags for the string extraction functions. */ -*** bash-4.3/variables.c 2014-05-15 08:26:50.000000000 -0400 ---- variables.c 2014-09-01 14:37:44.000000000 -0400 -*************** -*** 2504,2511 **** - int hflags, aflags; - { -! char *newval; - SHELL_VAR *entry; - - entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); - /* Follow the nameref chain here if this is the global variables table */ - if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) ---- 2566,2590 ---- - int hflags, aflags; - { -! char *newname, *newval; - SHELL_VAR *entry; -+ #if defined (ARRAY_VARS) -+ arrayind_t ind; -+ char *subp; -+ int sublen; -+ #endif - -+ newname = 0; -+ #if defined (ARRAY_VARS) -+ if ((aflags & ASS_FROMREF) && (hflags & HASH_NOSRCH) == 0 && valid_array_reference (name)) -+ { -+ newname = array_variable_name (name, &subp, &sublen); -+ if (newname == 0) -+ return (SHELL_VAR *)NULL; /* XXX */ -+ entry = hash_lookup (newname, table); -+ } -+ else -+ #endif - entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); -+ - /* Follow the nameref chain here if this is the global variables table */ - if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) -*************** -*** 2538,2541 **** ---- 2617,2630 ---- - } - } -+ #if defined (ARRAY_VARS) -+ else if (entry == 0 && newname) -+ { -+ entry = make_new_array_variable (newname); /* indexed array by default */ -+ if (entry == 0) -+ return entry; -+ ind = array_expand_index (name, subp, sublen); -+ bind_array_element (entry, ind, value, aflags); -+ } -+ #endif - else if (entry == 0) - { -*************** -*** 2658,2662 **** - if (nameref_cell (nv) == 0) - return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); -! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags)); - } - else ---- 2747,2752 ---- - if (nameref_cell (nv) == 0) - return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); -! /* XXX - bug here with ref=array[index] */ -! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF)); - } - else -*** 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 30 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 31 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-032 - -Bug-Reported-by: crispusfairbairn@gmail.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00013.html - -Bug-Description: - -When bash is running in Posix mode, it allows signals -- including SIGCHLD -- -to interrupt the `wait' builtin, as Posix requires. However, the interrupt -causes bash to not run a SIGCHLD trap for all exited children. This patch -fixes the issue and restores the documented behavior in Posix mode. - -Patch (apply with `patch -p0'): - -*** bash-4.3/jobs.c 2014-05-14 09:20:15.000000000 -0400 ---- jobs.c 2014-09-09 11:50:38.000000000 -0400 -*************** -*** 3340,3344 **** - { - interrupt_immediately = 0; -! trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */ - wait_signal_received = SIGCHLD; - /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; ---- 3346,3352 ---- - { - interrupt_immediately = 0; -! /* This was trap_handler (SIGCHLD) but that can lose traps if -! children_exited > 1 */ -! queue_sigchld_trap (children_exited); - wait_signal_received = SIGCHLD; - /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; -*** 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 31 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 32 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-033 - -Bug-Reported-by: mickael9@gmail.com, Jan Rome -Bug-Reference-ID: <20140907224046.382ED3610CC@mickael-laptop.localdomain>, - <540D661D.50908@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00029.html - http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00030.html - -Bug-Description: - -Bash does not clean up the terminal state in all cases where bash or -readline modifies it and bash is subsequently terminated by a fatal signal. -This happens when the `read' builtin modifies the terminal settings, both -when readline is active and when it is not. It occurs most often when a script -installs a trap that exits on a signal without re-sending the signal to itself. - -Patch (apply with `patch -p0'): - -*** bash-4.3/shell.c 2014-01-14 08:04:32.000000000 -0500 ---- shell.c 2014-12-22 10:27:50.000000000 -0500 -*************** -*** 74,77 **** ---- 74,78 ---- - - #if defined (READLINE) -+ # include - # include "bashline.h" - #endif -*************** -*** 910,913 **** ---- 912,923 ---- - fflush (stderr); - -+ /* Clean up the terminal if we are in a state where it's been modified. */ -+ #if defined (READLINE) -+ if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function) -+ (*rl_deprep_term_function) (); -+ #endif -+ if (read_tty_modified ()) -+ read_tty_cleanup (); -+ - /* Do trap[0] if defined. Allow it to override the exit status - passed to us. */ -*** bash-4.3/builtins/read.def 2014-10-01 12:57:38.000000000 -0400 ---- builtins/read.def 2014-12-22 10:48:54.000000000 -0500 -*************** -*** 141,148 **** - int sigalrm_seen; - -! static int reading; - static SigHandler *old_alrm; - static unsigned char delim; - - /* In all cases, SIGALRM just sets a flag that we check periodically. This - avoids problems with the semi-tricky stuff we do with the xfree of ---- 141,150 ---- - int sigalrm_seen; - -! static int reading, tty_modified; - static SigHandler *old_alrm; - static unsigned char delim; - -+ static struct ttsave termsave; -+ - /* In all cases, SIGALRM just sets a flag that we check periodically. This - avoids problems with the semi-tricky stuff we do with the xfree of -*************** -*** 189,193 **** - SHELL_VAR *var; - TTYSTRUCT ttattrs, ttset; -- struct ttsave termsave; - #if defined (ARRAY_VARS) - WORD_LIST *alist; ---- 191,194 ---- -*************** -*** 222,226 **** - USE_VAR(lastsig); - -! sigalrm_seen = reading = 0; - - i = 0; /* Index into the string that we are reading. */ ---- 223,227 ---- - USE_VAR(lastsig); - -! sigalrm_seen = reading = tty_modified = 0; - - i = 0; /* Index into the string that we are reading. */ -*************** -*** 439,442 **** ---- 440,445 ---- - goto assign_vars; - } -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - old_alrm = set_signal_handler (SIGALRM, sigalrm); - add_unwind_protect (reset_alarm, (char *)NULL); -*************** -*** 483,487 **** ---- 486,493 ---- - if (i < 0) - sh_ttyerror (1); -+ tty_modified = 1; - add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - } - } -*************** -*** 498,502 **** ---- 504,511 ---- - sh_ttyerror (1); - -+ tty_modified = 1; - add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - } - -*************** -*** 589,592 **** ---- 598,603 ---- - else - lastsig = 0; -+ if (terminating_signal && tty_modified) -+ ttyrestore (&termsave); /* fix terminal before exiting */ - CHECK_TERMSIG; - eof = 1; -*************** -*** 979,982 **** ---- 990,1007 ---- - { - ttsetattr (ttp->fd, ttp->attrs); -+ tty_modified = 0; -+ } -+ -+ void -+ read_tty_cleanup () -+ { -+ if (tty_modified) -+ ttyrestore (&termsave); -+ } -+ -+ int -+ read_tty_modified () -+ { -+ return (tty_modified); - } - -*** bash-4.3/builtins/common.h 2014-10-01 12:57:47.000000000 -0400 ---- builtins/common.h 2014-12-22 10:10:14.000000000 -0500 -*************** -*** 123,126 **** ---- 141,148 ---- - extern void getopts_reset __P((int)); - -+ /* Functions from read.def */ -+ extern void read_tty_cleanup __P((void)); -+ extern int read_tty_modified __P((void)); -+ - /* Functions from set.def */ - extern int minus_o_option_value __P((char *)); -*** bash-4.3/bashline.c 2014-05-14 09:22:39.000000000 -0400 ---- bashline.c 2014-09-08 11:28:56.000000000 -0400 -*************** -*** 203,206 **** ---- 203,207 ---- - extern int array_needs_making; - extern int posixly_correct, no_symbolic_links; -+ extern int sigalrm_seen; - extern char *current_prompt_string, *ps1_prompt; - extern STRING_INT_ALIST word_token_alist[]; -*************** -*** 4209,4214 **** - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. */ -! if (interrupt_state) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); ---- 4262,4268 ---- - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. The check for sigalrm_seen is -! to clean up the read builtin's state. */ -! if (terminating_signal || interrupt_state || sigalrm_seen) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); -*** bash-4.3/sig.c 2014-01-10 15:06:06.000000000 -0500 ---- sig.c 2014-09-08 11:26:33.000000000 -0400 -*************** -*** 533,538 **** - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. */ -! if (interactive_shell && interactive && no_line_editing == 0) - bashline_set_event_hook (); - #endif ---- 533,540 ---- - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. If readline is active or has modified the terminal we -! need to set this no matter what the signal is, though the check for -! RL_STATE_TERMPREPPED is possibly redundant. */ -! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED)) - bashline_set_event_hook (); - #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 32 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 33 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-034 - -Bug-Reported-by: Dreamcat4 -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-05/msg00001.html - -Bug-Description: - -If neither the -f nor -v options is supplied to unset, and a name argument is -found to be a function and unset, subsequent name arguments are not treated as -variables before attempting to unset a function by that name. - -Patch (apply with `patch -p0'): - -*** bash-4.3/builtins/set.def 2013-04-19 07:20:34.000000000 -0400 ---- builtins/set.def 2015-05-05 13:25:36.000000000 -0400 -*************** -*** 752,758 **** ---- 797,805 ---- - { - int unset_function, unset_variable, unset_array, opt, nameref, any_failed; -+ int global_unset_func, global_unset_var; - char *name; - - unset_function = unset_variable = unset_array = nameref = any_failed = 0; -+ global_unset_func = global_unset_var = 0; - - reset_internal_getopt (); -*************** -*** 762,769 **** - { - case 'f': -! unset_function = 1; - break; - case 'v': -! unset_variable = 1; - break; - case 'n': ---- 809,816 ---- - { - case 'f': -! global_unset_func = 1; - break; - case 'v': -! global_unset_var = 1; - break; - case 'n': -*************** -*** 778,782 **** - list = loptend; - -! if (unset_function && unset_variable) - { - builtin_error (_("cannot simultaneously unset a function and a variable")); ---- 825,829 ---- - list = loptend; - -! if (global_unset_func && global_unset_var) - { - builtin_error (_("cannot simultaneously unset a function and a variable")); -*************** -*** 796,799 **** ---- 843,849 ---- - name = list->word->word; - -+ unset_function = global_unset_func; -+ unset_variable = global_unset_var; -+ - #if defined (ARRAY_VARS) - unset_array = 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 33 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 34 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-035 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00045.html - -Bug-Description: - -A locale with a long name can trigger a buffer overflow and core dump. This -applies on systems that do not have locale_charset in libc, are not using -GNU libiconv, and are not using the libintl that ships with bash in lib/intl. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/sh/unicode.c 2014-01-30 16:47:19.000000000 -0500 ---- lib/sh/unicode.c 2015-05-01 08:58:30.000000000 -0400 -*************** -*** 79,83 **** - if (s) - { -! strcpy (charsetbuf, s+1); - t = strchr (charsetbuf, '@'); - if (t) ---- 79,84 ---- - if (s) - { -! strncpy (charsetbuf, s+1, sizeof (charsetbuf) - 1); -! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; - t = strchr (charsetbuf, '@'); - if (t) -*************** -*** 85,89 **** - return charsetbuf; - } -! strcpy (charsetbuf, locale); - return charsetbuf; - } ---- 86,91 ---- - return charsetbuf; - } -! strncpy (charsetbuf, locale, sizeof (charsetbuf) - 1); -! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; - return charsetbuf; - } -*** 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 34 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 35 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-036 - -Bug-Reported-by: emanuelczirai@cryptolab.net -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00071.html - -Bug-Description: - -When evaluating and setting integer variables, and the assignment fails to -create a variable (for example, when performing an operation on an array -variable with an invalid subscript), bash attempts to dereference a null -pointer, causing a segmentation violation. - -Patch (apply with `patch -p0'): - -*** bash-4.3/variables.c 2015-01-23 20:39:27.000000000 -0500 ---- variables.c 2015-02-19 13:56:12.000000000 -0500 -*************** -*** 2834,2841 **** - v = bind_variable (lhs, rhs, 0); - -! if (v && isint) -! VSETATTR (v, att_integer); -! -! VUNSETATTR (v, att_invisible); - - return (v); ---- 2834,2843 ---- - v = bind_variable (lhs, rhs, 0); - -! if (v) -! { -! if (isint) -! VSETATTR (v, att_integer); -! VUNSETATTR (v, att_invisible); -! } - - return (v); -*** 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 35 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 36 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-037 - -Bug-Reported-by: Greg Wooledge -Bug-Reference-ID: <20150204144240.GN13956@eeg.ccf.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00007.html - -Bug-Description: - -If an associative array uses `@' or `*' as a subscript, `declare -p' produces -output that cannot be reused as input. - -Patch (apply with `patch -p0'): - -*** bash-4.3/assoc.c 2011-11-05 16:39:05.000000000 -0400 ---- assoc.c 2015-02-04 15:28:25.000000000 -0500 -*************** -*** 437,440 **** ---- 440,445 ---- - if (sh_contains_shell_metas (tlist->key)) - istr = sh_double_quote (tlist->key); -+ else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0') -+ istr = sh_double_quote (tlist->key); - else - istr = tlist->key; -*** 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 36 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 37 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-038 - -Bug-Reported-by: worley@alum.mit.edu (Dale R. Worley) -Bug-Reference-ID: <201406100051.s5A0pCeB014978@hobgoblin.ariadne.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00028.html - -Bug-Description: - -There are a number of instances where `time' is not recognized as a reserved -word when the shell grammar says it should be. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-04-07 11:56:12.000000000 -0400 ---- parse.y 2014-06-11 10:25:53.000000000 -0400 -*************** -*** 2819,2827 **** - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ -! case '(': /* ) */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ ---- 2819,2832 ---- - 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 */ -*** bash-4.3/y.tab.c 2014-10-05 13:52:50.000000000 -0400 ---- y.tab.c 2015-05-19 15:08:43.000000000 -0400 -*************** -*** 5131,5139 **** - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ -! case '(': /* ) */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ ---- 5131,5144 ---- - 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 */ -*** 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 37 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 38 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-039 - -Bug-Reported-by: SN -Bug-Reference-ID: <54E2554C.205@gazeta.pl> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html - -Bug-Description: - -Using the output of `declare -p' when run in a function can result in variables -that are invisible to `declare -p'. This problem occurs when an assignment -builtin such as `declare' receives a quoted compound array assignment as one of -its arguments. - -Patch (apply with `patch -p0'): - -*** bash-4.3/arrayfunc.c 2014-10-01 13:08:48.000000000 -0400 ---- arrayfunc.c 2015-02-19 14:33:05.000000000 -0500 -*************** -*** 405,408 **** ---- 405,411 ---- - else - array_insert (a, i, l->word->word); -+ -+ VUNSETATTR (var, att_invisible); /* no longer invisible */ -+ - return var; - } -*************** -*** 635,638 **** ---- 638,645 ---- - if (nlist) - dispose_words (nlist); -+ -+ if (var) -+ VUNSETATTR (var, att_invisible); /* no longer invisible */ -+ - return (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 38 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 39 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-040 - -Bug-Reported-by: Jean Delvare -Bug-Reference-ID: <20150609180231.5f463695@endymion.delvare> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00033.html - -Bug-Description: - -There is a memory leak that occurs when bash expands an array reference on -the rhs of an assignment statement. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.c 2014-10-01 12:57:47.000000000 -0400 ---- subst.c 2015-06-22 09:16:53.000000000 -0400 -*************** -*** 5783,5787 **** - if (pflags & PF_ASSIGNRHS) - { -! temp = array_variable_name (name, &tt, (int *)0); - if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') - temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind); ---- 5783,5787 ---- - if (pflags & PF_ASSIGNRHS) - { -! var = array_variable_part (name, &tt, (int *)0); - if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') - temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &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 39 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 40 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-041 - -Bug-Reported-by: Hanno Böck -Bug-Reference-ID: <20150623131106.6f111da9@pc1>, <20150707004640.0e61d2f9@pc1> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00089.html, - http://lists.gnu.org/archive/html/bug-bash/2015-07/msg00018.html - -Bug-Description: - -There are several out-of-bounds read errors that occur when completing command -lines where assignment statements appear before the command name. The first -two appear only when programmable completion is enabled; the last one only -happens when listing possible completions. - -Patch (apply with `patch -p0'): - -*** bash-4.3/bashline.c 2014-12-29 14:39:43.000000000 -0500 ---- bashline.c 2015-08-12 10:21:58.000000000 -0400 -*************** -*** 1469,1476 **** ---- 1469,1489 ---- - os = start; - n = 0; -+ was_assignment = 0; - s = find_cmd_start (os); - e = find_cmd_end (end); - do - { -+ /* Don't read past the end of rl_line_buffer */ -+ if (s > rl_end) -+ { -+ s1 = s = e1; -+ break; -+ } -+ /* Or past point if point is within an assignment statement */ -+ else if (was_assignment && s > rl_point) -+ { -+ s1 = s = e1; -+ break; -+ } - /* Skip over assignment statements preceding a command name. If we - don't find a command name at all, we can perform command name -*** bash-4.3/lib/readline/complete.c 2013-10-14 09:27:10.000000000 -0400 ---- lib/readline/complete.c 2015-07-31 09:34:39.000000000 -0400 -*************** -*** 690,693 **** ---- 690,695 ---- - if (temp == 0 || *temp == '\0') - return (pathname); -+ else if (temp[1] == 0 && temp == pathname) -+ return (pathname); - /* If the basename is NULL, we might have a pathname like '/usr/src/'. - Look for a previous slash and, if one is found, return the portion -*** 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 40 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 41 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-042 - -Bug-Reported-by: Nathan Neulinger -Bug-Reference-ID: <558EFDF2.7060402@neulinger.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html - -Bug-Description: - -There is a problem when parsing command substitutions containing `case' -commands within pipelines that causes the parser to not correctly identify -the end of the command substitution. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2015-05-18 19:27:05.000000000 -0400 ---- parse.y 2015-06-29 10:59:27.000000000 -0400 -*************** -*** 3709,3712 **** ---- 3709,3714 ---- - tflags |= LEX_INWORD; - lex_wlen = 0; -+ if (tflags & LEX_RESWDOK) -+ lex_rwlen = 0; - } - } -*** bash-4.3/y.tab.c 2015-05-18 19:27:05.000000000 -0400 ---- y.tab.c 2015-06-29 10:59:27.000000000 -0400 -*************** -*** 6021,6024 **** ---- 6021,6026 ---- - tflags |= LEX_INWORD; - lex_wlen = 0; -+ if (tflags & LEX_RESWDOK) -+ lex_rwlen = 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 41 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 42 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-043 - -Bug-Reported-by: lolilolicon -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00040.html - -Bug-Description: - -When the lastpipe option is enabled, the last component can contain nested -pipelines and cause a segmentation fault under certain circumestances. - -Patch (apply with `patch -p0'): - -*** bash-4.3/execute_cmd.c 2014-07-30 10:26:52.000000000 -0400 ---- execute_cmd.c 2014-08-15 08:55:24.000000000 -0400 -*************** -*** 2406,2412 **** - { - #if defined (JOB_CONTROL) -! append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid); -! #endif - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) - /* If wait_for removes the job from the jobs table, use result of last ---- 2433,2447 ---- - { - #if defined (JOB_CONTROL) -! if (INVALID_JOB (lastpipe_jid) == 0) -! { -! append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid); -! lstdin = wait_for (lastpid); -! } -! else -! lstdin = wait_for_single_pid (lastpid); /* checks bgpids list */ -! #else - lstdin = wait_for (lastpid); -+ #endif -+ - #if defined (JOB_CONTROL) - /* If wait_for removes the job from the jobs table, use result of last -*** 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 42 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 43 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-044 - -Bug-Reported-by: Ondrej Oprala -Bug-Reference-ID: <539ED55B.2080103@redhat.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00046.html - -Bug-Description: - -A typo prevents the `compat42' shopt option from working as intended. - -Patch (apply with `patch -p0'): - -diff -rC 2 bash-4.3.42/builtins/shopt.def bash-4.3.43/builtins/shopt.def -*** bash-4.3.42/builtins/shopt.def 2013-02-27 09:43:20.000000000 -0500 ---- builtins/shopt.def 2015-10-16 11:25:28.000000000 -0400 -*************** -*** 161,165 **** - { "compat40", &shopt_compat40, set_compatibility_level }, - { "compat41", &shopt_compat41, set_compatibility_level }, -! { "compat42", &shopt_compat41, set_compatibility_level }, - #if defined (READLINE) - { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, ---- 161,165 ---- - { "compat40", &shopt_compat40, set_compatibility_level }, - { "compat41", &shopt_compat41, set_compatibility_level }, -! { "compat42", &shopt_compat42, set_compatibility_level }, - #if defined (READLINE) - { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, - -*** 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 43 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 44 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-045 - -Bug-Reported-by: Basin Ilya -Bug-Reference-ID: <5624C0AC.8070802@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-10/msg00141.html - -Bug-Description: - -If a file open attempted as part of a redirection fails because it is interrupted -by a signal, the shell needs to process any pending traps to allow the redirection -to be canceled. - -Patch (apply with `patch -p0'): - -*** bash-20150109/redir.c 2014-12-03 10:47:38.000000000 -0500 ---- redir.c 2015-01-16 10:15:47.000000000 -0500 -*************** -*** 672,676 **** - e = errno; - if (fd < 0 && e == EINTR) -! QUIT; - errno = e; - } ---- 672,679 ---- - e = errno; - if (fd < 0 && e == EINTR) -! { -! QUIT; -! run_pending_traps (); -! } - errno = e; - } - -*** 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 44 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 45 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-046 - -Bug-Reported-by: Sergey Tselikh -Bug-Reference-ID: <20150816110235.91f3e12e3f20d20cdaad963e@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-08/msg00080.html - -Bug-Description: - -An incorrect conversion from an indexed to associative array can result in a -core dump. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.c 2015-08-13 11:32:54.000000000 -0400 ---- subst.c 2015-08-18 10:13:59.000000000 -0400 -*************** -*** 9562,9566 **** - opts[opti] = '\0'; - if (opti > 0) -! make_internal_declare (tlist->word->word, opts); - - t = do_word_assignment (tlist->word, 0); ---- 9562,9573 ---- - opts[opti] = '\0'; - if (opti > 0) -! { -! t = make_internal_declare (tlist->word->word, opts); -! if (t != EXECUTION_SUCCESS) -! { -! last_command_exit_value = t; -! exp_jump_to_top_level (DISCARD); -! } -! } - - t = do_word_assignment (tlist->word, 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 45 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 46 - - #endif /* _PATCHLEVEL_H_ */ ---- bash-4.3/configure.orig 2014-02-11 15:38:00.000000000 +0000 -+++ bash-4.3/configure 2016-03-02 10:32:54.098832248 +0000 -@@ -2870,6 +2870,7 @@ - *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft - *-nsk*) opt_bash_malloc=no ;; # HP NonStop - *-haiku*) opt_bash_malloc=no ;; # Haiku OS -+*-midipix*) opt_bash_malloc=no ;; # Midipix - esac - - # memory scrambling on free() -@@ -5167,13 +5168,13 @@ - if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 --$as_echo_n "checking for tgetent in -lncurses... " >&6; } --if ${ac_cv_lib_ncurses_tgetent+:} false; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 -+$as_echo_n "checking for tgetent in -lncursesw... " >&6; } -+if ${ac_cv_lib_ncursesw_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lncurses $LIBS" -+LIBS="-lncursesw $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -5193,18 +5194,18 @@ - } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_ncurses_tgetent=yes -+ ac_cv_lib_ncursesw_tgetent=yes - else -- ac_cv_lib_ncurses_tgetent=no -+ ac_cv_lib_ncursesw_tgetent=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 --$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } --if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : -- bash_cv_termcap_lib=libncurses -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 -+$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } -+if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : -+ bash_cv_termcap_lib=libncursesw - else - bash_cv_termcap_lib=gnutermcap - fi -@@ -5235,8 +5236,8 @@ - elif test $bash_cv_termcap_lib = libtinfo; then - TERMCAP_LIB=-ltinfo - TERMCAP_DEP= --elif test $bash_cv_termcap_lib = libncurses; then --TERMCAP_LIB=-lncurses -+elif test $bash_cv_termcap_lib = libncursesw; then -+TERMCAP_LIB=-lncursesw - TERMCAP_DEP= - elif test $bash_cv_termcap_lib = libc; then - TERMCAP_LIB= -@@ -15708,13 +15709,13 @@ - if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 --$as_echo_n "checking for tgetent in -lncurses... " >&6; } --if ${ac_cv_lib_ncurses_tgetent+:} false; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 -+$as_echo_n "checking for tgetent in -lncursesw... " >&6; } -+if ${ac_cv_lib_ncursesw_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lncurses $LIBS" -+LIBS="-lncursesw $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -15734,18 +15735,18 @@ - } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_ncurses_tgetent=yes -+ ac_cv_lib_ncursesw_tgetent=yes - else -- ac_cv_lib_ncurses_tgetent=no -+ ac_cv_lib_ncursesw_tgetent=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 --$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } --if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : -- bash_cv_termcap_lib=libncurses -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 -+$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } -+if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : -+ bash_cv_termcap_lib=libncursesw - else - bash_cv_termcap_lib=gnutermcap - fi -@@ -15776,8 +15777,8 @@ - elif test $bash_cv_termcap_lib = libtinfo; then - TERMCAP_LIB=-ltinfo - TERMCAP_DEP= --elif test $bash_cv_termcap_lib = libncurses; then --TERMCAP_LIB=-lncurses -+elif test $bash_cv_termcap_lib = libncursesw; then -+TERMCAP_LIB=-lncursesw - TERMCAP_DEP= - elif test $bash_cv_termcap_lib = libc; then - TERMCAP_LIB= ---- bash-4.3/lib/intl/libgnuintl.h.in.orig 2009-01-04 19:32:30.000000000 +0000 -+++ bash-4.3/lib/intl/libgnuintl.h.in 2016-05-30 22:03:02.589798655 +0000 -@@ -107,7 +107,7 @@ - #endif - /* Auxiliary macros. */ - #ifdef _INTL_REDIRECT_ASM --# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) -+# define _INTL_ASM(cname) __asm__ (#cname) - # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring - # define _INTL_STRINGIFY(prefix) #prefix - #else diff --git a/patches/bash-4.4-rc2.local.patch b/patches/bash-4.4-rc2.local.patch new file mode 100644 index 0000000..6b8a97e --- /dev/null +++ b/patches/bash-4.4-rc2.local.patch @@ -0,0 +1,118 @@ +--- bash-4.4-rc2/configure.orig 2016-08-05 22:29:55.000000000 +0200 ++++ bash-4.4-rc2/configure 2016-12-17 21:32:44.745849000 +0100 +@@ -2869,6 +2869,7 @@ + *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft + *-nsk*) opt_bash_malloc=no ;; # HP NonStop + *-haiku*) opt_bash_malloc=no ;; # Haiku OS ++*-midipix*) opt_bash_malloc=no ;; # Midipix + esac + + # memory scrambling on free() +@@ -5156,13 +5157,13 @@ + if test "x$ac_cv_lib_curses_tgetent" = xyes; then : + bash_cv_termcap_lib=libcurses + else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 +-$as_echo_n "checking for tgetent in -lncurses... " >&6; } +-if ${ac_cv_lib_ncurses_tgetent+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 ++$as_echo_n "checking for tgetent in -lncursesw... " >&6; } ++if ${ac_cv_lib_ncursesw_tgetent+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lncurses $LIBS" ++LIBS="-lncursesw $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -5182,18 +5183,18 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_ncurses_tgetent=yes ++ ac_cv_lib_ncursesw_tgetent=yes + else +- ac_cv_lib_ncurses_tgetent=no ++ ac_cv_lib_ncursesw_tgetent=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 +-$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +-if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : +- bash_cv_termcap_lib=libncurses ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 ++$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } ++if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : ++ bash_cv_termcap_lib=libncursesw + else + bash_cv_termcap_lib=gnutermcap + fi +@@ -5224,8 +5225,8 @@ + elif test $bash_cv_termcap_lib = libtinfo; then + TERMCAP_LIB=-ltinfo + TERMCAP_DEP= +-elif test $bash_cv_termcap_lib = libncurses; then +-TERMCAP_LIB=-lncurses ++elif test $bash_cv_termcap_lib = libncursesw; then ++TERMCAP_LIB=-lncursesw + TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= +@@ -15811,13 +15812,13 @@ + if test "x$ac_cv_lib_curses_tgetent" = xyes; then : + bash_cv_termcap_lib=libcurses + else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 +-$as_echo_n "checking for tgetent in -lncurses... " >&6; } +-if ${ac_cv_lib_ncurses_tgetent+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 ++$as_echo_n "checking for tgetent in -lncursesw... " >&6; } ++if ${ac_cv_lib_ncursesw_tgetent+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lncurses $LIBS" ++LIBS="-lncursesw $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -15837,18 +15838,18 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_ncurses_tgetent=yes ++ ac_cv_lib_ncursesw_tgetent=yes + else +- ac_cv_lib_ncurses_tgetent=no ++ ac_cv_lib_ncursesw_tgetent=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 +-$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +-if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : +- bash_cv_termcap_lib=libncurses ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 ++$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } ++if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : ++ bash_cv_termcap_lib=libncursesw + else + bash_cv_termcap_lib=gnutermcap + fi +@@ -15879,8 +15880,8 @@ + elif test $bash_cv_termcap_lib = libtinfo; then + TERMCAP_LIB=-ltinfo + TERMCAP_DEP= +-elif test $bash_cv_termcap_lib = libncurses; then +-TERMCAP_LIB=-lncurses ++elif test $bash_cv_termcap_lib = libncursesw; then ++TERMCAP_LIB=-lncursesw + TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= diff --git a/patches/coreutils-8.23.local.patch b/patches/coreutils-8.23.local.patch deleted file mode 100644 index a98d379..0000000 --- a/patches/coreutils-8.23.local.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff -ru --new-file a/configure b/configure ---- a/configure 2014-07-18 18:07:39.000000000 -0400 -+++ b/configure 2015-06-01 12:42:55.874926255 -0400 -@@ -66789,3 +66791,11 @@ - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi - -+# bypass dependency on help2man -+if [ x"$cross_compiling" = xyes ]; then -+ mkdir -p man; -+ for f in $srcdir/src/*.c; do src=$(basename $f); doc="${src%.*}"; echo $doc; touch man/$doc.1; done -+ for f in dir sha1sum sha224sum sha256sum sha384sum sha512sum vdir; do touch man/$f.1; done -+ -+ sed -i -e 's/@cross_compiling@/'$cross_compiling'/g' Makefile || exit 2 -+fi -diff -ru --new-file a/Makefile.in b/Makefile.in ---- a/Makefile.in 2014-07-18 18:22:24.000000000 -0400 -+++ b/Makefile.in 2015-06-01 12:03:29.274957961 -0400 -@@ -4911,6 +4911,8 @@ - $(bin_SCRIPTS) \ - $(EXTRA_PROGRAMS) - -+CROSS_COMPILE = @cross_compiling@ -+ - pm = progs-makefile - pr = progs-readme - @CROSS_COMPILING_FALSE@cu_install_program = src/ginstall -@@ -14061,6 +14063,10 @@ - # Include the generated man dependencies. - @AMDEP_TRUE@@am__include@ man/dynamic-deps.mk - -+ifeq ($(CROSS_COMPILE),yes) -+.x.1: -+ -+else - .x.1: - $(AM_V_GEN)name=`echo $@ | sed 's|.*/||; s|\.1$$||'` || exit 1; \ - case $$name in \ -@@ -14086,6 +14092,8 @@ - && chmod a-w $@-t \ - && mv $@-t $@ - .PHONY: check-root -+endif -+ - check-root: - $(MAKE) check TESTS='$(root_tests)' SUBDIRS=. - -diff -ru --new-file a/src/fs.h b/src/fs.h ---- a/src/fs.h 2014-07-18 14:33:26.000000000 -0400 -+++ b/src/fs.h 2015-06-01 10:19:57.475041184 -0400 -@@ -2,7 +2,7 @@ - Please send additions to bug-coreutils@gnu.org and meskes@debian.org. - This file is generated automatically from ./src/stat.c. */ - --#if defined __linux__ -+#if defined __linux__ || defined __midipix__ - # define S_MAGIC_ADFS 0xADF5 - # define S_MAGIC_AFFS 0xADFF - # define S_MAGIC_AFS 0x5346414F diff --git a/patches/coreutils-8.26.local.patch b/patches/coreutils-8.26.local.patch new file mode 100644 index 0000000..e68f87b --- /dev/null +++ b/patches/coreutils-8.26.local.patch @@ -0,0 +1,68 @@ +--- coreutils-8.26/configure.orig 2016-11-30 19:12:35.000000000 +0100 ++++ coreutils-8.26/configure 2016-12-17 21:40:01.397534600 +0100 +@@ -67855,3 +67855,11 @@ + $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + ++# bypass dependency on help2man ++if [ x"$cross_compiling" = xyes ]; then ++ mkdir -p man; ++ for f in $srcdir/src/*.c; do src=$(basename $f); doc="${src%.*}"; echo $doc; touch man/$doc.1; done ++ for f in dir sha1sum sha224sum sha256sum sha384sum sha512sum vdir; do touch man/$f.1; done ++ ++ sed -i -e 's/@cross_compiling@/'$cross_compiling'/g' Makefile || exit 2 ++fi +--- coreutils-8.26/src/fs.h.orig 2016-11-30 14:59:20.000000000 +0100 ++++ coreutils-8.26/src/fs.h 2016-12-17 21:40:01.400534600 +0100 +@@ -2,7 +2,7 @@ + Please send additions to bug-coreutils@gnu.org and meskes@debian.org. + This file is generated automatically from ./src/stat.c. */ + +-#if defined __linux__ ++#if defined __linux__ || defined __midipix__ + # define S_MAGIC_ACFS 0x61636673 + # define S_MAGIC_ADFS 0xADF5 + # define S_MAGIC_AFFS 0xADFF +--- coreutils-8.26/Makefile.in.orig 2016-11-30 19:34:55.000000000 +0100 ++++ coreutils-8.26/Makefile.in 2016-12-18 00:35:47.375117500 +0100 +@@ -3439,7 +3439,7 @@ + INET_PTON_LIB = @INET_PTON_LIB@ + INSTALL = $(cu_install_program) -c + INSTALL_DATA = @INSTALL_DATA@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = install + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +@@ -5018,12 +5018,14 @@ + $(bin_SCRIPTS) \ + $(EXTRA_PROGRAMS) + ++CROSS_COMPILE = @cross_compiling@ ++ + pm = progs-makefile + pr = progs-readme + @CROSS_COMPILING_FALSE@cu_install_program = src/ginstall + + # Use the just-built 'ginstall', when not cross-compiling. +-@CROSS_COMPILING_TRUE@cu_install_program = @INSTALL_PROGRAM@ ++@CROSS_COMPILING_TRUE@cu_install_program = install + info_TEXINFOS = doc/coreutils.texi + doc_coreutils_TEXINFOS = \ + doc/perm.texi \ +@@ -14636,6 +14638,7 @@ + $$argv$(EXEEXT)) \ + && : $${SOURCE_DATE_EPOCH=`cat $(srcdir)/.timestamp 2>/dev/null || :`} \ + && export SOURCE_DATE_EPOCH && $(run_help2man) \ ++ --no-discard-stderr \ + --source='$(PACKAGE_STRING)' \ + --include=$(srcdir)/man/$$name.x \ + --output=$$t/$$name.1 \ +@@ -14649,6 +14652,7 @@ + && chmod a-w $@-t \ + && mv $@-t $@ + .PHONY: check-root ++ + check-root: + $(MAKE) check TESTS='$(root_tests)' SUBDIRS=. + diff --git a/patches/curl-7.47.1.local.patch b/patches/curl-7.47.1.local.patch deleted file mode 100644 index 3a10aa9..0000000 --- a/patches/curl-7.47.1.local.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- curl-7.47.1/configure.orig 2016-02-07 15:43:48.000000000 +0100 -+++ curl-7.47.1/configure 2016-03-08 11:33:24.125711200 +0100 -@@ -14297,6 +14297,18 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+midipix*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" -+ soname_spec="\${libname}\${release}\${shared_ext}\$major" -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=no -+ dynamic_linker='GNU/Linux ld.so' -+ ;; -+ - netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no ---- curl-7.47.1/lib/Makefile.in.orig 2016-02-07 14:43:49.000000000 +0000 -+++ curl-7.47.1/lib/Makefile.in 2016-06-10 00:07:28.334457112 +0000 -@@ -243,7 +243,7 @@ - am__v_lt_1 = - libcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurl_la_CFLAGS) \ -- $(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@ -+ $(CFLAGS) $(LDFLAGS) -o $@ - libcurlu_la_LIBADD = - am__objects_6 = libcurlu_la-file.lo libcurlu_la-timeval.lo \ - libcurlu_la-base64.lo libcurlu_la-hostip.lo \ -@@ -842,7 +842,7 @@ - vtls/$(DEPDIR)/$(am__dirstamp) - - libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) -- $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) -+ $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) $(libcurl_la_LDFLAGS) - vtls/libcurlu_la-openssl.lo: vtls/$(am__dirstamp) \ - vtls/$(DEPDIR)/$(am__dirstamp) - vtls/libcurlu_la-gtls.lo: vtls/$(am__dirstamp) \ diff --git a/patches/curl-7.51.0.local.patch b/patches/curl-7.51.0.local.patch new file mode 100644 index 0000000..4c9cacf --- /dev/null +++ b/patches/curl-7.51.0.local.patch @@ -0,0 +1,41 @@ +--- curl-7.51.0/configure.orig 2016-10-31 10:41:43.000000000 +0100 ++++ curl-7.51.0/configure 2016-12-14 19:53:31.265092100 +0100 +@@ -14831,6 +14831,18 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++midipix*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" ++ soname_spec="\${libname}\${release}\${shared_ext}\$major" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=no ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ + netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no +--- curl-7.51.0/lib/Makefile.in.orig 2016-10-31 10:41:45.000000000 +0100 ++++ curl-7.51.0/lib/Makefile.in 2016-12-14 19:54:05.594475300 +0100 +@@ -249,7 +249,7 @@ + am__v_lt_1 = + libcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurl_la_CFLAGS) \ +- $(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@ ++ $(CFLAGS) $(LDFLAGS) -o $@ + libcurlu_la_LIBADD = + am__objects_7 = libcurlu_la-file.lo libcurlu_la-timeval.lo \ + libcurlu_la-base64.lo libcurlu_la-hostip.lo \ +@@ -889,7 +889,7 @@ + vtls/$(DEPDIR)/$(am__dirstamp) + + libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) +- $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) ++ $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) $(libcurl_la_LDFLAGS) + vauth/libcurlu_la-vauth.lo: vauth/$(am__dirstamp) \ + vauth/$(DEPDIR)/$(am__dirstamp) + vauth/libcurlu_la-cleartext.lo: vauth/$(am__dirstamp) \ diff --git a/patches/findutils-4.5.14.local.patch b/patches/findutils-4.5.14.local.patch deleted file mode 100644 index a28d9dc..0000000 --- a/patches/findutils-4.5.14.local.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ru --new-file a/configure b/configure ---- a/configure 2014-07-19 06:24:44.000000000 -0400 -+++ b/configure 2015-05-31 23:05:19.895583486 -0400 -@@ -54948,3 +54950,23 @@ - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi - -+ -+cat >> config.h << EOF -+ -+#define HAVE_ENDPWENT 1 -+ -+#undef fchownat -+#undef fchdir -+#undef fseeko -+#undef fstatat -+#undef getcwd -+#undef gmtime -+#undef localtime -+#undef lstat -+#undef malloc -+#undef memcmp -+#undef mktime -+#undef realloc -+#undef strnlen -+ -+EOF diff --git a/patches/findutils-4.5.19.local.patch b/patches/findutils-4.5.19.local.patch new file mode 100644 index 0000000..5c7271d --- /dev/null +++ b/patches/findutils-4.5.19.local.patch @@ -0,0 +1,26 @@ +--- findutils-4.5.19/configure.orig 2015-12-28 14:39:42.000000000 +0100 ++++ findutils-4.5.19/configure 2016-12-18 00:49:18.483403200 +0100 +@@ -55251,3 +55251,23 @@ + $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + ++ ++cat >> config.h << EOF ++ ++#define HAVE_ENDPWENT 1 ++ ++#undef fchownat ++#undef fchdir ++#undef fseeko ++#undef fstatat ++#undef getcwd ++#undef gmtime ++#undef localtime ++#undef lstat ++#undef malloc ++#undef memcmp ++#undef mktime ++#undef realloc ++#undef strnlen ++ ++EOF diff --git a/patches/gnupg-2.1.15.local.patch b/patches/gnupg-2.1.15.local.patch deleted file mode 100644 index b0bf6ca..0000000 --- a/patches/gnupg-2.1.15.local.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -ru gnupg-2.1.15.orig/tests/inittests gnupg-2.1.15/tests/inittests ---- gnupg-2.1.15.orig/tests/inittests 2016-02-02 07:05:16.000000000 +0100 -+++ gnupg-2.1.15/tests/inittests 2016-10-19 18:09:36.112010000 +0200 -@@ -1,99 +1,3 @@ - #!/bin/sh --# Copyright (C) 2002 Free Software Foundation, Inc. --# --# This file is free software; as a special exception the author gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. --# --# This file is distributed in the hope that it will be useful, but --# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the --# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- --set -e -- --sample_certs=' --cert_g10code_test1.pem --cert_g10code_pete1.pem --cert_g10code_theo1.pem --' -- --private_keys=' --32100C27173EF6E9C4E9A25D3D69F86D37A4F939 --' -- --clean_files=' --gpgsm.conf gpg-agent.conf trustlist.txt pubring.kbx --msg msg.sig msg.unsig --' -- -- --[ -z "$srcdir" ] && srcdir=. --[ -z "$GPGSM" ] && GPGSM=../sm/gpgsm -- --if [ -d $srcdir/samplekeys ] \ -- && grep TESTS_ENVIRONMENT Makefile >/dev/null 2>&1; then -- : --else -- # During make distclean the Makefile has already been removed, -- # so we need this extra test. -- if ! grep gnupg-test-directory testdir.stamp >/dev/null 2>&1; then -- echo "inittests: please cd to the tests directory first" >&2 -- exit 1 -- fi --fi -- --if [ "$1" = "--clean" ]; then -- if [ -d private-keys-v1.d ]; then -- rm private-keys-v1.d/* 2>/dev/null || true -- rmdir private-keys-v1.d -- fi -- rm ${clean_files} testdir.stamp 2>/dev/null || true -- exit 0 --fi -- --if [ "$GNUPGHOME" != "`/bin/pwd`" ]; then -- echo "inittests: please set GNUPGHOME to the test directory" >&2 -- exit 1 --fi -- --if [ -n "$GPG_AGENT_INFO" ]; then -- echo "inittests: please unset GPG_AGENT_INFO" >&2 -- exit 1 --fi -- --# A stamp file used with --clean --echo gnupg-test-directory > testdir.stamp -- -- --# Create the private key directy if it does not exists and copy --# the sample keys. --[ -d private-keys-v1.d ] || mkdir private-keys-v1.d --for i in ${private_keys}; do -- cat ${srcdir}/samplekeys/$i.key >private-keys-v1.d/$i.key --done -- --# Create the configuration scripts --# Note, die to an expired test certificate, we need to use --# the faked system time option. --cat > gpgsm.conf < gpg-agent.conf < trustlist.txt </dev/null 2>&1; then +- : +-else +- # During make distclean the Makefile has already been removed, +- # so we need this extra test. +- if ! grep gnupg-test-directory testdir.stamp >/dev/null 2>&1; then +- echo "inittests: please cd to the tests directory first" >&2 +- exit 1 +- fi +-fi +- +-if [ "$1" = "--clean" ]; then +- if [ -d private-keys-v1.d ]; then +- rm private-keys-v1.d/* 2>/dev/null || true +- rmdir private-keys-v1.d +- fi +- rm ${clean_files} testdir.stamp 2>/dev/null || true +- exit 0 +-fi +- +-if [ "$GNUPGHOME" != "`/bin/pwd`" ]; then +- echo "inittests: please set GNUPGHOME to the test directory" >&2 +- exit 1 +-fi +- +-if [ -n "$GPG_AGENT_INFO" ]; then +- echo "inittests: please unset GPG_AGENT_INFO" >&2 +- exit 1 +-fi +- +-# A stamp file used with --clean +-echo gnupg-test-directory > testdir.stamp +- +- +-# Create the private key directy if it does not exists and copy +-# the sample keys. +-[ -d private-keys-v1.d ] || mkdir private-keys-v1.d +-for i in ${private_keys}; do +- cat ${srcdir}/samplekeys/$i.key >private-keys-v1.d/$i.key +-done +- +-# Create the configuration scripts +-# Note, die to an expired test certificate, we need to use +-# the faked system time option. +-cat > gpgsm.conf < gpg-agent.conf < trustlist.txt <connrec->address); - } else { -+ #ifdef __midipix__ -+ IPADDR ip4, ip6, *ip; -+ -+ connect_address = server->connrec->proxy != NULL ? -+ server->connrec->proxy : server->connrec->address; -+ if (net_gethostbyname(connect_address, &ip4, &ip6) == -1) { -+ g_warning("net_gethostbyname(): -1"); -+ g_free(server->tag); -+ g_free(server->nick); -+ return FALSE; -+ } else if (server->connrec->family == 0) { -+ /* prefer IPv4 addresses */ -+ ip = ip4.family != 0 ? &ip4 : &ip6; -+ } else if (server->connrec->family == AF_INET6) { -+ /* IPv6 address, use if possible */ -+ if (ip6.family != 0) { -+ ip = &ip6; -+ } else { -+ ip = &ip4; -+ } -+ } else { -+ /* IPv4 address, use if possible */ -+ if (ip4.family != 0) { -+ ip = &ip4; -+ } else { -+ ip = &ip6; -+ } -+ } -+ server_real_connect(server, ip, NULL); -+ #else - /* resolve host name */ - if (pipe(fd) != 0) { - g_warning("server_connect(): pipe() failed."); -@@ -433,6 +463,7 @@ - lookup_servers = g_slist_append(lookup_servers, server); - - signal_emit("server looking", 1, server); -+ #endif - } - return TRUE; - } ---- irssi-0.8.18/src/core/pidwait.c.orig 2014-09-02 11:13:51.000000000 +0200 -+++ irssi-0.8.18/src/core/pidwait.c 2016-06-19 00:20:33.327763200 +0200 -@@ -39,8 +39,10 @@ - void pidwait_add(int pid) - { - if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) { -+#ifndef __midipix__ - int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL); - g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id)); -+#endif - pids = g_slist_append(pids, GINT_TO_POINTER(pid)); - } - } ---- irssi-0.8.18/src/fe-common/core/fe-exec.c.orig 2016-01-20 23:08:07.000000000 +0100 -+++ irssi-0.8.18/src/fe-common/core/fe-exec.c 2016-06-19 01:22:40.792090300 +0200 -@@ -288,6 +288,9 @@ - } - } - -+#ifdef __midipix__ -+static void sig_pidwait(void *pid, void *statusp); -+#endif - static void process_exec(PROCESS_REC *rec, const char *cmd) - { - const char *shell_args[4] = { "/bin/sh", "-c", NULL, NULL }; -@@ -535,6 +538,14 @@ - (GInputFunction) sig_exec_input_reader, - rec); - processes = g_slist_append(processes, rec); -+#ifdef __midipix__ -+ int status; -+ waitpid(rec->pid, &status, 0); -+ while (rec->read_tag != -1) { -+ sig_exec_input_reader(rec); -+ } -+ sig_pidwait((void *)rec->pid, &status); -+#endif - - if (rec->target == NULL && interactive) - rec->target_item = exec_wi_create(active_win, rec); diff --git a/patches/irssi-0.8.20.local.patch b/patches/irssi-0.8.20.local.patch new file mode 100644 index 0000000..0dfa06d --- /dev/null +++ b/patches/irssi-0.8.20.local.patch @@ -0,0 +1,87 @@ +--- irssi-0.8.20/src/core/pidwait.c.orig 2016-08-11 14:59:21.000000000 +0200 ++++ irssi-0.8.20/src/core/pidwait.c 2016-12-18 01:14:30.017866300 +0100 +@@ -39,8 +39,10 @@ + void pidwait_add(int pid) + { + if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) { ++#ifndef __midipix__ + int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL); + g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id)); ++#endif + pids = g_slist_append(pids, GINT_TO_POINTER(pid)); + } + } +--- irssi-0.8.20/src/core/servers.c.orig 2016-09-14 13:46:13.000000000 +0200 ++++ irssi-0.8.20/src/core/servers.c 2016-12-18 01:17:03.451031500 +0100 +@@ -407,6 +407,36 @@ + /* connect with unix socket */ + server_real_connect(server, NULL, server->connrec->address); + } else { ++ #ifdef __midipix__ ++ IPADDR ip4, ip6, *ip; ++ ++ connect_address = server->connrec->proxy != NULL ? ++ server->connrec->proxy : server->connrec->address; ++ if (net_gethostbyname(connect_address, &ip4, &ip6) == -1) { ++ g_warning("net_gethostbyname(): -1"); ++ g_free(server->tag); ++ g_free(server->nick); ++ return FALSE; ++ } else if (server->connrec->family == 0) { ++ /* prefer IPv4 addresses */ ++ ip = ip4.family != 0 ? &ip4 : &ip6; ++ } else if (server->connrec->family == AF_INET6) { ++ /* IPv6 address, use if possible */ ++ if (ip6.family != 0) { ++ ip = &ip6; ++ } else { ++ ip = &ip4; ++ } ++ } else { ++ /* IPv4 address, use if possible */ ++ if (ip4.family != 0) { ++ ip = &ip4; ++ } else { ++ ip = &ip6; ++ } ++ } ++ server_real_connect(server, ip, NULL); ++ #else + /* resolve host name */ + if (pipe(fd) != 0) { + g_warning("server_connect(): pipe() failed."); +@@ -433,6 +463,7 @@ + lookup_servers = g_slist_append(lookup_servers, server); + + signal_emit("server looking", 1, server); ++ #endif + } + return TRUE; + } +--- irssi-0.8.20/src/fe-common/core/fe-exec.c.orig 2016-09-14 13:46:13.000000000 +0200 ++++ irssi-0.8.20/src/fe-common/core/fe-exec.c 2016-12-18 01:14:30.018866300 +0100 +@@ -288,6 +288,9 @@ + } + } + ++#ifdef __midipix__ ++static void sig_pidwait(void *pid, void *statusp); ++#endif + static void process_exec(PROCESS_REC *rec, const char *cmd) + { + const char *shell_args[4] = { "/bin/sh", "-c", NULL, NULL }; +@@ -535,6 +538,14 @@ + (GInputFunction) sig_exec_input_reader, + rec); + processes = g_slist_append(processes, rec); ++#ifdef __midipix__ ++ int status; ++ waitpid(rec->pid, &status, 0); ++ while (rec->read_tag != -1) { ++ sig_exec_input_reader(rec); ++ } ++ sig_pidwait((void *)rec->pid, &status); ++#endif + + if (rec->target == NULL && interactive) + rec->target_item = exec_wi_create(active_win, rec); diff --git a/patches/libarchive-3.1.2.local.patch b/patches/libarchive-3.1.2.local.patch deleted file mode 100644 index 746a4b7..0000000 --- a/patches/libarchive-3.1.2.local.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- libarchive-3.1.2/cpio/bsdcpio.1.orig -+++ libarchive-3.1.2/cpio/bsdcpio.1 -@@ -156,7 +156,8 @@ - .It Fl Fl insecure - (i and p mode only) - Disable security checks during extraction or copying. --This allows extraction via symbolic links and path names containing -+This allows extraction via symbolic links, absolute paths, -+and path names containing - .Sq .. - in the name. - .It Fl J , Fl Fl xz ---- libarchive-3.1.2/cpio/cpio.c.orig -+++ libarchive-3.1.2/cpio/cpio.c -@@ -179,6 +179,7 @@ - cpio->extract_flags |= ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER; - cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_SYMLINKS; - cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - cpio->extract_flags |= ARCHIVE_EXTRACT_PERM; - cpio->extract_flags |= ARCHIVE_EXTRACT_FFLAGS; - cpio->extract_flags |= ARCHIVE_EXTRACT_ACL; -@@ -264,6 +265,7 @@ - case OPTION_INSECURE: - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_SYMLINKS; - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - break; - case 'L': /* GNU cpio */ - cpio->option_follow_links = 1; -@@ -300,6 +302,7 @@ - "Cannot use both -p and -%c", cpio->mode); - cpio->mode = opt; - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - break; - case OPTION_PRESERVE_OWNER: - cpio->extract_flags |= ARCHIVE_EXTRACT_OWNER; ---- libarchive-3.1.2/libarchive/archive.h.orig -+++ libarchive-3.1.2/libarchive/archive.h -@@ -562,6 +562,8 @@ - /* Default: Do not use HFS+ compression if it was not compressed. */ - /* This has no effect except on Mac OS v10.6 or later. */ - #define ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED (0x8000) -+/* Default: Do not reject entries with absolute paths */ -+#define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) - - __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, - int flags); ---- libarchive-3.1.2/libarchive/archive_write_disk.3.orig -+++ libarchive-3.1.2/libarchive/archive_write_disk.3 -@@ -177,6 +177,9 @@ - Note that paths ending in - .Pa .. - always cause an error, regardless of this flag. -+.It Cm ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS -+Refuse to extract an absolute path. -+The default is to not refuse such paths. - .It Cm ARCHIVE_EXTRACT_SPARSE - Scan data for blocks of NUL bytes and try to recreate them with holes. - This results in sparse files, independent of whether the archive format ---- libarchive-3.1.2/libarchive/archive_write_disk_posix.c.orig -+++ libarchive-3.1.2/libarchive/archive_write_disk_posix.c -@@ -2504,8 +2504,9 @@ - /* - * Canonicalize the pathname. In particular, this strips duplicate - * '/' characters, '.' elements, and trailing '/'. It also raises an -- * error for an empty path, a trailing '..' or (if _SECURE_NODOTDOT is -- * set) any '..' in the path. -+ * error for an empty path, a trailing '..', (if _SECURE_NODOTDOT is -+ * set) any '..' in the path or (if ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS -+ * is set) if the path is absolute. - */ - static int - cleanup_pathname(struct archive_write_disk *a) -@@ -2524,8 +2525,15 @@ - cleanup_pathname_win(a); - #endif - /* Skip leading '/'. */ -- if (*src == '/') -+ if (*src == '/') { -+ if (a->flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, -+ "Path is absolute"); -+ return (ARCHIVE_FAILED); -+ } -+ - separator = *src++; -+ } - - /* Scan the pathname one element at a time. */ - for (;;) { ---- libarchive-3.1.2/libarchive/test/test_write_disk_secure.c.orig -+++ libarchive-3.1.2/libarchive/test/test_write_disk_secure.c -@@ -178,6 +178,29 @@ - assert(S_ISDIR(st.st_mode)); - archive_entry_free(ae); - -+ /* -+ * Without security checks, we should be able to -+ * extract an absolute path. -+ */ -+ assert((ae = archive_entry_new()) != NULL); -+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ archive_entry_set_mode(ae, S_IFREG | 0777); -+ assert(0 == archive_write_header(a, ae)); -+ assert(0 == archive_write_finish_entry(a)); -+ assertFileExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ assert(0 == unlink("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp")); -+ -+ /* But with security checks enabled, this should fail. */ -+ assert(archive_entry_clear(ae) != NULL); -+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ archive_entry_set_mode(ae, S_IFREG | 0777); -+ archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS); -+ failure("Extracting an absolute path should fail here."); -+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, ae)); -+ archive_entry_free(ae); -+ assert(0 == archive_write_finish_entry(a)); -+ assertFileNotExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ - assertEqualInt(ARCHIVE_OK, archive_write_free(a)); - - /* Test the entries on disk. */ ---- libarchive-3.1.2/libarchive/archive_write.c.orig 2016-06-03 13:15:42.862830537 +0000 -+++ libarchive-3.1.2/libarchive/archive_write.c 2016-06-03 13:19:01.590826126 +0000 -@@ -671,8 +671,12 @@ - _archive_write_data(struct archive *_a, const void *buff, size_t s) - { - struct archive_write *a = (struct archive_write *)_a; -+ const size_t max_write = INT_MAX; - archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, - ARCHIVE_STATE_DATA, "archive_write_data"); -+ /* In particular, this catches attempts to pass negative values. */ -+ if (s > max_write) -+ s = max_write; - archive_clear_error(&a->archive); - return ((a->format_write_data)(a, buff, s)); - } diff --git a/patches/libgcrypt-1.7.3.local.patch b/patches/libgcrypt-1.7.3.local.patch deleted file mode 100644 index ff81df0..0000000 --- a/patches/libgcrypt-1.7.3.local.patch +++ /dev/null @@ -1,172 +0,0 @@ -Only in libgcrypt-1.7.3.orig: config.log -diff -ru libgcrypt-1.7.3.orig/configure libgcrypt-1.7.3/configure ---- libgcrypt-1.7.3.orig/configure 2016-08-17 13:34:20.000000000 +0200 -+++ libgcrypt-1.7.3/configure 2016-10-18 22:58:40.255896688 +0200 -@@ -13067,7 +13067,9 @@ - *-linux*) - PRINTABLE_OS_NAME="GNU/Linux" - ;; -- -+ *-midipix*) -+ PRINTABLE_OS_NAME="Midipix" -+ ;; - *) - PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` - ;; -@@ -14141,155 +14143,8 @@ - # gpg-error is required. - # - -- gpg_error_config_prefix="" -- --# Check whether --with-libgpg-error-prefix was given. --if test "${with_libgpg_error_prefix+set}" = set; then : -- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- --# Check whether --with-gpg-error-prefix was given. --if test "${with_gpg_error_prefix+set}" = set; then : -- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -+ GPG_ERROR_LIBS="-lgpg-error" - -- if test x"${GPG_ERROR_CONFIG}" = x ; then -- if test x"${gpg_error_config_prefix}" != x ; then -- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" -- else -- case "${SYSROOT}" in -- /*) -- if test -x "${SYSROOT}/bin/gpg-error-config" ; then -- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" -- fi -- ;; -- '') -- ;; -- *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 --$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} -- ;; -- esac -- fi -- fi -- -- # Extract the first word of "gpg-error-config", so it can be a program name with args. --set dummy gpg-error-config; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- case $GPG_ERROR_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done -- done --IFS=$as_save_IFS -- -- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" -- ;; --esac --fi --GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG --if test -n "$GPG_ERROR_CONFIG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 --$as_echo "$GPG_ERROR_CONFIG" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- -- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 --$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } -- ok=no -- if test "$GPG_ERROR_CONFIG" != "no" \ -- && test -f "$GPG_ERROR_CONFIG" ; then -- req_major=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` -- req_minor=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` -- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` -- major=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` -- minor=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` -- if test "$major" -gt "$req_major"; then -- ok=yes -- else -- if test "$major" -eq "$req_major"; then -- if test "$minor" -ge "$req_minor"; then -- ok=yes -- fi -- fi -- fi -- fi -- if test $ok = yes; then -- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` -- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` -- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` -- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 --$as_echo "yes ($gpg_error_config_version)" >&6; } -- : -- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` -- if test x"$gpg_error_config_host" != xnone ; then -- if test x"$gpg_error_config_host" != x"$host" ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&5 --$as_echo "$as_me: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&2;} -- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" -- fi -- fi -- else -- GPG_ERROR_CFLAGS="" -- GPG_ERROR_LIBS="" -- GPG_ERROR_MT_CFLAGS="" -- GPG_ERROR_MT_LIBS="" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- : -- fi -- -- -- -- -- --if test "x$GPG_ERROR_LIBS" = "x"; then -- as_fn_error $? "libgpg-error is needed. -- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 --fi - - - $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GCRYPT" >>confdefs.h diff --git a/patches/libgcrypt-1.7.4.local.patch b/patches/libgcrypt-1.7.4.local.patch new file mode 100644 index 0000000..15c9576 --- /dev/null +++ b/patches/libgcrypt-1.7.4.local.patch @@ -0,0 +1,170 @@ +--- libgcrypt-1.7.4/configure.orig 2016-12-09 15:49:07.000000000 +0100 ++++ libgcrypt-1.7.4/configure 2016-12-17 21:18:38.325971000 +0100 +@@ -13068,6 +13068,10 @@ + PRINTABLE_OS_NAME="GNU/Linux" + ;; + ++ *-midipix*) ++ PRINTABLE_OS_NAME="Midipix" ++ ;; ++ + *) + PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` + ;; +@@ -14141,155 +14145,7 @@ + # gpg-error is required. + # + +- gpg_error_config_prefix="" +- +-# Check whether --with-libgpg-error-prefix was given. +-if test "${with_libgpg_error_prefix+set}" = set; then : +- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- +-# Check whether --with-gpg-error-prefix was given. +-if test "${with_gpg_error_prefix+set}" = set; then : +- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- if test x"${GPG_ERROR_CONFIG}" = x ; then +- if test x"${gpg_error_config_prefix}" != x ; then +- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" +- else +- case "${SYSROOT}" in +- /*) +- if test -x "${SYSROOT}/bin/gpg-error-config" ; then +- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" +- fi +- ;; +- '') +- ;; +- *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 +-$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} +- ;; +- esac +- fi +- fi +- +- # Extract the first word of "gpg-error-config", so it can be a program name with args. +-set dummy gpg-error-config; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $GPG_ERROR_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" +- ;; +-esac +-fi +-GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG +-if test -n "$GPG_ERROR_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 +-$as_echo "$GPG_ERROR_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 +-$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } +- ok=no +- if test "$GPG_ERROR_CONFIG" != "no" \ +- && test -f "$GPG_ERROR_CONFIG" ; then +- req_major=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` +- req_minor=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` +- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` +- major=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` +- minor=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` +- if test "$major" -gt "$req_major"; then +- ok=yes +- else +- if test "$major" -eq "$req_major"; then +- if test "$minor" -ge "$req_minor"; then +- ok=yes +- fi +- fi +- fi +- fi +- if test $ok = yes; then +- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` +- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` +- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` +- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 +-$as_echo "yes ($gpg_error_config_version)" >&6; } +- : +- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` +- if test x"$gpg_error_config_host" != xnone ; then +- if test x"$gpg_error_config_host" != x"$host" ; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&5 +-$as_echo "$as_me: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&2;} +- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" +- fi +- fi +- else +- GPG_ERROR_CFLAGS="" +- GPG_ERROR_LIBS="" +- GPG_ERROR_MT_CFLAGS="" +- GPG_ERROR_MT_LIBS="" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- : +- fi +- +- +- +- +- +-if test "x$GPG_ERROR_LIBS" = "x"; then +- as_fn_error $? "libgpg-error is needed. +- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 +-fi ++ GPG_ERROR_LIBS="-lgpg-error" + + + $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GCRYPT" >>confdefs.h diff --git a/patches/libgpg-error-1.24.local.patch b/patches/libgpg-error-1.24.local.patch deleted file mode 100644 index 208e47a..0000000 --- a/patches/libgpg-error-1.24.local.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h ---- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 -+++ libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 2015-03-06 10:36:24.000000000 +0100 -@@ -0,0 +1,23 @@ -+## lock-obj-pub.i686-pc-linux-gnu.h -+## File created by gen-posix-lock-obj - DO NOT EDIT -+## To be included by mkheader into gpg-error.h -+ -+typedef struct -+{ -+ long _vers; -+ union { -+ volatile char _priv[24]; -+ long _x_align; -+ long *_xp_align; -+ } u; -+} gpgrt_lock_t; -+ -+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0}}} -+## -+## Local Variables: -+## mode: c -+## buffer-read-only: t -+## End: -+## -diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h ---- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 -+++ libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 2016-03-14 14:04:33.000000000 +0100 -@@ -0,0 +1,25 @@ -+## lock-obj-pub.x86_64-pc-linux-musl.h -+## File created by gen-posix-lock-obj - DO NOT EDIT -+## To be included by mkheader into gpg-error.h -+ -+typedef struct -+{ -+ long _vers; -+ union { -+ volatile char _priv[40]; -+ long _x_align; -+ long *_xp_align; -+ } u; -+} gpgrt_lock_t; -+ -+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0}}} -+## -+## Local Variables: -+## mode: c -+## buffer-read-only: t -+## End: -+## diff --git a/patches/libgpg-error-1.25.local.patch b/patches/libgpg-error-1.25.local.patch new file mode 100644 index 0000000..5da8699 --- /dev/null +++ b/patches/libgpg-error-1.25.local.patch @@ -0,0 +1,54 @@ +--- libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h.orig 2016-12-17 21:12:38.401523100 +0100 ++++ libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 2016-12-17 21:12:38.401523100 +0100 +@@ -0,0 +1,23 @@ ++## lock-obj-pub.i686-pc-linux-gnu.h ++## File created by gen-posix-lock-obj - DO NOT EDIT ++## To be included by mkheader into gpg-error.h ++ ++typedef struct ++{ ++ long _vers; ++ union { ++ volatile char _priv[24]; ++ long _x_align; ++ long *_xp_align; ++ } u; ++} gpgrt_lock_t; ++ ++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0}}} ++## ++## Local Variables: ++## mode: c ++## buffer-read-only: t ++## End: ++## +--- libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h.orig 2016-12-17 21:12:38.401523100 +0100 ++++ libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 2016-12-17 21:12:38.401523100 +0100 +@@ -0,0 +1,25 @@ ++## lock-obj-pub.x86_64-pc-linux-musl.h ++## File created by gen-posix-lock-obj - DO NOT EDIT ++## To be included by mkheader into gpg-error.h ++ ++typedef struct ++{ ++ long _vers; ++ union { ++ volatile char _priv[40]; ++ long _x_align; ++ long *_xp_align; ++ } u; ++} gpgrt_lock_t; ++ ++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0}}} ++## ++## Local Variables: ++## mode: c ++## buffer-read-only: t ++## End: ++## diff --git a/patches/mc-4.8.17.local.patch b/patches/mc-4.8.17.local.patch deleted file mode 100644 index 05c2ac5..0000000 --- a/patches/mc-4.8.17.local.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- mc-4.8.17/configure.orig 2016-05-07 18:13:45.000000000 +0200 -+++ mc-4.8.17/configure 2016-09-06 18:16:45.987179012 +0200 -@@ -19922,7 +19922,7 @@ - - - # Determine how to get the list of mounted file systems. --ac_list_mounted_fs= -+#ac_list_mounted_fs= - - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. -@@ -20634,7 +20634,7 @@ - - - # Determine how to get the list of mounted file systems. --ac_list_mounted_fs= -+#ac_list_mounted_fs= - - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. diff --git a/patches/mc-4.8.18.local.patch b/patches/mc-4.8.18.local.patch new file mode 100644 index 0000000..534e0cd --- /dev/null +++ b/patches/mc-4.8.18.local.patch @@ -0,0 +1,20 @@ +--- mc-4.8.18/configure.orig 2016-10-02 19:47:28.000000000 +0200 ++++ mc-4.8.18/configure 2016-12-18 01:54:29.486734700 +0100 +@@ -19922,7 +19922,7 @@ + + + # Determine how to get the list of mounted file systems. +-ac_list_mounted_fs= ++#ac_list_mounted_fs= + + # If the getmntent function is available but not in the standard library, + # make sure LIBS contains the appropriate -l option. +@@ -20634,7 +20634,7 @@ + + + # Determine how to get the list of mounted file systems. +-ac_list_mounted_fs= ++#ac_list_mounted_fs= + + # If the getmntent function is available but not in the standard library, + # make sure LIBS contains the appropriate -l option. diff --git a/patches/tcsh-6.19.00.local.patch b/patches/tcsh-6.19.00.local.patch deleted file mode 100644 index 4567406..0000000 --- a/patches/tcsh-6.19.00.local.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- tcsh-6.19.00/configure.orig 2015-05-21 21:41:48.000000000 +0000 -+++ tcsh-6.19.00/configure 2016-05-26 11:51:44.823732557 +0000 -@@ -2975,6 +2975,11 @@ - tcsh_config_file=qnx6 - ;; - -+ ## midipix -+ *-midipix*) -+ tcsh_config_file=midipix -+ ;; -+ - * ) - as_fn_error $? "Tcsh can't guess the configuration file name - for \`${host}' systems. ---- tcsh-6.19.00/sh.h.orig 2015-05-10 13:29:28.000000000 +0000 -+++ tcsh-6.19.00/sh.h 2016-05-26 12:16:19.303699832 +0000 -@@ -333,7 +333,7 @@ - #endif /* POSIX && !WINNT_NATIVE */ - #include - --#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) -+#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__) - # if !defined(pyr) && !defined(stellar) - # include - # ifdef _MINIX ---- tcsh-6.19.00/Makefile.in.orig 2014-07-24 22:52:13.000000000 +0000 -+++ tcsh-6.19.00/Makefile.in 2016-05-26 12:43:28.099663682 +0000 -@@ -24,6 +24,7 @@ - CF=-c - - CPPFLAGS=-I. -I$(srcdir) -+CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir) - - LFLAGS= - # hpux lint -@@ -449,7 +450,7 @@ - - gethost: gethost.c sh.err.h tc.const.h sh.h - rm -f gethost -- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c -+ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c - - tc.defs.c: gethost host.defs - @rm -f $@.tmp ---- tcsh-6.19.00/config/midipix.orig 1970-01-01 00:00:00.000000000 +0000 -+++ tcsh-6.19.00/config/midipix 2016-05-26 13:04:58.627635040 +0000 -@@ -0,0 +1,138 @@ -+/* -+ * config.h -- configure various defines for tcsh -+ * -+ * All source files should #include this FIRST. -+ * -+ * This is the config file for midipix systems -+ */ -+ -+#ifndef _h_config -+#define _h_config -+/****************** System dependant compilation flags ****************/ -+/* -+ * POSIX This system supports IEEE Std 1003.1-1988 (POSIX). -+ */ -+#define POSIX -+ -+/* -+ * POSIXJOBS This system supports the optional IEEE Std 1003.1-1988 (POSIX) -+ * job control facilities. -+ */ -+#define POSIXJOBS -+ -+/* -+ * VFORK This machine has a vfork(). -+ * It used to be that for job control to work, this define -+ * was mandatory. This is not the case any more. -+ * If you think you still need it, but you don't have vfork, -+ * define this anyway and then do #define vfork fork. -+ * I do this anyway on a Sun because of yellow pages brain damage, -+ * [should not be needed under 4.1] -+ * and on the iris4d cause SGI's fork is sufficiently "virtual" -+ * that vfork isn't necessary. (Besides, SGI's vfork is weird). -+ * Note that some machines eg. rs6000 have a vfork, but not -+ * with the berkeley semantics, so we cannot use it there either. -+ */ -+#undef VFORK -+ -+/* -+ * BSDJOBS You have BSD-style job control (both process groups and -+ * a tty that deals correctly -+ */ -+#define BSDJOBS -+ -+/* -+ * BSDTIMES You have BSD-style process time stuff (like rusage) -+ * This may or may not be true. For example, Apple Unix -+ * (OREO) has BSDJOBS but not BSDTIMES. -+ */ -+#define BSDTIMES -+ -+/* -+ * BSDLIMIT You have BSD-style resource limit stuff (getrlimit/setrlimit) -+ */ -+#define BSDLIMIT -+ -+/* -+ * TERMIO You have struct termio instead of struct sgttyb. -+ * This is usually the case for SVID systems, where -+ * BSD uses sgttyb. POSIX systems should define this -+ * anyway, even though they use struct termios. -+ */ -+#define TERMIO -+ -+/* -+ * SYSVREL Your machine is SYSV based (HPUX, A/UX) -+ * NOTE: don't do this if you are on a Pyramid -- tcsh is -+ * built in a BSD universe. -+ * Set SYSVREL to 1, 2, 3, or 4, depending the version of System V -+ * you are running. Or set it to 0 if you are not SYSV based -+ * -+ * Note: Linux should work with any SYSVREL < 3. -+ */ -+#define SYSVREL 2 -+ -+/* -+ * YPBUGS Work around Sun YP bugs that cause expansion of ~username -+ * to send command output to /dev/null -+ */ -+#undef YPBUGS -+ -+/* -+ * Get the name space we want. -+ * -+ * The more recent defaults for gcc (e.g. on Red Hat 7.0) -+ * also define _POSIX_C_SOURCE, which throws our code off. -+ */ -+ -+#define __STRICT_ANSI__ -+#ifndef _BSD_SOURCE -+# define _BSD_SOURCE -+#endif -+#ifndef _SVID_SOURCE -+# define _SVID_SOURCE -+#endif -+#ifndef _POSIX_SOURCE -+# define _POSIX_SOURCE -+#endif -+#ifndef _XOPEN_SOURCE -+# define _XOPEN_SOURCE 500 -+#endif -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE -+#endif -+ -+/* -+ * Large file support from -+ */ -+ -+#ifndef _LARGEFILE_SOURCE -+# define _LARGEFILE_SOURCE -+#endif -+#ifndef _LARGEFILE64_SOURCE -+# define _LARGEFILE64_SOURCE -+#endif -+#ifndef _FILE_OFFSET_BITS -+# define _FILE_OFFSET_BITS 64 -+#endif -+ -+/****************** local defines *********************/ -+#ifndef _PATH_TCSHELL -+#define _PATH_TCSHELL "/bin/tcsh" -+#endif -+#define ECHO_STYLE BOTH_ECHO -+ -+#if !defined(SYSMALLOC) -+# define SYSMALLOC -+#endif -+#if !defined(NISPLUS) -+# define NISPLUS -+#endif -+#if !defined(POSIX) -+# define POSIX -+#endif -+ -+/* midipix allows paths prepended with double slashes (network paths). */ -+#define HAVE_SLASHSLASH 1 -+ -+#endif /* _h_config */ ---- tcsh-6.19.00/config_f.h.orig 2015-02-22 17:31:54.000000000 +0100 -+++ tcsh-6.19.00/config_f.h 2016-10-14 22:10:42.212000000 +0200 -@@ -135,11 +135,9 @@ - * This can be much slower and no memory statistics will be - * provided. - */ --#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) -+ -+/* always use the system malloc. seriously guys. */ - # define SYSMALLOC --#else --# undef SYSMALLOC --#endif - - /* - * USE_ACCESS Use access(2) rather than stat(2) when POSIX is defined. diff --git a/patches/tcsh-6.20.00.local.patch b/patches/tcsh-6.20.00.local.patch new file mode 100644 index 0000000..1419f9a --- /dev/null +++ b/patches/tcsh-6.20.00.local.patch @@ -0,0 +1,201 @@ +--- tcsh-6.20.00/config_f.h.orig 2016-04-16 17:44:18.000000000 +0200 ++++ tcsh-6.20.00/config_f.h 2016-12-18 02:01:28.699635400 +0100 +@@ -139,11 +139,9 @@ + * This can be much slower and no memory statistics will be + * provided. + */ +-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) ++ ++/* always use the system malloc. seriously guys. */ + # define SYSMALLOC +-#else +-# undef SYSMALLOC +-#endif + + /* + * USE_ACCESS Use access(2) rather than stat(2) when POSIX is defined. +--- tcsh-6.20.00/configure.orig 2016-11-24 16:06:40.000000000 +0100 ++++ tcsh-6.20.00/configure 2016-12-18 01:59:04.537346800 +0100 +@@ -2975,6 +2975,11 @@ + tcsh_config_file=qnx6 + ;; + ++ ## midipix ++ *-midipix*) ++ tcsh_config_file=midipix ++ ;; ++ + * ) + as_fn_error $? "Tcsh can't guess the configuration file name + for \`${host}' systems. +--- tcsh-6.20.00/Makefile.in.orig 2015-08-24 22:09:04.000000000 +0200 ++++ tcsh-6.20.00/Makefile.in 2016-12-18 02:00:06.570196600 +0100 +@@ -24,6 +24,7 @@ + CF=-c + + CPPFLAGS=-I. -I$(srcdir) ++CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir) + + LFLAGS= + # hpux lint +@@ -449,7 +450,7 @@ + + gethost: gethost.c sh.err.h tc.const.h sh.h + rm -f gethost +- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} $(srcdir)/gethost.c ++ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c + + tc.defs.c: gethost host.defs + @rm -f $@.tmp +--- tcsh-6.20.00/sh.h.orig 2016-09-12 18:33:54.000000000 +0200 ++++ tcsh-6.20.00/sh.h 2016-12-18 01:59:27.797673400 +0100 +@@ -338,7 +338,7 @@ + #endif /* POSIX && !WINNT_NATIVE */ + #include + +-#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) ++#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__) + # if !defined(pyr) && !defined(stellar) + # include + # ifdef _MINIX +--- tcsh-6.20.00/config/midipix.orig 1970-01-01 01:00:00.000000000 +0100 ++++ tcsh-6.20.00/config/midipix 2016-12-18 02:01:44.103473500 +0100 +@@ -0,0 +1,138 @@ ++/* ++ * config.h -- configure various defines for tcsh ++ * ++ * All source files should #include this FIRST. ++ * ++ * This is the config file for midipix systems ++ */ ++ ++#ifndef _h_config ++#define _h_config ++/****************** System dependant compilation flags ****************/ ++/* ++ * POSIX This system supports IEEE Std 1003.1-1988 (POSIX). ++ */ ++#define POSIX ++ ++/* ++ * POSIXJOBS This system supports the optional IEEE Std 1003.1-1988 (POSIX) ++ * job control facilities. ++ */ ++#define POSIXJOBS ++ ++/* ++ * VFORK This machine has a vfork(). ++ * It used to be that for job control to work, this define ++ * was mandatory. This is not the case any more. ++ * If you think you still need it, but you don't have vfork, ++ * define this anyway and then do #define vfork fork. ++ * I do this anyway on a Sun because of yellow pages brain damage, ++ * [should not be needed under 4.1] ++ * and on the iris4d cause SGI's fork is sufficiently "virtual" ++ * that vfork isn't necessary. (Besides, SGI's vfork is weird). ++ * Note that some machines eg. rs6000 have a vfork, but not ++ * with the berkeley semantics, so we cannot use it there either. ++ */ ++#undef VFORK ++ ++/* ++ * BSDJOBS You have BSD-style job control (both process groups and ++ * a tty that deals correctly ++ */ ++#define BSDJOBS ++ ++/* ++ * BSDTIMES You have BSD-style process time stuff (like rusage) ++ * This may or may not be true. For example, Apple Unix ++ * (OREO) has BSDJOBS but not BSDTIMES. ++ */ ++#define BSDTIMES ++ ++/* ++ * BSDLIMIT You have BSD-style resource limit stuff (getrlimit/setrlimit) ++ */ ++#define BSDLIMIT ++ ++/* ++ * TERMIO You have struct termio instead of struct sgttyb. ++ * This is usually the case for SVID systems, where ++ * BSD uses sgttyb. POSIX systems should define this ++ * anyway, even though they use struct termios. ++ */ ++#define TERMIO ++ ++/* ++ * SYSVREL Your machine is SYSV based (HPUX, A/UX) ++ * NOTE: don't do this if you are on a Pyramid -- tcsh is ++ * built in a BSD universe. ++ * Set SYSVREL to 1, 2, 3, or 4, depending the version of System V ++ * you are running. Or set it to 0 if you are not SYSV based ++ * ++ * Note: Linux should work with any SYSVREL < 3. ++ */ ++#define SYSVREL 2 ++ ++/* ++ * YPBUGS Work around Sun YP bugs that cause expansion of ~username ++ * to send command output to /dev/null ++ */ ++#undef YPBUGS ++ ++/* ++ * Get the name space we want. ++ * ++ * The more recent defaults for gcc (e.g. on Red Hat 7.0) ++ * also define _POSIX_C_SOURCE, which throws our code off. ++ */ ++ ++#define __STRICT_ANSI__ ++#ifndef _BSD_SOURCE ++# define _BSD_SOURCE ++#endif ++#ifndef _SVID_SOURCE ++# define _SVID_SOURCE ++#endif ++#ifndef _POSIX_SOURCE ++# define _POSIX_SOURCE ++#endif ++#ifndef _XOPEN_SOURCE ++# define _XOPEN_SOURCE 500 ++#endif ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE ++#endif ++ ++/* ++ * Large file support from ++ */ ++ ++#ifndef _LARGEFILE_SOURCE ++# define _LARGEFILE_SOURCE ++#endif ++#ifndef _LARGEFILE64_SOURCE ++# define _LARGEFILE64_SOURCE ++#endif ++#ifndef _FILE_OFFSET_BITS ++# define _FILE_OFFSET_BITS 64 ++#endif ++ ++/****************** local defines *********************/ ++#ifndef _PATH_TCSHELL ++#define _PATH_TCSHELL "/bin/tcsh" ++#endif ++#define ECHO_STYLE BOTH_ECHO ++ ++#if !defined(SYSMALLOC) ++# define SYSMALLOC ++#endif ++#if !defined(NISPLUS) ++# define NISPLUS ++#endif ++#if !defined(POSIX) ++# define POSIX ++#endif ++ ++/* midipix allows paths prepended with double slashes (network paths). */ ++#define HAVE_SLASHSLASH 1 ++ ++#endif /* _h_config */ diff --git a/patches/tmux-2.2.local.patch b/patches/tmux-2.2.local.patch deleted file mode 100644 index 3fdec0a..0000000 --- a/patches/tmux-2.2.local.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- tmux-2.2/configure.orig 2016-04-11 02:01:19.000000000 +0200 -+++ tmux-2.2/configure 2016-06-24 12:56:52.685289900 +0200 -@@ -3664,18 +3664,6 @@ - $as_echo "$ac_cv_prog_cc_g" >&6; } - if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS --elif test $ac_cv_prog_cc_g = yes; then -- if test "$GCC" = yes; then -- CFLAGS="-g -O2" -- else -- CFLAGS="-g" -- fi --else -- if test "$GCC" = yes; then -- CFLAGS="-O2" -- else -- CFLAGS= -- fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 - $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ---- tmux-2.2/Makefile.in.orig 2016-04-11 02:01:16.000000000 +0200 -+++ tmux-2.2/Makefile.in 2016-06-24 12:58:45.526157800 +0200 -@@ -94,10 +94,10 @@ - - # glibc as usual does things ass-backwards and hides useful things by default, - # so everyone has to add this. --@IS_GLIBC_TRUE@am__append_1 = -D_GNU_SOURCE -+am__append_1 = -D_GNU_SOURCE - - # Set flags for gcc. --@IS_GCC_TRUE@am__append_2 = -std=gnu99 -O2 -+@IS_GCC_TRUE@am__append_2 = -std=gnu99 - @IS_DEBUG_TRUE@@IS_GCC_TRUE@am__append_3 = -g -Wno-long-long -Wall -W \ - @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wnested-externs -Wformat=2 \ - @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wmissing-prototypes \ ---- tmux-2.2/tmux.c.orig 2016-03-05 18:55:49.000000000 +0100 -+++ tmux-2.2/tmux.c 2016-06-24 13:00:39.079504000 +0200 -@@ -133,10 +133,12 @@ - errno = ENOTDIR; - goto fail; - } -+#if 0 - if (sb.st_uid != uid || (sb.st_mode & S_IRWXO) != 0) { - errno = EACCES; - goto fail; - } -+#endif - - if (realpath(base, resolved) == NULL) - strlcpy(resolved, base, sizeof resolved); diff --git a/patches/tmux-2.3.local.patch b/patches/tmux-2.3.local.patch new file mode 100644 index 0000000..bbd0af5 --- /dev/null +++ b/patches/tmux-2.3.local.patch @@ -0,0 +1,51 @@ +--- tmux-2.3/configure.orig 2016-09-29 22:55:41.000000000 +0200 ++++ tmux-2.3/configure 2016-12-18 02:04:56.608924500 +0100 +@@ -3676,18 +3676,6 @@ + $as_echo "$ac_cv_prog_cc_g" >&6; } + if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +-elif test $ac_cv_prog_cc_g = yes; then +- if test "$GCC" = yes; then +- CFLAGS="-g -O2" +- else +- CFLAGS="-g" +- fi +-else +- if test "$GCC" = yes; then +- CFLAGS="-O2" +- else +- CFLAGS= +- fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 + $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +--- tmux-2.3/Makefile.in.orig 2016-09-29 22:55:41.000000000 +0200 ++++ tmux-2.3/Makefile.in 2016-12-18 02:05:27.700311700 +0100 +@@ -94,10 +94,10 @@ + + # glibc as usual does things ass-backwards and hides useful things by default, + # so everyone has to add this. +-@IS_GLIBC_TRUE@am__append_1 = -D_GNU_SOURCE ++am__append_1 = -D_GNU_SOURCE + + # Set flags for gcc. +-@IS_GCC_TRUE@am__append_2 = -std=gnu99 -O2 ++@IS_GCC_TRUE@am__append_2 = -std=gnu99 + @IS_DEBUG_TRUE@@IS_GCC_TRUE@am__append_3 = -g -Wno-long-long -Wall -W \ + @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wformat=2 -Wmissing-prototypes \ + @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wstrict-prototypes \ +--- tmux-2.3/tmux.c.orig 2016-06-05 00:30:48.000000000 +0200 ++++ tmux-2.3/tmux.c 2016-12-18 02:05:42.524589500 +0100 +@@ -129,10 +129,12 @@ + errno = ENOTDIR; + goto fail; + } ++#if 0 + if (sb.st_uid != uid || (sb.st_mode & S_IRWXO) != 0) { + errno = EACCES; + goto fail; + } ++#endif + + if (realpath(base, resolved) == NULL) + strlcpy(resolved, base, sizeof resolved); diff --git a/subr/check_updates.subr b/subr/check_updates.subr index 7af20e9..e925f89 100644 --- a/subr/check_updates.subr +++ b/subr/check_updates.subr @@ -16,7 +16,7 @@ cpu_get_fnames() { cu_url_index="https://github.com/${_cpugf_uname%%/*}/${_cpugf_pname%%/*}/releases/"; unset _cpu_uname _cpu_pname; cu_fnames="$(wget ${WGET_ARGS} -qO- ${cu_url_index} |\ - sed -n '//s/^.*\([a-zA-Z]\+-\|v\|\)\(.\+\)<\/span>.*$/\2/p')"; + sed -n '//s/^.*\([a-zA-Z]\+-\|v\|\)\(.\+\)<\/span>.*$/\3/p')"; cu_fname_base="${cu_name}"; cu_fname_ext="${cu_fname#v${cu_version}.}"; else @@ -67,10 +67,11 @@ check_pkg_updates() { fi; for cu_fname in ${cu_fnames}; do cu_fname="${cu_fname##*/}"; cpu_get_version; - if [ -z "${cu_fname_version}" ] \ - || ! echo "${cu_fname_version}" | grep -Eq '^[-_.0-9a-zA-Z]+$' \ + if [ -z "${cu_fname_version}" ]; then + continue; + elif ! echo "${cu_fname_version}" | grep -Eq '^[-_.0-9a-zA-Z]+$' \ || echo "${cu_fname_version}" | grep -Eq '^[_.a-zA-Z]+'; then - log_msg varn "Skipping \`${cu_fname_version}' (empty/invalid version.)"; + log_msg varn "Skipping \`${cu_fname_version}' (invalid version.)"; else _cpu_versions="${_cpu_versions:+${_cpu_versions} }${cu_fname_version}"; fi; diff --git a/vars/build.vars b/vars/build.vars index 180f227..66570af 100644 --- a/vars/build.vars +++ b/vars/build.vars @@ -45,7 +45,7 @@ fi; : ${CHECK_PREREQ_FILES_DYNAMIC:='/usr/share/groff/$(groff -v 2>/dev/null | awk '\''/^GNU groff version /{print $NF}'\'')/tmac/e.tmac'}; : ${CHECK_PREREQ_PERL_MODULES:="autodie ExtUtils::MakeMaker"}; : ${CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_CROSS DLCACHEDIR WORKDIR"}; -: ${CHECK_UPDATES_SKIP:="gmp mpfr mpc binutils binutils_host pkgconf_host psxtypes pemagine dalist ntcon ntapi psxscl psxscl_strace ntctty ptycon pkgconf"}; +: ${CHECK_UPDATES_SKIP:="gmp mpfr mpc binutils binutils_host pkgconf_host psxtypes pemagine dalist ntcon ntapi psxscl psxscl_strace ntctty ptycon pkgconf libevent libressl"}; : ${CHECK_UPDATES_SHOW_NEW:=6}; : ${CLEAR_ENV_VARS_EXCEPT:="ARG_TARBALL ARG_VERBOSE HOME PATH SHELL TERM USER"}; : ${CLEAR_PREFIX_DIRS:="bin i686-nt32-midipix include lib lib64 libexec minipix native share tmp x86_64-nt64-midipix"}; @@ -124,28 +124,28 @@ NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}"; : ${PKG_PKGCONF_VERSION:=0.9.12}; : ${PKG_PKGCONF_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_VERSION}/pkgconf-${PKG_PKGCONF_VERSION}.tar.bz2}; : ${PKG_PKGCONF_INSTALL_FILES:=/=lib/pkgconfig}; -: ${PKG_GMP_VERSION:=5.1.3}; : ${PKG_GMP_SHA256SUM:=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160}; +: ${PKG_GMP_VERSION:=5.1.3}; : ${PKG_GMP_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_VERSION}.tar.bz2}; : ${PKG_GMP_CONFIGURE_ARGS_EXTRA:=--disable-assembly}; : ${PKG_GMP_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_MPFR_VERSION:=3.1.2}; : ${PKG_MPFR_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b}; +: ${PKG_MPFR_VERSION:=3.1.2}; : ${PKG_MPFR_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_VERSION}.tar.bz2}; : ${PKG_MPFR_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE}}; : ${PKG_MPFR_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_MPC_VERSION:=1.0.1}; : ${PKG_MPC_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff}; +: ${PKG_MPC_VERSION:=1.0.1}; : ${PKG_MPC_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_VERSION}.tar.gz}; : ${PKG_MPC_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE}}; : ${PKG_MPC_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_LIBELF_VERSION:=0.8.13}; : ${PKG_LIBELF_SHA256SUM:=591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d}; +: ${PKG_LIBELF_VERSION:=0.8.13}; : ${PKG_LIBELF_URL:=http://www.mr511.de/software/libelf-${PKG_LIBELF_VERSION}.tar.gz}; : ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${TARGET} --prefix=${PREFIX_NATIVE} --target=${TARGET}"}; : ${PKG_LIBELF_MAKEFLAGS_INSTALL:=}; -: ${PKG_BINUTILS_VERSION:=2.24.51}; : ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; +: ${PKG_BINUTILS_VERSION:=2.24.51}; : ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2}; : ${PKG_BINUTILS_CONFIGURE_ARGS_EXTRA:=--with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/}; : ${PKG_BINUTILS_SLIBTOOL:=slibtool-static}; @@ -210,120 +210,120 @@ libgpg_error libassuan libfirm libgcrypt libksba lua ncurses ncursestw ncursesw kbproto xcb_proto xproto libXau libpthread_stubs xcb xextproto xtrans libX11 libXext libICE libSM libXt libXmu renderproto Xrender libXpm libXaw libxkbfile"; LIB_PACKAGES_PREFIX="${PREFIX_NATIVE}"; +: ${PKG_BZIP2_SHA256SUM:=a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd}; +: ${PKG_BZIP2_VERSION:=1.0.6}; +: ${PKG_BZIP2_URL:=http://www.bzip.org/1.0.6/bzip2-${PKG_BZIP2_VERSION}.tar.gz}; +: ${PKG_BZIP2_BUILD_DIR:=bzip2-${PKG_BZIP2_VERSION}}; : ${PKG_BZIP2_CFLAGS_BUILD_EXTRA:=${PACKAGES_CFLAGS_CONFIGURE}}; : ${PKG_BZIP2_INSTALL_FILES:="@bzdiff=bin/bzcmp @bzgrep=bin/bzegrep @bzgrep=bin/bzfgrep @bzmore=bin/bzless libbz2.so.1.0=lib/ libbz2.so.1.0.6=lib/"}; : ${PKG_BZIP2_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so}; : ${PKG_BZIP2_MAKEFLAGS_INSTALL_EXTRA:=PREFIX=${PREFIX_NATIVE}}; : ${PKG_BZIP2_NO_CLEAN:=1}; -: ${PKG_BZIP2_SHA256SUM:=a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd}; -: ${PKG_BZIP2_VERSION:=1.0.6}; -: ${PKG_BZIP2_BUILD_DIR:=bzip2-${PKG_BZIP2_VERSION}}; -: ${PKG_BZIP2_URL:=http://www.bzip.org/1.0.6/bzip2-${PKG_BZIP2_VERSION}.tar.gz}; -: ${PKG_CURL_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_CURL_SHA256SUM:=ddc643ab9382e24bbe4747d43df189a0a6ce38fcb33df041b9cb0b3cd47ae98f}; -: ${PKG_CURL_VERSION:=7.47.1}; +: ${PKG_CURL_VERSION:=7.51.0}; : ${PKG_CURL_URL:=https://curl.haxx.se/download/curl-${PKG_CURL_VERSION}.tar.bz2}; +: ${PKG_CURL_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_EXPAT_SHA256SUM:=d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff}; : ${PKG_EXPAT_VERSION:=2.2.0}; : ${PKG_EXPAT_URL:=http://pkgs.fedoraproject.org/repo/pkgs/expat/expat-${PKG_EXPAT_VERSION}.tar.bz2/2f47841c829facb346eb6e3fab5212e2/expat-${PKG_EXPAT_VERSION}.tar.bz2}; -: ${PKG_LIBZ_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET}}; : ${PKG_LIBZ_SHA256SUM:=abcc2831b7a0e891d0875fa852e9b9510b420d843d3d20aad010f65493fe4f7b}; : ${PKG_LIBZ_VERSION:=1.2.8.2015.12.26}; : ${PKG_LIBZ_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_VERSION}.tar.gz}; -: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64}; -: ${PKG_LIBFFI_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_LIBZ_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET}}; : ${PKG_LIBFFI_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37}; : ${PKG_LIBFFI_VERSION:=3.2.1}; : ${PKG_LIBFFI_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_VERSION}.tar.gz}; +: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64}; +: ${PKG_LIBFFI_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; : ${PKG_GDBM_SHA256SUM:=d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea}; : ${PKG_GDBM_VERSION:=1.12}; : ${PKG_GDBM_URL:=ftp://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_VERSION}.tar.gz}; : ${PKG_PCRE_SHA256SUM:=ccdf7e788769838f8285b3ee672ed573358202305ee361cfec7a4a4fb005bbc7}; : ${PKG_PCRE_VERSION:=8.39}; : ${PKG_PCRE_URL:=ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PKG_PCRE_VERSION}.tar.gz}; +: ${PKG_GLIB_SHA256SUM:=5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db}; +: ${PKG_GLIB_VERSION:=2.46.2}; +: ${PKG_GLIB_URL:=http://ftp.gnome.org/pub/GNOME/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz}; : ${PKG_GLIB_CONFIGURE_ARGS_EXTRA:=--disable-libelf}; : ${PKG_GLIB_ENV_VARS_EXTRA:=LIBFFI_CFLAGS=-I${PREFIX_NATIVE}/lib/libffi-3.2.1/include:LIBFFI_LIBS=-L${PREFIX_NATIVE}/lib -lffi}; : ${PKG_GLIB_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_GLIB_MAKEFLAGS_BUILD_EXTRA:=V=99}; -: ${PKG_GLIB_SHA256SUM:=5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db}; -: ${PKG_GLIB_VERSION:=2.46.2}; -: ${PKG_GLIB_URL:=http://ftp.gnome.org/pub/GNOME/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz}; +: ${PKG_GZIP_SHA256SUM:=1ca41818a23c9c59ef1d5e1d00c0d5eaa2285d931c0fb059637d7c0cc02ad967}; +: ${PKG_GZIP_VERSION:=1.8}; +: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.gz}; : ${PKG_GZIP_CFLAGS_CONFIGURE_EXTRA:=-DNO_ASM -UASMV}; -: ${PKG_GZIP_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET} --sysroot=${PREFIX_NATIVE}}; +: ${PKG_GZIP_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET}}; : ${PKG_GZIP_MAKEFLAGS_BUILD_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; : ${PKG_GZIP_MAKEFLAGS_INSTALL_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; -: ${PKG_GZIP_SHA256SUM:=1ca41818a23c9c59ef1d5e1d00c0d5eaa2285d931c0fb059637d7c0cc02ad967}; -: ${PKG_GZIP_VERSION:=1.2.4}; -: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.gz}; +: ${PKG_LIBARCHIVE_SHA256SUM:=eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e}; +: ${PKG_LIBARCHIVE_VERSION:=3.2.2}; +: ${PKG_LIBARCHIVE_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.gz}; : ${PKG_LIBARCHIVE_CONFIGURE_ARGS_EXTRA:=--without-xml2}; : ${PKG_LIBARCHIVE_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_LIBARCHIVE_MAKEFLAGS_INSTALL_EXTRA:="prefix=:DESTDIR=${PREFIX_NATIVE}:LIBTOOL=slibtool"}; -: ${PKG_LIBARCHIVE_SHA256SUM:=eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e}; -: ${PKG_LIBARCHIVE_VERSION:=3.1.2}; -: ${PKG_LIBARCHIVE_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.gz}; -: ${PKG_LIBPIPELINE_CFLAGS_BUILD_EXTRA:=-Dprogram_name=program_invocation_name}; : ${PKG_LIBPIPELINE_SHA256SUM:=da46d7b20163aadb9db2faae483f734e9096a7550c84b94029abeab62dd1b9ee}; : ${PKG_LIBPIPELINE_VERSION:=1.4.1}; : ${PKG_LIBPIPELINE_URL:=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-${PKG_LIBPIPELINE_VERSION}.tar.gz}; -: ${PKG_LIBRESSL_CFLAGS_CONFIGURE_EXTRA:=-D__MIDIPIX}; -: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm}; +: ${PKG_LIBPIPELINE_CFLAGS_BUILD_EXTRA:=-Dprogram_name=program_invocation_name}; : ${PKG_LIBRESSL_SHA256SUM:=1ee19994cffd047d40f63ba149115dba18a681b0cc923beec301bf424b58d64f}; : ${PKG_LIBRESSL_VERSION:=2.2.6}; : ${PKG_LIBRESSL_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_VERSION}.tar.gz}; +: ${PKG_LIBRESSL_CFLAGS_CONFIGURE_EXTRA:=-D__MIDIPIX}; +: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm}; : ${PKG_LIBEVENT_SHA256SUM:=71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3}; : ${PKG_LIBEVENT_VERSION:=2.0.22-stable}; : ${PKG_LIBEVENT_URL:=https://github.com/libevent/libevent/releases/download/release-${PKG_LIBEVENT_VERSION}/libevent-${PKG_LIBEVENT_VERSION}.tar.gz}; -: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}}; -: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA:=E=echo Q= AR=${TARGET}-ar CC=${TARGET}-gcc LD=${TARGET}-gcc}; -: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:=E=echo Q= prefix=}; : ${PKG_LIBFETCH_SHA256SUM:=3226f53d5ad29cc27510db968ef0d37bf4554b8aaaeadcd56e23067213b08943}; : ${PKG_LIBFETCH_VERSION:=2.33}; -: ${PKG_LIBFETCH_BUILD_DIR:=libfetch-${PKG_LIBFETCH_VERSION}}; : ${PKG_LIBFETCH_URL:=https://sources.archlinux.org/other/libfetch/libfetch-${PKG_LIBFETCH_VERSION}.tar.gz}; +: ${PKG_LIBFETCH_BUILD_DIR:=libfetch-${PKG_LIBFETCH_VERSION}}; +: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}}; +: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA:=E=echo Q= AR=${TARGET}-ar CC=${TARGET}-gcc LD=${TARGET}-gcc}; +: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:=E=echo Q= prefix=}; : ${PKG_LIBGPG_ERROR_SHA256SUM:=9268e1cc487de5e6e4460fca612a06e4f383072ac43ae90603e5e46783d3e540}; -: ${PKG_LIBGPG_ERROR_VERSION:=1.24}; +: ${PKG_LIBGPG_ERROR_VERSION:=1.25}; : ${PKG_LIBGPG_ERROR_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${PKG_LIBGPG_ERROR_VERSION}.tar.bz2}; : ${PKG_LIBASSUAN_SHA256SUM:=22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71}; : ${PKG_LIBASSUAN_VERSION:=2.4.3}; : ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2}; +: ${PKG_LIBFIRM_URL:=http://pp.info.uni-karlsruhe.de/git/libfirm.git}; +: ${PKG_LIBFIRM_URL_TYPE:=git}; : ${PKG_LIBFIRM_BUILD_DIR:=cparser+libfirm/build/libfirm}; -: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../../libfirm --prefix="}; : ${PKG_LIBFIRM_CONFIGURE:=bfirm/configure}; +: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../../libfirm --prefix="}; : ${PKG_LIBFIRM_GIT_BRANCH:=master}; : ${PKG_LIBFIRM_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; : ${PKG_LIBFIRM_PREFIX_EXTRA:=${PREFIX_NATIVE}}; : ${PKG_LIBFIRM_SUBDIR:=libfirm}; -: ${PKG_LIBFIRM_URL:=http://pp.info.uni-karlsruhe.de/git/libfirm.git}; -: ${PKG_LIBFIRM_URL_TYPE:=git}; -: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support gcry_cv_gcc_inline_asm_avx2=no gcry_cv_gcc_inline_asm_avx=no gcry_cv_gcc_inline_asm_bmi2=no gcry_cv_gcc_inline_asm_pclmul=no gcry_cv_gcc_inline_asm_sse41=no gcry_cv_gcc_inline_asm_ssse3=no --disable-amd64-as-feature-detection}; : ${PKG_LIBGCRYPT_SHA256SUM:=ddac6111077d0a1612247587be238c5294dd0ee4d76dc7ba783cc55fb0337071}; -: ${PKG_LIBGCRYPT_VERSION:=1.7.3}; +: ${PKG_LIBGCRYPT_VERSION:=1.7.4}; : ${PKG_LIBGCRYPT_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${PKG_LIBGCRYPT_VERSION}.tar.bz2}; +: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support gcry_cv_gcc_inline_asm_avx2=no gcry_cv_gcc_inline_asm_avx=no gcry_cv_gcc_inline_asm_bmi2=no gcry_cv_gcc_inline_asm_pclmul=no gcry_cv_gcc_inline_asm_sse41=no gcry_cv_gcc_inline_asm_ssse3=no --disable-amd64-as-feature-detection}; : ${PKG_LIBKSBA_SHA256SUM:=41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340}; : ${PKG_LIBKSBA_VERSION:=1.3.5}; : ${PKG_LIBKSBA_URL:=https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${PKG_LIBKSBA_VERSION}.tar.bz2}; -: ${PKG_LUA_BUILD_DIR=lua-5.3.3}; -: ${PKG_LUA_MAKEFLAGS_BUILD_EXTRA:="CC=${TARGET}-gcc midipix"}; -: ${PKG_LUA_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_TOP=${PREFIX_NATIVE}}; : ${PKG_LUA_SHA256SUM:=5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2}; : ${PKG_LUA_VERSION:=5.3.3}; : ${PKG_LUA_URL:=https://www.lua.org/ftp/lua-${PKG_LUA_VERSION}.tar.gz}; -: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --without-pthread"}; +: ${PKG_LUA_BUILD_DIR=lua-5.3.3}; +: ${PKG_LUA_MAKEFLAGS_BUILD_EXTRA:="CC=${TARGET}-gcc midipix"}; +: ${PKG_LUA_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_TOP=${PREFIX_NATIVE}}; : ${PKG_NCURSES_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; : ${PKG_NCURSES_VERSION:=6.0}; -: ${PKG_NCURSES_BUILD_DIR:=ncurses-${PKG_NCURSES_VERSION}-native-${TARGET}}; : ${PKG_NCURSES_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_VERSION}.tar.gz}; -: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --with-pthread"}; +: ${PKG_NCURSES_BUILD_DIR:=ncurses-${PKG_NCURSES_VERSION}-native-${TARGET}}; +: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --without-pthread"}; : ${PKG_NCURSESTW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; : ${PKG_NCURSESTW_VERSION:=6.0}; -: ${PKG_NCURSESTW_BUILD_DIR:=ncursestw-${PKG_NCURSESTW_VERSION}-native-${TARGET}}; : ${PKG_NCURSESTW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_VERSION}.tar.gz}; -: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --with-manpages --with-progs --without-tests --enable-widec --without-pthread"}; -: ${PKG_NCURSESW_INSTALL_FILES:=@ncursesw/ncurses.h=include/ncurses.h}; +: ${PKG_NCURSESTW_BUILD_DIR:=ncursestw-${PKG_NCURSESTW_VERSION}-native-${TARGET}}; +: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --with-pthread"}; : ${PKG_NCURSESW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; : ${PKG_NCURSESW_VERSION:=6.0}; -: ${PKG_NCURSESW_BUILD_DIR:=ncursesw-${PKG_NCURSESW_VERSION}-native-${TARGET}}; : ${PKG_NCURSESW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_VERSION}.tar.gz}; +: ${PKG_NCURSESW_BUILD_DIR:=ncursesw-${PKG_NCURSESW_VERSION}-native-${TARGET}}; +: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --with-manpages --with-progs --without-tests --enable-widec --without-pthread"}; +: ${PKG_NCURSESW_INSTALL_FILES:=@ncursesw/ncurses.h=include/ncurses.h}; : ${PKG_NPTH_SHA256SUM:=bca81940436aed0734eb8d0ff8b179e04cc8c087f5625204419f5f45d736a82a}; : ${PKG_NPTH_VERSION:=1.3}; : ${PKG_NPTH_URL:=https://www.gnupg.org/ftp/gcrypt/npth/npth-${PKG_NPTH_VERSION}.tar.bz2}; @@ -336,10 +336,10 @@ LIB_PACKAGES_PREFIX="${PREFIX_NATIVE}"; : ${PKG_KBPROTO_SHA256SUM:=f882210b76376e3fa006b11dbd890e56ec0942bc56e65d1249ff4af86f90b857}; : ${PKG_KBPROTO_VERSION:=1.0.7}; : ${PKG_KBPROTO_URL:=https://www.x.org/releases/individual/proto/kbproto-${PKG_KBPROTO_VERSION}.tar.bz2}; -: ${PKG_XCB_PROTO_MAKEFLAGS_INSTALL:="DESTDIR=${PREFIX_NATIVE}/"}; : ${PKG_XCB_PROTO_SHA256SUM:=5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906}; : ${PKG_XCB_PROTO_VERSION:=1.12}; : ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/xcb/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.bz2}; +: ${PKG_XCB_PROTO_MAKEFLAGS_INSTALL:="DESTDIR=${PREFIX_NATIVE}/"}; : ${PKG_XPROTO_SHA256SUM:=c6f9747da0bd3a95f86b17fb8dd5e717c8f3ab7f0ece3ba1b247899ec1ef7747}; : ${PKG_XPROTO_VERSION:=7.0.31}; : ${PKG_XPROTO_URL:=https://www.x.org/releases/individual/proto/xproto-${PKG_XPROTO_VERSION}.tar.bz2}; @@ -349,10 +349,10 @@ LIB_PACKAGES_PREFIX="${PREFIX_NATIVE}"; : ${PKG_LIBPTHREAD_STUBS_SHA256SUM:=35b6d54e3cc6f3ba28061da81af64b9a92b7b757319098172488a660e3d87299}; : ${PKG_LIBPTHREAD_STUBS_VERSION:=0.3}; : ${PKG_LIBPTHREAD_STUBS_URL:=https://xcb.freedesktop.org/dist/libpthread-stubs-${PKG_LIBPTHREAD_STUBS_VERSION}.tar.bz2}; -: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:=--disable-randr}; : ${PKG_XCB_SHA256SUM:=4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b}; : ${PKG_XCB_VERSION:=1.12}; : ${PKG_XCB_URL:=https://www.x.org/releases/individual/xcb/libxcb-${PKG_XCB_VERSION}.tar.bz2}; +: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:=--disable-randr}; : ${PKG_XEXTPROTO_SHA256SUM:=f3f4b23ac8db9c3a9e0d8edb591713f3d70ef9c3b175970dd8823dfc92aa5bb0}; : ${PKG_XEXTPROTO_VERSION:=7.3.0}; : ${PKG_XEXTPROTO_URL:=https://www.x.org/releases/individual/proto/xextproto-${PKG_XEXTPROTO_VERSION}.tar.bz2}; @@ -371,11 +371,11 @@ LIB_PACKAGES_PREFIX="${PREFIX_NATIVE}"; : ${PKG_LIBSM_SHA256SUM:=0baca8c9f5d934450a70896c4ad38d06475521255ca63b717a6510fdb6e287bd}; : ${PKG_LIBSM_VERSION:=1.2.2}; : ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.bz2}; -: ${PKG_LIBXT_CFLAGS_CONFIGURE:=${PACKAGES_CFLAGS_CONFIGURE_DEFAULT}}; -: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g}; : ${PKG_LIBXT_SHA256SUM:=46eeb6be780211fdd98c5109286618f6707712235fdd19df4ce1e6954f349f1a}; : ${PKG_LIBXT_VERSION:=1.1.5}; : ${PKG_LIBXT_URL:=https://www.x.org/releases/individual/lib/libXt-${PKG_LIBXT_VERSION}.tar.bz2}; +: ${PKG_LIBXT_CFLAGS_CONFIGURE:=${PACKAGES_CFLAGS_CONFIGURE_DEFAULT}}; +: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g}; : ${PKG_LIBXMU_SHA256SUM:=756edc7c383254eef8b4e1b733c3bf1dc061b523c9f9833ac7058378b8349d0b}; : ${PKG_LIBXMU_VERSION:=1.1.2}; : ${PKG_LIBXMU_URL:=https://www.x.org/releases/individual/lib/libXmu-${PKG_LIBXMU_VERSION}.tar.bz2}; @@ -408,227 +408,227 @@ gawk git gnupg grep hexcurse htop inetutils infounzip infozip irssi john less ly nano netcat openssh p7zip pacman patch perl procps_ng python3 rsync rxvt_unicode sed tar tcsh the_silver_searcher tmux util_linux vim weechat wget which whois xeyes xwd zsh"; LEAF_PACKAGES_PREFIX="${PREFIX_NATIVE}"; -: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}:PKG_CONFIG=${TARGET}-pkg-config}; -: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:=MANDIR=/share/man DOCDIR=/share/doc/apk}; : ${PKG_APK_TOOLS_SHA256SUM:=7e5e86c856ce236c7fd54605ee0b1dbf59920398d3b33f9f6ff0e5f98e6828af}; -: ${PKG_APK_TOOLS_VERSION:=2.6.6}; -: ${PKG_APK_TOOLS_BUILD_DIR:=apk-tools-${PKG_APK_TOOLS_VERSION}}; +: ${PKG_APK_TOOLS_VERSION:=2.6.8}; : ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2}; -: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"}; -: ${PKG_BASH_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_APK_TOOLS_BUILD_DIR:=apk-tools-${PKG_APK_TOOLS_VERSION}}; +: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}:PKG_CONFIG=${TARGET}-pkg-config}; +: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:=MANDIR=/share/man DOCDIR=/share/doc/apk}; : ${PKG_BASH_SHA256SUM:=afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4}; -: ${PKG_BASH_VERSION:=4.3}; +: ${PKG_BASH_VERSION:=4.4-rc2}; : ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz}; +: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"}; +: ${PKG_BASH_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; : ${PKG_BC_SHA256SUM:=7ee4abbcfac03d8a6e1a8a3440558a3d239d6b858585063e745c760957725ecc}; : ${PKG_BC_VERSION:=1.06.95}; : ${PKG_BC_URL:=http://alpha.gnu.org/gnu/bc/bc-${PKG_BC_VERSION}.tar.bz2}; -: ${PKG_CHICKEN_VERSION:=4.11.0}; : ${PKG_CHICKEN_SHA256SUM:=e3dc2b8f95b6a3cd59c85b5bb6bdb2bd9cefc45b5d536a20cad74e3c63f4ad89}; +: ${PKG_CHICKEN_VERSION:=4.11.0}; : ${PKG_CHICKEN_URL:=https://code.call-cc.org/releases/4.11.0/chicken-${PKG_CHICKEN_VERSION}.tar.gz}; : ${PKG_CHICKEN_BUILD_DIR:=chicken-${PKG_CHICKEN_VERSION}}; +: ${PKG_CHICKEN_MAKEFLAGS_BUILD:="PLATFORM=midipix-${ARCH} PREFIX=${PREFIX_NATIVE} TARGET_PREFIX=${PREFIX_NATIVE} C_COMPILER=${TARGET}-gcc HOSTSYSTEM=${TARGET}"}; : ${PKG_CHICKEN_MAKEFLAGS_BUILD_EXTRA_DEBUG:=DEBUGBUILD=1}; : ${PKG_CHICKEN_MAKEFLAGS_BUILD_EXTRA_RELEASE:=DEBUGBUILD=0}; -: ${PKG_CHICKEN_MAKEFLAGS_BUILD:="PLATFORM=midipix-${ARCH} PREFIX=${PREFIX_NATIVE} TARGET_PREFIX=${PREFIX_NATIVE} C_COMPILER=${TARGET}-gcc HOSTSYSTEM=${TARGET}"}; : ${PKG_CHICKEN_MAKEFLAGS_INSTALL:="PLATFORM=midipix-${ARCH} PREFIX=${PREFIX_NATIVE} TARGET_PREFIX=${PREFIX_NATIVE} C_COMPILER=${TARGET}-gcc HOSTSYSTEM=${TARGET}"}; : ${PKG_CHICKEN_NO_CLEAN:=1}; -: ${PKG_CMAKE_VERSION:=3.6.3}; : ${PKG_CMAKE_SHA256SUM:=7d73ee4fae572eb2d7cd3feb48971aea903bb30a20ea5ae8b4da826d8ccad5fe}; +: ${PKG_CMAKE_VERSION:=3.6.3}; : ${PKG_CMAKE_URL:=https://cmake.org/files/v${PKG_CMAKE_VERSION%.*}/cmake-${PKG_CMAKE_VERSION}.tar.gz}; : ${PKG_CMAKE_CONFIGURE_ARGS:="--parallel=${BUILD_CPUS} --prefix="}; : ${PKG_CMAKE_MAKEFLAGS_INSTALL:=}; -: ${PKG_COREUTILS_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; : ${PKG_COREUTILS_SHA256SUM:=ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d}; -: ${PKG_COREUTILS_VERSION:=8.23}; +: ${PKG_COREUTILS_VERSION:=8.26}; : ${PKG_COREUTILS_URL:=https://ftp.gnu.org/gnu/coreutils/coreutils-${PKG_COREUTILS_VERSION}.tar.xz}; +: ${PKG_COREUTILS_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_CPARSER_URL:=http://pp.info.uni-karlsruhe.de/git/cparser.git}; +: ${PKG_CPARSER_URL_TYPE:=git}; : ${PKG_CPARSER_BUILD_DIR:=cparser+libfirm/build/cparser}; -: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../../cparser --prefix="}; : ${PKG_CPARSER_CONFIGURE:=bcparser/configure}; +: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../../cparser --prefix="}; : ${PKG_CPARSER_GIT_BRANCH:=master}; : ${PKG_CPARSER_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; : ${PKG_CPARSER_PREFIX_EXTRA:=${PREFIX_NATIVE}}; : ${PKG_CPARSER_SUBDIR:=cparser}; -: ${PKG_CPARSER_URL:=http://pp.info.uni-karlsruhe.de/git/cparser.git}; -: ${PKG_CPARSER_URL_TYPE:=git}; +: ${PKG_CRON_URL:=git://anonscm.debian.org/pkg-cron/pkg-cron.git}; +: ${PKG_CRON_URL_TYPE:=git}; : ${PKG_CRON_BUILD_DIR:=pkg-cron.git}; : ${PKG_CRON_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PACKAGES_CFLAGS_CONFIGURE} -D__GNU__"}; : ${PKG_CRON_GIT_BRANCH:=debian/3.0pl1-128}; -: ${PKG_CRON_URL:=git://anonscm.debian.org/pkg-cron/pkg-cron.git}; -: ${PKG_CRON_URL_TYPE:=git}; -: ${PKG_DASH_INSTALL_FILES:=@dash=bin/sh}; : ${PKG_DASH_SHA256SUM:=5ecd5bea72a93ed10eb15a1be9951dd51b52e5da1d4a7ae020efd9826b49e659}; : ${PKG_DASH_VERSION:=0.5.9.1}; : ${PKG_DASH_URL:=http://gondor.apana.org.au/~herbert/dash/files/dash-${PKG_DASH_VERSION}.tar.gz}; +: ${PKG_DASH_INSTALL_FILES:=@dash=bin/sh}; : ${PKG_DATAMASH_SHA256SUM:=a9e5acc86af4dd64c7ac7f6554718b40271aa67f7ff6e9819bdd919a25904bb0}; : ${PKG_DATAMASH_VERSION:=1.1.0}; : ${PKG_DATAMASH_URL:=https://ftp.gnu.org/gnu/datamash/datamash-${PKG_DATAMASH_VERSION}.tar.gz}; : ${PKG_DIFFUTILS_SHA256SUM:=dad398ccd5b9faca6b0ab219a036453f62a602a56203ac659b43e889bec35533}; : ${PKG_DIFFUTILS_VERSION:=3.5}; : ${PKG_DIFFUTILS_URL:=https://ftp.gnu.org/gnu/diffutils/diffutils-${PKG_DIFFUTILS_VERSION}.tar.xz}; -: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${PACKAGES_CFLAGS_CONFIGURE}}; -: ${PKG_DOS2UNIX_INSTALL_FILES:="dos2unix=bin/ dos2unix=bin/ @dos2unix=bin/mac2unix @unix2dos=bin/unix2mac"}; : ${PKG_DOS2UNIX_SHA256SUM:=307e0363c19384467bd9a15e1cfea482ca3e3089d76c7a02b969022fff32583a}; : ${PKG_DOS2UNIX_VERSION:=7.3.5-beta3}; -: ${PKG_DOS2UNIX_BUILD_DIR:=dos2unix-${PKG_DOS2UNIX_VERSION}}; : ${PKG_DOS2UNIX_URL:=http://waterlan.home.xs4all.nl/dos2unix/dos2unix-${PKG_DOS2UNIX_VERSION}.tar.gz}; -: ${PKG_ED_CONFIGURE_ARGS="--prefix= CC=${TARGET}-gcc"}; +: ${PKG_DOS2UNIX_BUILD_DIR:=dos2unix-${PKG_DOS2UNIX_VERSION}}; +: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${PACKAGES_CFLAGS_CONFIGURE}}; +: ${PKG_DOS2UNIX_INSTALL_FILES:="dos2unix=bin/ dos2unix=bin/ @dos2unix=bin/mac2unix @unix2dos=bin/unix2mac"}; : ${PKG_ED_SHA256SUM:=c7a98062d0597b41295f03275a2ea07342b18b86653e3b9a51746b9983db8d48}; : ${PKG_ED_VERSION:=1.13}; : ${PKG_ED_URL:=http://ftp5.gwdg.de/pub/linux/slackware/slackware64-current/source/a/ed/ed-${PKG_ED_VERSION}.tar.xz}; +: ${PKG_ED_CONFIGURE_ARGS="--prefix= CC=${TARGET}-gcc"}; : ${PKG_FILE_SHA256SUM:=ea661277cd39bf8f063d3a83ee875432cc3680494169f952787e002bdd3884c0}; : ${PKG_FILE_VERSION:=5.29}; : ${PKG_FILE_URL:=ftp://ftp.astron.com/pub/file/file-${PKG_FILE_VERSION}.tar.gz}; -: ${PKG_FINDUTILS_CFLAGS_CONFIGURE_EXTRA:=-Dendpwent=setpwent}; : ${PKG_FINDUTILS_SHA256SUM:=0de3cf625a5c9f154eee3171e072515ffdde405244dd00502af617ac57b73ae2}; -: ${PKG_FINDUTILS_VERSION:=4.5.14}; +: ${PKG_FINDUTILS_VERSION:=4.5.19}; : ${PKG_FINDUTILS_URL:=http://alpha.gnu.org/gnu/findutils/findutils-${PKG_FINDUTILS_VERSION}.tar.gz}; +: ${PKG_FINDUTILS_CFLAGS_CONFIGURE_EXTRA:=-Dendpwent=setpwent}; : ${PKG_GAWK_SHA256SUM:=53e184e2d0f90def9207860531802456322be091c7b48f23fdc79cda65adc266}; : ${PKG_GAWK_VERSION:=4.1.4}; : ${PKG_GAWK_URL:=https://ftp.gnu.org/gnu/gawk/gawk-${PKG_GAWK_VERSION}.tar.xz}; -: ${PKG_GIT_ENV_VARS_EXTRA:="ac_cv_fread_reads_directories=1:ac_cv_snprintf_returns_bogus=0"}; -: ${PKG_GIT_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; : ${PKG_GIT_SHA256SUM:=dad202c1a2dec4caa2a6cab5c1ca8dc486206fd4a39585613bece8aa8c9da93b}; -: ${PKG_GIT_VERSION:=2.9.0}; +: ${PKG_GIT_VERSION:=2.11.0-rc3}; +: ${PKG_GIT_URL:=https://github.com/git/git/archive/v${PKG_GIT_VERSION}.tar.gz}; : ${PKG_GIT_BUILD_DIR:=git-${PKG_GIT_VERSION}}; +: ${PKG_GIT_ENV_VARS_EXTRA:="ac_cv_fread_reads_directories=1:ac_cv_snprintf_returns_bogus=0"}; +: ${PKG_GIT_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; : ${PKG_GIT_SUBDIR:=${PKG_GIT_BUILD_DIR}}; -: ${PKG_GIT_URL:=https://github.com/git/git/archive/v${PKG_GIT_VERSION}.tar.gz}; -: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"}; : ${PKG_GNUPG_SHA256SUM:=c28c1a208f1b8ad63bdb6b88d252f6734ff4d33de6b54e38494b11d49e00ffdd}; -: ${PKG_GNUPG_VERSION:=2.1.15}; +: ${PKG_GNUPG_VERSION:=2.1.16}; : ${PKG_GNUPG_URL:=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${PKG_GNUPG_VERSION}.tar.bz2}; +: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"}; : ${PKG_GREP_SHA256SUM:=ad4cc44d23074a1c3a8baae8fbafff2a8c60f38a9a6108f985eef6fbee6dcaeb}; : ${PKG_GREP_VERSION:=2.27}; : ${PKG_GREP_URL:=https://ftp.gnu.org/gnu/grep/grep-${PKG_GREP_VERSION}.tar.xz}; -: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; -: ${PKG_HEXCURSE_GIT_BRANCH:=master}; : ${PKG_HEXCURSE_URL:=https://github.com/LonnyGomes/hexcurse}; : ${PKG_HEXCURSE_URL_TYPE:=git}; -: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; +: ${PKG_HEXCURSE_GIT_BRANCH:=master}; : ${PKG_HTOP_SHA256SUM:=f410626dfaf6b70fdf73cd7bb33cae768869707028d847fed94a978e974f5666}; : ${PKG_HTOP_VERSION:=2.0.1}; : ${PKG_HTOP_URL:=http://hisham.hm/htop/releases/${PKG_HTOP_VERSION}/htop-${PKG_HTOP_VERSION}.tar.gz}; -: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --disable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-syslogd --disable-talkd --disable-telnetd --disable-tftpd --disable-uucpd --disable-ftp --disable-dnsdomainname --disable-hostname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --disable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute"}; +: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; : ${PKG_INETUTILS_SHA256SUM:=849d96f136effdef69548a940e3e0ec0624fc0c81265296987986a0dd36ded37}; : ${PKG_INETUTILS_VERSION=1.9.4}; : ${PKG_INETUTILS_URL:=https://ftp.gnu.org/gnu/inetutils/inetutils-${PKG_INETUTILS_VERSION}.tar.xz}; +: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --disable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-syslogd --disable-talkd --disable-telnetd --disable-tftpd --disable-uucpd --disable-ftp --disable-dnsdomainname --disable-hostname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --disable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute"}; +: ${PKG_INFOUNZIP_SHA256SUM:=036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37}; +: ${PKG_INFOUNZIP_VERSION:=60}; +: ${PKG_INFOUNZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/unzip${PKG_INFOUNZIP_VERSION}.tgz}; : ${PKG_INFOUNZIP_BUILD_DIR:=unzip60}; : ${PKG_INFOUNZIP_INSTALL_FILES:="funzip=bin/ unzip=bin/ unzipsfx=bin/"}; : ${PKG_INFOUNZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; : ${PKG_INFOUNZIP_NO_MAKE_INSTALL:=1}; -: ${PKG_INFOUNZIP_SHA256SUM:=036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37}; : ${PKG_INFOUNZIP_SUBDIR:=${PKG_INFOUNZIP_BUILD_DIR}}; -: ${PKG_INFOUNZIP_VERSION:=60}; -: ${PKG_INFOUNZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/unzip${PKG_INFOUNZIP_VERSION}.tgz}; -: ${PKG_INFOZIP_INSTALL_FILES:="zip=bin/ zipcloak=bin/ zipnote=bin/ zipsplit=bin/"}; -: ${PKG_INFOZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; -: ${PKG_INFOZIP_NO_MAKE_INSTALL:=1}; : ${PKG_INFOZIP_SHA256SUM:=f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369}; : ${PKG_INFOZIP_VERSION:=30}; +: ${PKG_INFOZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/zip${PKG_INFOZIP_VERSION}.tgz}; : ${PKG_INFOZIP_BUILD_DIR:=zip${PKG_INFOZIP_VERSION}}; +: ${PKG_INFOZIP_INSTALL_FILES:="zip=bin/ zipcloak=bin/ zipnote=bin/ zipsplit=bin/"}; +: ${PKG_INFOZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; +: ${PKG_INFOZIP_NO_MAKE_INSTALL:=1}; : ${PKG_INFOZIP_SUBDIR:=${PKG_INFOZIP_BUILD_DIR}}; -: ${PKG_INFOZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/zip${PKG_INFOZIP_VERSION}.tgz}; -: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}}; : ${PKG_IRSSI_SHA256SUM:=30043784815bb864b1bb66a82c1e659c325be0a18ddcf76fc101812e36c39c20}; -: ${PKG_IRSSI_VERSION=0.8.18}; -: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/0.8.18/irssi-0.8.18.tar.gz}; +: ${PKG_IRSSI_VERSION=0.8.20}; +: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/${PKG_IRSSI_VERSION}/irssi-${PKG_IRSSI_VERSION}.tar.gz}; +: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}}; +: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266}; +: ${PKG_JOHN_VERSION:=1.8.0}; +: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz}; +: ${PKG_JOHN_BUILD_DIR:=john-${PKG_JOHN_VERSION}}; : ${PKG_JOHN_DISABLED:=$(if [ "${ARCH}" = "nt32" ]; then echo 1; fi)}; : ${PKG_JOHN_INSTALL_FILES:="run/john=bin/ run/mailer=bin/ run/makechr=bin/ run/relbench=bin/ run/unafs=bin/ run/unique=bin/ run/unshadow=bin/ /=share/john run/ascii.chr=share/john/ run/digits.chr=share/john/ run/john.conf=share/john/ run/lm_ascii.chr=share/john/ run/password.lst=share/john/"}; : ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_DEBUG:="-C src midipix-x86-64"}; : ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_RELEASE:="-C src midipix-x86-64 LDFLAGS_DEBUG=-s"}; : ${PKG_JOHN_MAKEFLAGS_INSTALL_EXTRA:="-C src"}; : ${PKG_JOHN_NO_MAKE_INSTALL:=1}; -: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266}; -: ${PKG_JOHN_VERSION:=1.8.0}; -: ${PKG_JOHN_BUILD_DIR:=john-${PKG_JOHN_VERSION}}; : ${PKG_JOHN_SUBDIR:=john-${PKG_JOHN_VERSION}}; -: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz}; : ${PKG_LESS_SHA256SUM:=3fa38f2cf5e9e040bb44fffaa6c76a84506e379e47f5a04686ab78102090dda5}; : ${PKG_LESS_VERSION:=481}; : ${PKG_LESS_URL:=http://www.greenwoodsoftware.com/less/less-${PKG_LESS_VERSION}.tar.gz}; -: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; -: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; : ${PKG_LYNX_SHA256SUM:=6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7}; -: ${PKG_LYNX_SUBDIR:=lynx2-8-8}; : ${PKG_LYNX_VERSION:=2.8.8rel.2}; : ${PKG_LYNX_URL:=ftp://invisible-island.net/lynx/tarballs/lynx${PKG_LYNX_VERSION}.tar.bz2}; +: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; +: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_LYNX_SUBDIR:=lynx2-8-8}; : ${PKG_MAKE_SHA256SUM:=d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589}; : ${PKG_MAKE_VERSION:=4.2.1}; : ${PKG_MAKE_URL:=https://ftp.gnu.org/gnu/make/make-${PKG_MAKE_VERSION}.tar.bz2}; : ${PKG_MAN_DB_SHA256SUM:=08edbc52f24aca3eebac429b5444efd48b9b90b9b84ca0ed5507e5c13ed10f3f}; -: ${PKG_MAN_DB_SLIBTOOL:=slibtool-static}; : ${PKG_MAN_DB_VERSION:=2.7.6.1}; : ${PKG_MAN_DB_URL:=http://download.savannah.gnu.org/releases/man-db/man-db-${PKG_MAN_DB_VERSION}.tar.xz}; -: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; -: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"}; +: ${PKG_MAN_DB_SLIBTOOL:=slibtool-static}; : ${PKG_MC_SHA256SUM:=0447bdddc0baa81866e66f50f9a545d29d6eebb68b0ab46c98d8fddd2bf4e44d}; -: ${PKG_MC_VERSION:=4.8.17}; +: ${PKG_MC_VERSION:=4.8.18}; : ${PKG_MC_URL:=http://ftp.midnight-commander.org/mc-${PKG_MC_VERSION}.tar.xz}; +: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; +: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"}; +: ${PKG_MKSH_SHA256SUM:=8bce3837c386684aa7780f085f1a4dbd5e3e26fb5c528ee0d41ae29af7f39013}; +: ${PKG_MKSH_VERSION:=R54}; +: ${PKG_MKSH_URL:=http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz}; : ${PKG_MKSH_BUILD_CMDLINE:="sh Build.sh"}; : ${PKG_MKSH_BUILD_DIR:=mksh}; : ${PKG_MKSH_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PACKAGES_CFLAGS_CONFIGURE:+${PACKAGES_CFLAGS_CONFIGURE} }-DMKSH_NOPROSPECTOFWORK"}; : ${PKG_MKSH_INSTALL_FILES:="mksh=bin/ /=share/doc/mksh/examples dot.mkshrc=share/doc/mksh/examples/ mksh.1=share/man/man1/"}; : ${PKG_MKSH_NO_MAKE_INSTALL:=1}; -: ${PKG_MKSH_SHA256SUM:=8bce3837c386684aa7780f085f1a4dbd5e3e26fb5c528ee0d41ae29af7f39013}; : ${PKG_MKSH_SUBDIR:=${PKG_MKSH_BUILD_DIR}}; -: ${PKG_MKSH_VERSION:=R54}; -: ${PKG_MKSH_URL:=http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz}; : ${PKG_NANO_SHA256SUM:=b2b060129b9feff2d4870d803a441178c96531de9aed144ec0b83bd63ccb12ee}; : ${PKG_NANO_VERSION:=2.5.3}; : ${PKG_NANO_URL:=http://www.nano-editor.org/dist/v${PKG_NANO_VERSION%.[0-9]}/nano-${PKG_NANO_VERSION}.tar.gz}; +: ${PKG_NETCAT_SHA256SUM:=5b3fda14e972d908896a605293f4634a72e2968278117410e12d8b3faf9a3976}; +: ${PKG_NETCAT_VERSION:=110}; +: ${PKG_NETCAT_URL:=https://dl.packetstormsecurity.net/UNIX/netcat/nc110.tgz}; : ${PKG_NETCAT_BUILD_DIR:=nc110}; : ${PKG_NETCAT_ENV_VARS_EXTRA:="CFLAGS_EXTRA=${PACKAGES_CFLAGS_CONFIGURE}:LDFLAGS=${PACKAGES_LDFLAGS_CONFIGURE}"}; : ${PKG_NETCAT_INSTALL_FILES:=nc=bin/}; : ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_DEBUG:="midipix CC=${TARGET}-gcc"}; : ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_RELEASE:="midipix CC=${TARGET}-gcc LDFLAGS_DEBUG=-s"}; : ${PKG_NETCAT_NO_MAKE_INSTALL:=1}; -: ${PKG_NETCAT_SHA256SUM:=5b3fda14e972d908896a605293f4634a72e2968278117410e12d8b3faf9a3976}; -: ${PKG_NETCAT_SUBDIR_CREATE:=1}; : ${PKG_NETCAT_SUBDIR:=${PKG_NETCAT_BUILD_DIR}}; -: ${PKG_NETCAT_VERSION:=110}; -: ${PKG_NETCAT_URL:=https://dl.packetstormsecurity.net/UNIX/netcat/nc110.tgz}; -: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA_DEBUG:=--disable-strip}; -: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys}; +: ${PKG_NETCAT_SUBDIR_CREATE:=1}; : ${PKG_OPENSSH_SHA256SUM:=3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc}; : ${PKG_OPENSSH_VERSION:=7.3p1}; : ${PKG_OPENSSH_URL:=http://artfiles.org/openbsd/OpenSSH/portable/openssh-${PKG_OPENSSH_VERSION}.tar.gz}; +: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA_DEBUG:=--disable-strip}; +: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys}; +: ${PKG_P7ZIP_URL:=https://github.com/lalbornoz/p7zip-midipix.git}; +: ${PKG_P7ZIP_URL_TYPE:=git}; : ${PKG_P7ZIP_BUILD_DIR:=p7zip-midipix.git}; : ${PKG_P7ZIP_GIT_BRANCH:=master}; : ${PKG_P7ZIP_INSTALL_FILES:="bin/7za=bin/"}; : ${PKG_P7ZIP_NO_MAKE_INSTALL:=1}; -: ${PKG_P7ZIP_URL:=https://github.com/lalbornoz/p7zip-midipix.git}; -: ${PKG_P7ZIP_URL_TYPE:=git}; -: ${PKG_PACMAN_CONFIGURE_ARGS_EXTRA:=--disable-doc}; : ${PKG_PACMAN_SHA256SUM:=84599e2ee2158134fd704f1cd681ea46e021165bed4df5f002aa1748caef9e7b}; : ${PKG_PACMAN_VERSION:=5.0.1}; : ${PKG_PACMAN_URL:=https://projects.archlinux.org/pacman.git/snapshot/pacman-${PKG_PACMAN_VERSION}.tar.gz}; +: ${PKG_PACMAN_CONFIGURE_ARGS_EXTRA:=--disable-doc}; : ${PKG_PATCH_SHA256SUM:=7436f5a19f93c3ca83153ce9c5cbe4847e97c5d956e57a220121e741f6e7968f}; : ${PKG_PATCH_VERSION:=2.7.5}; : ${PKG_PATCH_URL:=https://ftp.gnu.org/gnu/patch/patch-${PKG_PATCH_VERSION}.tar.gz}; -: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include --sysroot=${PREFIX_NATIVE} --target=${TARGET}"}; -: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${TARGET}"}; -: ${PKG_PERL_MAKEFLAGS_BUILD:=-j1}; : ${PKG_PERL_SHA256SUM:=2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27}; : ${PKG_PERL_VERSION:=5.22.1}; : ${PKG_PERL_URL:=http://www.cpan.org/src/5.0/perl-${PKG_PERL_VERSION}.tar.gz}; -: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; +: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include --sysroot=${PREFIX_NATIVE} --target=${TARGET}"}; +: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${TARGET}"}; +: ${PKG_PERL_MAKEFLAGS_BUILD:=-j1}; : ${PKG_PROCPS_NG_SHA256SUM:=b1036c109f271c7c50325b11a748236f8e58aa1dbafefb30c995ff1d05b4a1a8}; : ${PKG_PROCPS_NG_VERSION:=3.3.12}; -: ${PKG_PROCPS_NG_SUBDIR:=procps-v${PKG_PROCPS_NG_VERSION}-e0784ddaed30d095bb1d9a8ad6b5a23d10a212c4}; : ${PKG_PROCPS_NG_URL:=https://gitlab.com/procps-ng/procps/repository/archive.tar.gz?ref=v${PKG_PROCPS_NG_VERSION}}; +: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; +: ${PKG_PROCPS_NG_SUBDIR:=procps-v${PKG_PROCPS_NG_VERSION}-e0784ddaed30d095bb1d9a8ad6b5a23d10a212c4}; +: ${PKG_PYTHON3_SHA256SUM:=687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7}; +: ${PKG_PYTHON3_VERSION:=3.5.1}; +: ${PKG_PYTHON3_URL:=https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tgz}; : ${PKG_PYTHON3_CONFIGURE_ARGS:="--build=x86_64 -C --enable-ipv6 --enable-shared --host=${TARGET} --prefix=${PREFIX_NATIVE} --without-ensurepip"}; : ${PKG_PYTHON3_ENV_VARS_EXTRA:="BLDSHARED=${TARGET}-gcc -shared -mout-implib --sysroot=${PREFIX_NATIVE}:CC=${TARGET}-gcc:CFLAGS=--sysroot=${PREFIX_NATIVE}:CPPFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=-L${PREFIX_NATIVE}/lib"}: : ${PKG_PYTHON3_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; -: ${PKG_PYTHON3_SHA256SUM:=687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7}; -: ${PKG_PYTHON3_VERSION:=3.5.1}; : ${PKG_PYTHON3_SUBDIR:=Python-${PKG_PYTHON3_VERSION}}; -: ${PKG_PYTHON3_URL:=https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tgz}; -: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:=--with-included-popt --with-included-zlib}; : ${PKG_RSYNC_SHA256SUM:=ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2}; : ${PKG_RSYNC_VERSION:=3.1.2}; : ${PKG_RSYNC_URL:=https://download.samba.org/pub/rsync/src/rsync-${PKG_RSYNC_VERSION}.tar.gz}; -: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp}; +: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:=--with-included-popt --with-included-zlib}; : ${PKG_RXVT_UNICODE_SHA256SUM:=e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd}; : ${PKG_RXVT_UNICODE_VERSION:=9.22}; : ${PKG_RXVT_UNICODE_URL:=http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-${PKG_RXVT_UNICODE_VERSION}.tar.bz2}; +: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp}; : ${PKG_SED_SHA256SUM:=f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7}; : ${PKG_SED_VERSION:=4.2.2}; : ${PKG_SED_URL:=https://ftp.gnu.org/gnu/sed/sed-${PKG_SED_VERSION}.tar.bz2}; @@ -636,35 +636,35 @@ LEAF_PACKAGES_PREFIX="${PREFIX_NATIVE}"; : ${PKG_TAR_VERSION:=1.29}; : ${PKG_TAR_URL:=https://ftp.gnu.org/gnu/tar/tar-${PKG_TAR_VERSION}.tar.gz}; : ${PKG_TCSH_SHA256SUM:=12e271e0b89e4259d9d6e8d525322e77340e7244cfbd199a591e5f8146285c49}; -: ${PKG_TCSH_VERSION:=6.19.00}; +: ${PKG_TCSH_VERSION:=6.20.00}; : ${PKG_TCSH_URL:=http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz}; : ${PKG_THE_SILVER_SEARCHER_SHA256SUM:=6f4a78e1f1dfa5434c19e5a585ac8cefee69986f90920928498217b36b84a46c}; : ${PKG_THE_SILVER_SEARCHER_VERSION:=1.0.2}; : ${PKG_THE_SILVER_SEARCHER_URL:=http://geoff.greer.fm/ag/releases/the_silver_searcher-${PKG_THE_SILVER_SEARCHER_VERSION}.tar.gz}; : ${PKG_TMUX_SHA256SUM:=bc28541b64f99929fe8e3ae7a02291263f3c97730781201824c0f05d7c8e19e4}; -: ${PKG_TMUX_VERSION:=2.2}; +: ${PKG_TMUX_VERSION:=2.3}; : ${PKG_TMUX_URL:=https://github.com/tmux/tmux/releases/download/${PKG_TMUX_VERSION}/tmux-${PKG_TMUX_VERSION}.tar.gz}; -: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-wall --disable-write}; -: ${PKG_UTIL_LINUX_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; : ${PKG_UTIL_LINUX_SHA256SUM:=133c14f625d40e90e73e9d200faf3f2ce87937b99f923c84e5504ac0badc71d6}; : ${PKG_UTIL_LINUX_VERSION:=2.27}; : ${PKG_UTIL_LINUX_URL:=https://www.kernel.org/pub/linux/utils/util-linux/v${PKG_UTIL_LINUX_VERSION}/util-linux-${PKG_UTIL_LINUX_VERSION}.tar.gz}; +: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-wall --disable-write}; +: ${PKG_UTIL_LINUX_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; +: ${PKG_VIM_SHA256SUM:=8de19b12cabde17b87f915a05e1855f6ff8404962947c5cf2204cf51f1ce5d67}; +: ${PKG_VIM_VERSION:=7.4.1952}; +: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz}; +: ${PKG_VIM_BUILD_DIR:=${PKG_VIM_SUBDIR}}; +: ${PKG_VIM_CONFIG_CACHE_EXTRA:=${PKG_VIM_BUILD_DIR}/src/auto}; : ${PKG_VIM_CONFIGURE_ARGS_EXTRA:=--with-tlib=ncursesw}; : ${PKG_VIM_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; : ${PKG_VIM_INSTALL_FILES:=@vim=bin/vi}; : ${PKG_VIM_MAKEFLAGS_INSTALL_EXTRA:=STRIP=/bin/true}; -: ${PKG_VIM_SHA256SUM:=8de19b12cabde17b87f915a05e1855f6ff8404962947c5cf2204cf51f1ce5d67}; -: ${PKG_VIM_VERSION:=7.4.1952}; : ${PKG_VIM_SUBDIR:=vim-${PKG_VIM_VERSION}}; -: ${PKG_VIM_BUILD_DIR:=${PKG_VIM_SUBDIR}}; -: ${PKG_VIM_CONFIG_CACHE_EXTRA:=${PKG_VIM_BUILD_DIR}/src/auto}; -: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz}; -: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-python --disable-python3 --disable-tcl"}; -: ${PKG_WEECHAT_ENV_VARS_EXTRA:="CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config:PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config"}; -: ${PKG_WEECHAT_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_WEECHAT_SHA256SUM:=3061e57460e0e3e4533551c45ced53b222fe0933848250d0fb7337d9aacfd853}; : ${PKG_WEECHAT_VERSION:=1.6}; : ${PKG_WEECHAT_URL:=https://weechat.org/files/src/weechat-${PKG_WEECHAT_VERSION}.tar.gz}; +: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-python --disable-python3 --disable-tcl"}; +: ${PKG_WEECHAT_ENV_VARS_EXTRA:="CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config:PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config"}; +: ${PKG_WEECHAT_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; : ${PKG_WGET_SHA256SUM:=b5b55b75726c04c06fe253daec9329a6f1a3c0c1878e3ea76ebfebc139ea9cc1}; : ${PKG_WGET_VERSION:=1.18}; : ${PKG_WGET_URL:=https://ftp.gnu.org/gnu/wget/wget-${PKG_WGET_VERSION}.tar.xz}; @@ -674,10 +674,10 @@ LEAF_PACKAGES_PREFIX="${PREFIX_NATIVE}"; : ${PKG_WHICH_URL:=https://ftp.gnu.org/gnu/which/which-${PKG_WHICH_VERSION}.tar.gz}; : ${PKG_WHOIS_SHA256SUM:=d7af1e89e7b3c63835e78bcea6c8aeb14640a3f1027f18b7b619a47100a6f2dc}; : ${PKG_WHOIS_VERSION:=5.2.13}; +: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz}; : ${PKG_WHOIS_BUILD_DIR:=whois-${PKG_WHOIS_VERSION}}; : ${PKG_WHOIS_MAKEFLAGS_INSTALL:=BASEDIR=${PREFIX_NATIVE}}; : ${PKG_WHOIS_SUBDIR:=${PKG_WHOIS_BUILD_DIR}}; -: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz}; : ${PKG_XEYES_SHA256SUM:=975e98680cd59e1f9439016386609546ed08c284d0f05a95276f96aca6e8a521}; : ${PKG_XEYES_VERSION:=1.1.1}; : ${PKG_XEYES_URL:=https://www.x.org/releases/individual/app/xeyes-${PKG_XEYES_VERSION}.tar.bz2}; diff --git a/vars/check_updates.vars b/vars/check_updates.vars index 29a1b73..3dc88fd 100644 --- a/vars/check_updates.vars +++ b/vars/check_updates.vars @@ -37,6 +37,10 @@ pkg_infounzip_check_updates() { cu_fname="${cu_url##*/}"; cu_fname_base="${cu_fname%%[0-9]*}"; cu_fname_ext="${cu_fname#${cu_fname_base}${cu_version}.}"; + cu_url_index="${cu_url%/*}/"; + cu_fnames="$(wget ${WGET_ARGS} -qO- "${cu_url_index}" |\ + sed -n '/[hH][rR][eE][fF]="[^"]\+"/s/^.*[hH][rR][eE][fF]="\([^"]\+\)".*$/\1/p' |\ + grep -Ev '/(zip232|unzip552)\..+$')"; ;; get_version) if [ "${cu_fname#${cu_fname_base}}" != "${cu_fname}" ]\ @@ -52,6 +56,17 @@ pkg_infozip_check_updates() { pkg_infounzip_check_updates "${@}"; }; +pkg_john_check_updates() { + case "${1}" in + get_fnames) + cu_url_index="${cu_url%/*}/"; + cu_fnames="$(wget ${WGET_ARGS} -qO- "${cu_url_index}" |\ + sed -n '/[hH][rR][eE][fF]="[^"]\+"/s/^.*[hH][rR][eE][fF]="\([^"]\+\)".*$/\1/p' |\ + grep -Ev 'john-.+-jumbo-.+\.')"; + ;; + esac; +}; + pkg_less_check_updates() { case "${1}" in get_fnames)