diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2022-11-08 22:21:43 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-11-09 07:00:18 +0100 |
commit | 458c6cc7f8c05cd766aaa02b9468e25a234741d1 (patch) | |
tree | 2565a72f03c5a93658fc44b8c053cbe06222d7b1 /source/a | |
parent | e0d8e24a7a1e7d6749c7d4b8af834b657fbe3cad (diff) | |
download | current-458c6cc7f8c05cd766aaa02b9468e25a234741d1.tar.gz current-458c6cc7f8c05cd766aaa02b9468e25a234741d1.tar.xz |
Tue Nov 8 22:21:43 UTC 202220221108222143
a/bash-5.2.009-x86_64-1.txz: Upgraded.
a/glibc-zoneinfo-2022f-noarch-1.txz: Upgraded.
a/sed-4.9-x86_64-1.txz: Upgraded.
ap/mariadb-10.6.11-x86_64-1.txz: Upgraded.
This is a bugfix release.
For more information, see:
https://mariadb.com/kb/en/mariadb-10-6-11-release-notes
d/ccache-4.7.3-x86_64-1.txz: Upgraded.
d/meson-0.64.0-x86_64-1.txz: Upgraded.
d/patchelf-0.17.0-x86_64-1.txz: Upgraded.
kde/bluedevil-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-grub-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-gtk-5.26.3-x86_64-1.txz: Upgraded.
kde/drkonqi-5.26.3-x86_64-1.txz: Upgraded.
kde/kactivitymanagerd-5.26.3-x86_64-1.txz: Upgraded.
kde/kde-cli-tools-5.26.3-x86_64-1.txz: Upgraded.
kde/kde-gtk-config-5.26.3-x86_64-1.txz: Upgraded.
kde/kdecoration-5.26.3-x86_64-1.txz: Upgraded.
kde/kdeplasma-addons-5.26.3-x86_64-1.txz: Upgraded.
kde/kgamma5-5.26.3-x86_64-1.txz: Upgraded.
kde/khotkeys-5.26.3-x86_64-1.txz: Upgraded.
kde/kinfocenter-5.26.3-x86_64-1.txz: Upgraded.
kde/kmenuedit-5.26.3-x86_64-1.txz: Upgraded.
kde/kpipewire-5.26.3-x86_64-1.txz: Upgraded.
kde/kscreen-5.26.3-x86_64-1.txz: Upgraded.
kde/kscreenlocker-5.26.3-x86_64-1.txz: Upgraded.
kde/ksshaskpass-5.26.3-x86_64-1.txz: Upgraded.
kde/ksystemstats-5.26.3-x86_64-1.txz: Upgraded.
kde/kwallet-pam-5.26.3-x86_64-1.txz: Upgraded.
kde/kwayland-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/kwin-5.26.3-x86_64-1.txz: Upgraded.
kde/kwrited-5.26.3-x86_64-1.txz: Upgraded.
kde/layer-shell-qt-5.26.3-x86_64-1.txz: Upgraded.
kde/libkscreen-5.26.3-x86_64-1.txz: Upgraded.
kde/libksysguard-5.26.3-x86_64-1.txz: Upgraded.
kde/milou-5.26.3-x86_64-1.txz: Upgraded.
kde/oxygen-5.26.3-x86_64-1.txz: Upgraded.
kde/oxygen-sounds-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-browser-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-desktop-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-disks-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-firewall-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-nm-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-pa-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-sdk-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-systemmonitor-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-vault-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-workspace-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-workspace-wallpapers-5.26.3-x86_64-1.txz: Upgraded.
kde/polkit-kde-agent-1-5.26.3-x86_64-1.txz: Upgraded.
kde/powerdevil-5.26.3-x86_64-1.txz: Upgraded.
kde/qqc2-breeze-style-5.26.3-x86_64-1.txz: Upgraded.
kde/sddm-kcm-5.26.3-x86_64-1.txz: Upgraded.
kde/systemsettings-5.26.3-x86_64-1.txz: Upgraded.
kde/xdg-desktop-portal-kde-5.26.3-x86_64-1.txz: Upgraded.
l/Imath-3.1.6-x86_64-1.txz: Upgraded.
l/imagemagick-7.1.0_52-x86_64-1.txz: Upgraded.
l/libspectre-0.2.11-x86_64-1.txz: Upgraded.
n/mutt-2.2.8-x86_64-1.txz: Upgraded.
x/mesa-22.2.3-x86_64-1.txz: Upgraded.
x/wayland-protocols-1.28-noarch-1.txz: Upgraded.
Diffstat (limited to 'source/a')
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-003 | 89 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-004 | 70 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-005 | 47 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-006 | 293 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-007 | 262 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-008 | 58 | ||||
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-009 | 43 | ||||
-rwxr-xr-x | source/a/sed/sed.SlackBuild | 2 |
8 files changed, 863 insertions, 1 deletions
diff --git a/source/a/bash/bash-5.2-patches/bash52-003 b/source/a/bash/bash-5.2-patches/bash52-003 new file mode 100644 index 000000000..b2dc4cbcc --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-003 @@ -0,0 +1,89 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-003 + +Bug-Reported-by: D630 <d630@posteo.net> +Bug-Reference-ID: <cf8523d58ac75b9ffba9519faa175618@posteo.de> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00092.html + +Bug-Description: + +Command substitutions need to preserve newlines instead of replacing them +with semicolons, especially in the presence of multiple here-documents. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/print_cmd.c 2022-07-26 09:16:39.000000000 -0400 +--- print_cmd.c 2022-10-17 10:41:06.000000000 -0400 +*************** +*** 298,305 **** +--- 298,307 ---- + { + char c = command->value.Connection->connector; ++ int was_newline; + + s[0] = printing_comsub ? c : ';'; + s[1] = '\0'; + ++ was_newline = deferred_heredocs == 0 && was_heredoc == 0 && c == '\n'; + if (deferred_heredocs == 0) + { +*************** +*** 315,318 **** +--- 317,322 ---- + if (inside_function_def) + cprintf ("\n"); ++ else if (printing_comsub && c == '\n' && was_newline == 0) ++ cprintf ("\n"); /* preserve newlines in comsubs but don't double them */ + else + { +*************** +*** 1366,1370 **** + } + else +! newline ("}"); + + dispose_command (cmdcopy); +--- 1371,1379 ---- + } + else +! { +! /* { */ +! newline ("}"); +! was_heredoc = 0; /* not printing any here-documents now */ +! } + + dispose_command (cmdcopy); +*************** +*** 1443,1447 **** + } + else +! newline ("}"); + + result = the_printed_command; +--- 1452,1459 ---- + } + else +! { /* { */ +! newline ("}"); +! was_heredoc = 0; +! } + + result = the_printed_command; +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-004 b/source/a/bash/bash-5.2-patches/bash52-004 new file mode 100644 index 000000000..d0834c19c --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-004 @@ -0,0 +1,70 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-004 + +Bug-Reported-by: Antoine <bug-bash@glitchimini.net> +Bug-Reference-ID: <8bd59753-05ff-9b09-2337-2c7f52ded650@glitchimini.net> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00022.html + +Bug-Description: + +Bash needs to keep better track of nested brace expansions to avoid problems +with quoting and POSIX semantics. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/subst.c 2022-10-05 10:22:02.000000000 -0400 +--- subst.c 2022-10-06 15:19:08.000000000 -0400 +*************** +*** 1799,1802 **** +--- 1804,1810 ---- + } + ++ #define PARAMEXPNEST_MAX 32 // for now ++ static int dbstate[PARAMEXPNEST_MAX]; ++ + /* Extract a parameter expansion expression within ${ and } from STRING. + Obey the Posix.2 rules for finding the ending `}': count braces while +*************** +*** 1829,1832 **** +--- 1837,1842 ---- + return (extract_heredoc_dolbrace_string (string, sindex, quoted, flags)); + ++ dbstate[0] = dolbrace_state; ++ + pass_character = 0; + nesting_level = 1; +*************** +*** 1853,1856 **** +--- 1863,1868 ---- + if (string[i] == '$' && string[i+1] == LBRACE) + { ++ if (nesting_level < PARAMEXPNEST_MAX) ++ dbstate[nesting_level] = dolbrace_state; + nesting_level++; + i += 2; +*************** +*** 1865,1868 **** +--- 1877,1881 ---- + if (nesting_level == 0) + break; ++ dolbrace_state = (nesting_level < PARAMEXPNEST_MAX) ? dbstate[nesting_level] : dbstate[0]; /* Guess using initial state */ + i++; + continue; +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-005 b/source/a/bash/bash-5.2-patches/bash52-005 new file mode 100644 index 000000000..3f6a85215 --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-005 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-005 + +Bug-Reported-by: Justin Wood (Callek) <callek@gmail.com> +Bug-Reference-ID: <CANBDKY9fp2yiXONP7RY4kNuRteuovUebxSJaqePHeu7cyaFS9Q@mail.gmail.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00088.html + +Bug-Description: + +Null pattern substitution replacement strings can cause a crash. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/subst.c 2022-10-05 10:22:02.000000000 -0400 +--- subst.c 2022-10-13 16:57:26.000000000 -0400 +*************** +*** 8966,8970 **** + } + else if (*string == 0 && (match_pattern (string, pat, mtype, &s, &e) != 0)) +! return ((mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2) : savestring (rep)); + + ret = (char *)xmalloc (rsize = 64); +--- 8966,8971 ---- + } + else if (*string == 0 && (match_pattern (string, pat, mtype, &s, &e) != 0)) +! return (mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2) +! : (rep ? savestring (rep) : savestring ("")); + + ret = (char *)xmalloc (rsize = 64); +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-006 b/source/a/bash/bash-5.2-patches/bash52-006 new file mode 100644 index 000000000..851cfd7b6 --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-006 @@ -0,0 +1,293 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-006 + +Bug-Reported-by: feng xiangjun <fengxj325@gmail.com> +Bug-Reference-ID: <CAHH2t87LrCmO=gdyWOmGn5WJt7EucL+iOXzrry34OETe50S6uA@mail.gmail.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00089.html + +Bug-Description: + +In interactive shells, interrupting the shell while entering a command +substitution can inhibit alias expansion. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/parse.y 2022-10-08 13:10:06.000000000 -0400 +--- parse.y 2022-10-14 10:03:19.000000000 -0400 +*************** +*** 3307,3310 **** +--- 3307,3312 ---- + extended_glob = global_extglob; + #endif ++ if (parser_state & (PST_CMDSUBST|PST_STRING)) ++ expand_aliases = expaliases_flag; + + parser_state = 0; +*************** +*** 4389,4392 **** +--- 4391,4395 ---- + parser_state |= PST_NOERROR; + ++ parser_state |= PST_STRING; + expand_aliases = 0; + +*************** +*** 6402,6406 **** + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +! parser_state |= PST_COMPASSIGN|PST_REPARSE; + } + +--- 6405,6409 ---- + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +! parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING; + } + +*** ../bash-20221007/parser.h 2022-08-30 11:39:56.000000000 -0400 +--- parser.h 2022-10-14 09:56:18.000000000 -0400 +*************** +*** 51,54 **** +--- 51,55 ---- + #define PST_NOEXPAND 0x400000 /* don't expand anything in read_token_word; for command substitution */ + #define PST_NOERROR 0x800000 /* don't print error messages in yyerror */ ++ #define PST_STRING 0x1000000 /* parsing a string to a command or word list */ + + /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ +*** ../bash-20221007/builtins/shopt.def 2022-10-07 10:25:55.000000000 -0400 +--- builtins/shopt.def 2022-10-14 09:30:11.000000000 -0400 +*************** +*** 150,153 **** +--- 150,156 ---- + #endif + ++ int expaliases_flag = 0; ++ static int shopt_set_expaliases PARAMS((char *, int)); ++ + static int shopt_set_debug_mode PARAMS((char *, int)); + +*************** +*** 199,203 **** + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +! { "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL }, + #if defined (DEBUGGER) + { "extdebug", &debugging_mode, shopt_set_debug_mode }, +--- 202,206 ---- + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +! { "expand_aliases", &expaliases_flag, shopt_set_expaliases }, + #if defined (DEBUGGER) + { "extdebug", &debugging_mode, shopt_set_debug_mode }, +*************** +*** 351,355 **** + allow_null_glob_expansion = glob_dot_filenames = 0; + no_exit_on_failed_exec = 0; +! expand_aliases = 0; + extended_quote = 1; + fail_glob_expansion = 0; +--- 354,358 ---- + allow_null_glob_expansion = glob_dot_filenames = 0; + no_exit_on_failed_exec = 0; +! expand_aliases = expaliases_flag = 0; + extended_quote = 1; + fail_glob_expansion = 0; +*************** +*** 632,635 **** +--- 635,647 ---- + } + ++ static int ++ shopt_set_expaliases (option_name, mode) ++ char *option_name; ++ int mode; ++ { ++ expand_aliases = expaliases_flag; ++ return 0; ++ } ++ + #if defined (READLINE) + static int +*** ../bash-20221007/builtins/common.h 2022-10-07 10:10:17.000000000 -0400 +--- builtins/common.h 2022-10-14 09:29:25.000000000 -0400 +*************** +*** 258,261 **** +--- 258,263 ---- + #endif + ++ extern int expaliases_flag; ++ + /* variables from source.def */ + extern int source_searches_cwd; +*** ../bash-20221007/execute_cmd.c 2022-10-10 10:48:54.000000000 -0400 +--- execute_cmd.c 2022-10-14 09:32:24.000000000 -0400 +*************** +*** 1537,1541 **** + aliases. */ + if (ois != interactive_shell) +! expand_aliases = 0; + } + +--- 1537,1541 ---- + aliases. */ + if (ois != interactive_shell) +! expand_aliases = expaliases_flag = 0; + } + +*** ../bash-20221007/general.c 2021-11-04 14:12:38.000000000 -0400 +--- general.c 2022-10-14 09:34:24.000000000 -0400 +*************** +*** 92,96 **** + &interactive_comments, + &source_uses_path, +! &expand_aliases, + &inherit_errexit, + &print_shift_error, +--- 92,96 ---- + &interactive_comments, + &source_uses_path, +! &expaliases_flag, + &inherit_errexit, + &print_shift_error, +*************** +*** 107,111 **** + if (on != 0) + { +! interactive_comments = source_uses_path = expand_aliases = 1; + inherit_errexit = 1; + source_searches_cwd = 0; +--- 107,112 ---- + if (on != 0) + { +! interactive_comments = source_uses_path = 1; +! expand_aliases = expaliases_flag = 1; + inherit_errexit = 1; + source_searches_cwd = 0; +*************** +*** 117,120 **** +--- 118,122 ---- + { + set_posix_options (saved_posix_vars); ++ expand_aliases = expaliases_flag; + free (saved_posix_vars); + saved_posix_vars = 0; +*************** +*** 123,127 **** + { + source_searches_cwd = 1; +! expand_aliases = interactive_shell; + print_shift_error = 0; + } +--- 125,129 ---- + { + source_searches_cwd = 1; +! expand_aliases = expaliases_flag = interactive_shell; /* XXX */ + print_shift_error = 0; + } + +*** ../bash-5.2-patched/shell.c 2022-03-04 15:13:00.000000000 -0500 +--- shell.c 2022-10-14 09:36:19.000000000 -0400 +*************** +*** 1845,1850 **** + init_interactive () + { +! expand_aliases = interactive_shell = startup_state = 1; +! interactive = 1; + #if defined (HISTORY) + if (enable_history_list == -1) +--- 1845,1850 ---- + init_interactive () + { +! expand_aliases = expaliases_flag = 1; +! interactive_shell = startup_state = interactive = 1; + #if defined (HISTORY) + if (enable_history_list == -1) +*************** +*** 1866,1870 **** + #endif /* HISTORY */ + interactive_shell = startup_state = interactive = 0; +! expand_aliases = posixly_correct; /* XXX - was 0 not posixly_correct */ + no_line_editing = 1; + #if defined (JOB_CONTROL) +--- 1866,1870 ---- + #endif /* HISTORY */ + interactive_shell = startup_state = interactive = 0; +! expand_aliases = expaliases_flag = posixly_correct; /* XXX - was 0 not posixly_correct */ + no_line_editing = 1; + #if defined (JOB_CONTROL) +*************** +*** 1883,1887 **** + #endif + init_noninteractive (); +! expand_aliases = interactive_shell = startup_state = 1; + #if defined (HISTORY) + remember_on_history = enable_history_list; /* XXX */ +--- 1883,1887 ---- + #endif + init_noninteractive (); +! expand_aliases = expaliases_flag = interactive_shell = startup_state = 1; + #if defined (HISTORY) + remember_on_history = enable_history_list; /* XXX */ +*************** +*** 2026,2030 **** + forced_interactive = interactive_shell = 0; + subshell_environment = running_in_background = 0; +! expand_aliases = 0; + bash_argv_initialized = 0; + +--- 2026,2030 ---- + forced_interactive = interactive_shell = 0; + subshell_environment = running_in_background = 0; +! expand_aliases = expaliases_flag = 0; + bash_argv_initialized = 0; + +*** ../bash-5.2-patched/y.tab.c 2022-09-23 10:18:27.000000000 -0400 +--- y.tab.c 2022-10-14 14:57:26.000000000 -0400 +*************** +*** 5618,5621 **** +--- 5618,5623 ---- + extended_glob = global_extglob; + #endif ++ if (parser_state & (PST_CMDSUBST|PST_STRING)) ++ expand_aliases = expaliases_flag; + + parser_state = 0; +*************** +*** 6700,6703 **** +--- 6702,6706 ---- + parser_state |= PST_NOERROR; + ++ parser_state |= PST_STRING; + expand_aliases = 0; + +*************** +*** 8713,8717 **** + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +! parser_state |= PST_COMPASSIGN|PST_REPARSE; + } + +--- 8716,8720 ---- + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +! parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING; + } + +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-007 b/source/a/bash/bash-5.2-patches/bash52-007 new file mode 100644 index 000000000..152776f4b --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-007 @@ -0,0 +1,262 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-007 + +Bug-Reported-by: Bruce Jerrick +Bug-Reference-ID: +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=2134307 + +Bug-Description: + +This patch fixes several problems with alias expansion inside command +substitutions when in POSIX mode. + +Patch (apply with `patch -p0'): + +*** /fs1/chet/scratch/bash-5.2.6/parse.y 2022-11-02 10:36:54.000000000 -0400 +--- parse.y 2022-10-24 10:53:26.000000000 -0400 +*************** +*** 3613,3616 **** +--- 3614,3618 ---- + #define P_ARRAYSUB 0x0020 /* parsing a [...] array subscript for assignment */ + #define P_DOLBRACE 0x0040 /* parsing a ${...} construct */ ++ #define P_ARITH 0x0080 /* parsing a $(( )) arithmetic expansion */ + + /* Lexical state while parsing a grouping construct or $(...). */ +*************** +*** 3911,3914 **** +--- 3914,3920 ---- + else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + goto parse_dollar_word; ++ else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') /*)*/ ++ /* $() inside $(( ))/$[ ] */ ++ goto parse_dollar_word; + #if defined (PROCESS_SUBSTITUTION) + /* XXX - technically this should only be recognized at the start of +*************** +*** 3941,3945 **** + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|P_DOLBRACE|rflags); + else if (ch == '[') /* ] */ +! nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); + + CHECK_NESTRET_ERROR (); +--- 3947,3951 ---- + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|P_DOLBRACE|rflags); + else if (ch == '[') /* ] */ +! nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags|P_ARITH); + + CHECK_NESTRET_ERROR (); +*************** +*** 4080,4084 **** + shell_ungetc (peekc); + if (peekc == '(') /*)*/ +! return (parse_matched_pair (qc, open, close, lenp, 0)); + } + +--- 4086,4090 ---- + shell_ungetc (peekc); + if (peekc == '(') /*)*/ +! return (parse_matched_pair (qc, open, close, lenp, P_ARITH)); + } + +*************** +*** 4501,4505 **** + + exp_lineno = line_number; +! ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0); + rval = 1; + if (ttok == &matched_pair_error) +--- 4512,4516 ---- + + exp_lineno = line_number; +! ttok = parse_matched_pair (0, '(', ')', &ttoklen, P_ARITH); + rval = 1; + if (ttok == &matched_pair_error) +*************** +*** 5016,5020 **** + } + else +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +--- 5030,5034 ---- + } + else +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARITH); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +*** ../bash-5.2.6/y.tab.c 2022-11-02 10:36:54.000000000 -0400 +--- y.tab.c 2022-11-02 10:55:58.000000000 -0400 +*************** +*** 5924,5927 **** +--- 5924,5928 ---- + #define P_ARRAYSUB 0x0020 /* parsing a [...] array subscript for assignment */ + #define P_DOLBRACE 0x0040 /* parsing a ${...} construct */ ++ #define P_ARITH 0x0080 /* parsing a $(( )) arithmetic expansion */ + + /* Lexical state while parsing a grouping construct or $(...). */ +*************** +*** 6222,6225 **** +--- 6223,6229 ---- + else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + goto parse_dollar_word; ++ else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') /*)*/ ++ /* $() inside $(( ))/$[ ] */ ++ goto parse_dollar_word; + #if defined (PROCESS_SUBSTITUTION) + /* XXX - technically this should only be recognized at the start of +*************** +*** 6252,6256 **** + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|P_DOLBRACE|rflags); + else if (ch == '[') /* ] */ +! nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); + + CHECK_NESTRET_ERROR (); +--- 6256,6260 ---- + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|P_DOLBRACE|rflags); + else if (ch == '[') /* ] */ +! nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags|P_ARITH); + + CHECK_NESTRET_ERROR (); +*************** +*** 6391,6395 **** + shell_ungetc (peekc); + if (peekc == '(') /*)*/ +! return (parse_matched_pair (qc, open, close, lenp, 0)); + } + +--- 6395,6399 ---- + shell_ungetc (peekc); + if (peekc == '(') /*)*/ +! return (parse_matched_pair (qc, open, close, lenp, P_ARITH)); + } + +*************** +*** 6812,6816 **** + + exp_lineno = line_number; +! ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0); + rval = 1; + if (ttok == &matched_pair_error) +--- 6816,6820 ---- + + exp_lineno = line_number; +! ttok = parse_matched_pair (0, '(', ')', &ttoklen, P_ARITH); + rval = 1; + if (ttok == &matched_pair_error) +*************** +*** 7327,7331 **** + } + else +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +--- 7331,7335 ---- + } + else +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARITH); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +*** /fs1/chet/scratch/bash-5.2.6/builtins/evalstring.c 2022-07-18 14:46:56.000000000 -0400 +--- builtins/evalstring.c 2022-10-18 10:57:51.000000000 -0400 +*************** +*** 432,435 **** +--- 432,437 ---- + if (parse_command () == 0) + { ++ int local_expalias, local_alflag; ++ + if ((flags & SEVAL_PARSEONLY) || (interactive_shell == 0 && read_but_dont_execute)) + { +*************** +*** 508,511 **** +--- 510,526 ---- + #endif /* ONESHOT */ + ++ /* We play tricks in the parser and command_substitute() turning ++ expand_aliases on and off depending on which parsing pass and ++ whether or not we're in posix mode. This only matters for ++ parsing, and we let the higher layers deal with that. We just ++ want to ensure that expand_aliases is set to the appropriate ++ global value when we go to execute this command, so we save ++ and restore it around the execution (we don't restore it if ++ the global value of the flag (expaliases_flag) changes). */ ++ local_expalias = expand_aliases; ++ local_alflag = expaliases_flag; ++ if (subshell_environment & SUBSHELL_COMSUB) ++ expand_aliases = expaliases_flag; ++ + /* See if this is a candidate for $( <file ). */ + if (startup_state == 2 && +*************** +*** 525,528 **** +--- 540,547 ---- + discard_unwind_frame ("pe_dispose"); + ++ /* If the global value didn't change, we restore what we had. */ ++ if ((subshell_environment & SUBSHELL_COMSUB) && local_alflag == expaliases_flag) ++ expand_aliases = local_expalias; ++ + if (flags & SEVAL_ONECMD) + { +*** /fs1/chet/scratch/bash-5.2.6/command.h 2021-04-30 15:43:15.000000000 -0400 +--- command.h 2022-10-18 11:44:31.000000000 -0400 +*************** +*** 115,118 **** +--- 115,119 ---- + #define PF_EXPANDRHS 0x20 /* same as W_EXPANDRHS */ + #define PF_ALLINDS 0x40 /* array, act as if [@] was supplied */ ++ #define PF_BACKQUOTE 0x80 /* differentiate `` from $() for command_substitute */ + + /* Possible values for subshell_environment */ +*** /fs1/chet/scratch/bash-5.2.6/subst.c 2022-11-02 10:28:10.000000000 -0400 +--- subst.c 2022-10-20 12:41:07.000000000 -0400 +*************** +*** 7124,7129 **** + + /* We want to expand aliases on this pass if we are not in posix mode +! for backwards compatibility. */ +! if (expand_aliases) + expand_aliases = posixly_correct == 0; + +--- 7133,7142 ---- + + /* We want to expand aliases on this pass if we are not in posix mode +! for backwards compatibility. parse_and_execute() takes care of +! setting expand_aliases back to the global value when executing the +! parsed string. We only do this for $(...) command substitution, +! since that is what parse_comsub handles; `` comsubs are processed +! using parse.y:parse_matched_pair(). */ +! if (expand_aliases && (flags & PF_BACKQUOTE) == 0) + expand_aliases = posixly_correct == 0; + +*************** +*** 11293,11297 **** + { + de_backslash (temp); +! tword = command_substitute (temp, quoted, 0); + temp1 = tword ? tword->word : (char *)NULL; + if (tword) +--- 11306,11310 ---- + { + de_backslash (temp); +! tword = command_substitute (temp, quoted, PF_BACKQUOTE); + temp1 = tword ? tword->word : (char *)NULL; + if (tword) +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-008 b/source/a/bash/bash-5.2-patches/bash52-008 new file mode 100644 index 000000000..ff6371140 --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-008 @@ -0,0 +1,58 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-008 + +Bug-Reported-by: Glenn Jackman <glenn.jackman@gmail.com> +Bug-Reference-ID: <CAFC8ewQDx7hzNJzveuJ5o4FWo=ij7MzckiJVN_6NXjp504QZeg@mail.gmail.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00095.html + +Bug-Description: + +Array subscript expansion can inappropriately quote brackets if the expression +contains < or >. + +Patch (apply with `patch -p0'): + +*** ../bash-20221015/subst.c 2022-10-18 10:47:33.000000000 -0500 +--- subst.c 2022-10-20 11:41:07.000000000 -0500 +*************** +*** 3820,3823 **** +--- 3820,3827 ---- + #endif + ++ /* We don't perform process substitution in arithmetic expressions, so don't ++ bother checking for it. */ ++ #define ARITH_EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') ++ + /* If there are any characters in STRING that require full expansion, + then call FUNC to expand STRING; otherwise just perform quote +*************** +*** 4029,4033 **** + while (string[i]) + { +! if (EXP_CHAR (string[i])) + break; + else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"') +--- 4033,4037 ---- + while (string[i]) + { +! if (ARITH_EXP_CHAR (string[i])) + break; + else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"') +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/bash-5.2-patches/bash52-009 b/source/a/bash/bash-5.2-patches/bash52-009 new file mode 100644 index 000000000..f907c8c47 --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-009 @@ -0,0 +1,43 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-009 + +Bug-Reported-by: Corey Hickey <bugfood-ml@fatooh.org> +Bug-Reference-ID: <134330ef-0ead-d73e-68eb-d58fc51efdba@fatooh.org> +Bug-Reference-URL: https://lists.gnu.org/archive/html/help-bash/2022-10/msg00025.html + +Bug-Description: + +Bash arithmetic expansion should allow `@' and `*' to be used as associative +array keys in expressions. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/expr.c 2022-07-11 10:03:34.000000000 -0400 +--- expr.c 2022-10-31 10:51:08.000000000 -0400 +*************** +*** 1169,1172 **** +--- 1169,1174 ---- + #if defined (ARRAY_VARS) + aflag = tflag; /* use a different variable for now */ ++ if (shell_compatibility_level > 51) ++ aflag |= AV_ATSTARKEYS; + v = (e == ']') ? array_variable_part (tok, tflag, (char **)0, (int *)0) : find_variable (tok); + #else +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/sed/sed.SlackBuild b/source/a/sed/sed.SlackBuild index 4482837ef..979fa3e46 100755 --- a/source/a/sed/sed.SlackBuild +++ b/source/a/sed/sed.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=sed VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} TMP=${TMP:-/tmp} PKG=$TMP/package-sed |