bash: update to 5.0.016.
This commit is contained in:
parent
9a72a0ea27
commit
5b1a6d3d3b
6 changed files with 326 additions and 2 deletions
64
srcpkgs/bash/files/bash50-012
Normal file
64
srcpkgs/bash/files/bash50-012
Normal file
|
@ -0,0 +1,64 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-012
|
||||
|
||||
Bug-Reported-by: lessbug@qq.com
|
||||
Bug-Reference-ID: <tencent_6AA531D9A5CC4121D86BD5CDA2E0DA98C605@qq.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using previous-history to go back beyond the beginning of the history list,
|
||||
it's possible to move to an incorrect partial line.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/lib/readline/misc.c 2017-07-07 17:30:12.000000000 -0400
|
||||
--- lib/readline/misc.c 2019-05-16 11:43:46.000000000 -0400
|
||||
***************
|
||||
*** 577,580 ****
|
||||
--- 590,594 ----
|
||||
{
|
||||
HIST_ENTRY *old_temp, *temp;
|
||||
+ int had_saved_line;
|
||||
|
||||
if (count < 0)
|
||||
***************
|
||||
*** 589,592 ****
|
||||
--- 603,607 ----
|
||||
|
||||
/* If we don't have a line saved, then save this one. */
|
||||
+ had_saved_line = _rl_saved_line_for_history != 0;
|
||||
rl_maybe_save_line ();
|
||||
|
||||
***************
|
||||
*** 612,616 ****
|
||||
if (temp == 0)
|
||||
{
|
||||
! rl_maybe_unsave_line ();
|
||||
rl_ding ();
|
||||
}
|
||||
--- 627,632 ----
|
||||
if (temp == 0)
|
||||
{
|
||||
! if (had_saved_line == 0)
|
||||
! _rl_free_saved_history_line ();
|
||||
rl_ding ();
|
||||
}
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11: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_ */
|
73
srcpkgs/bash/files/bash50-013
Normal file
73
srcpkgs/bash/files/bash50-013
Normal file
|
@ -0,0 +1,73 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-013
|
||||
|
||||
Bug-Reported-by: HIROSE Masaaki <hirose31@gmail.com>
|
||||
Bug-Reference-ID: <CAGSOfA-RqiTe=+GsXsDKyZrrMWH4bDbXgMVVegMa6OjqC5xbnQ@mail.gmail.com>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00038.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Reading history entries with timestamps can result in history entries joined
|
||||
by linefeeds.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/lib/readline/histfile.c 2018-06-11 09:14:52.000000000 -0400
|
||||
--- lib/readline/histfile.c 2019-05-16 15:55:57.000000000 -0400
|
||||
***************
|
||||
*** 370,376 ****
|
||||
|
||||
has_timestamps = HIST_TIMESTAMP_START (buffer);
|
||||
! history_multiline_entries += has_timestamps && history_write_timestamps;
|
||||
|
||||
/* Skip lines until we are at FROM. */
|
||||
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
|
||||
if (*line_end == '\n')
|
||||
--- 370,378 ----
|
||||
|
||||
has_timestamps = HIST_TIMESTAMP_START (buffer);
|
||||
! history_multiline_entries += has_timestamps && history_write_timestamps;
|
||||
|
||||
/* Skip lines until we are at FROM. */
|
||||
+ if (has_timestamps)
|
||||
+ last_ts = buffer;
|
||||
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
|
||||
if (*line_end == '\n')
|
||||
***************
|
||||
*** 381,385 ****
|
||||
--- 383,398 ----
|
||||
if (HIST_TIMESTAMP_START(p) == 0)
|
||||
current_line++;
|
||||
+ else
|
||||
+ last_ts = p;
|
||||
line_start = p;
|
||||
+ /* If we are at the last line (current_line == from) but we have
|
||||
+ timestamps (has_timestamps), then line_start points to the
|
||||
+ text of the last command, and we need to skip to its end. */
|
||||
+ if (current_line >= from && has_timestamps)
|
||||
+ {
|
||||
+ for (line_end = p; line_end < bufend && *line_end != '\n'; line_end++)
|
||||
+ ;
|
||||
+ line_start = (*line_end == '\n') ? line_end + 1 : line_end;
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11: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_ */
|
52
srcpkgs/bash/files/bash50-014
Normal file
52
srcpkgs/bash/files/bash50-014
Normal file
|
@ -0,0 +1,52 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-014
|
||||
|
||||
Bug-Reported-by: Johannes Hielscher <jhielscher@posteo.de>
|
||||
Bug-Reference-ID: <20190208205048.77c25a83@hordevm>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-02/msg00032.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
If the current line is empty, using the emacs C-xC-e binding to enter the
|
||||
editor will edit the previous command instead of the current (empty) one.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500
|
||||
--- bashline.c 2019-02-11 11:18:57.000000000 -0500
|
||||
***************
|
||||
*** 962,970 ****
|
||||
finished with the command, so we should not ignore the last command */
|
||||
using_history ();
|
||||
! if (rl_line_buffer[0])
|
||||
! {
|
||||
! current_command_line_count++; /* for rl_newline above */
|
||||
! bash_add_history (rl_line_buffer);
|
||||
! }
|
||||
current_command_line_count = 0; /* for dummy history entry */
|
||||
bash_add_history ("");
|
||||
--- 965,970 ----
|
||||
finished with the command, so we should not ignore the last command */
|
||||
using_history ();
|
||||
! current_command_line_count++; /* for rl_newline above */
|
||||
! bash_add_history (rl_line_buffer);
|
||||
current_command_line_count = 0; /* for dummy history entry */
|
||||
bash_add_history ("");
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11: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_ */
|
78
srcpkgs/bash/files/bash50-015
Normal file
78
srcpkgs/bash/files/bash50-015
Normal file
|
@ -0,0 +1,78 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-015
|
||||
|
||||
Bug-Reported-by: Yu Kou <ckyoog@gmail.com>
|
||||
Bug-Reference-ID: <CAAqoF9Ko3nAShJXGzucafs-ByUagzZ4nbQonwEkwC7s9UqfWKw@mail.gmail.com>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00032.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
If alias expansion is enabled when processing the command argument to the
|
||||
`-c' option, an alias is defined in that command, and the command ends with
|
||||
the invocation of that alias, the shell's command parser can prematurely
|
||||
terminate before the entire command is executed.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-20190426/builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500
|
||||
--- builtins/evalstring.c 2019-05-15 14:19:36.000000000 -0400
|
||||
***************
|
||||
*** 92,95 ****
|
||||
--- 92,96 ----
|
||||
running_trap == 0 &&
|
||||
*bash_input.location.string == '\0' &&
|
||||
+ parser_expanding_alias () == 0 &&
|
||||
command->type == cm_simple &&
|
||||
signal_is_trapped (EXIT_TRAP) == 0 &&
|
||||
***************
|
||||
*** 106,109 ****
|
||||
--- 107,111 ----
|
||||
{
|
||||
return (*bash_input.location.string == '\0' &&
|
||||
+ parser_expanding_alias () == 0 &&
|
||||
(command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') &&
|
||||
command->value.Connection->second->type == cm_simple);
|
||||
***************
|
||||
*** 291,295 ****
|
||||
with_input_from_string (string, from_file);
|
||||
clear_shell_input_line ();
|
||||
! while (*(bash_input.location.string))
|
||||
{
|
||||
command = (COMMAND *)NULL;
|
||||
--- 293,297 ----
|
||||
with_input_from_string (string, from_file);
|
||||
clear_shell_input_line ();
|
||||
! while (*(bash_input.location.string) || parser_expanding_alias ())
|
||||
{
|
||||
command = (COMMAND *)NULL;
|
||||
***************
|
||||
*** 546,550 ****
|
||||
|
||||
with_input_from_string (string, from_file);
|
||||
! while (*(bash_input.location.string))
|
||||
{
|
||||
command = (COMMAND *)NULL;
|
||||
--- 548,552 ----
|
||||
|
||||
with_input_from_string (string, from_file);
|
||||
! while (*(bash_input.location.string)) /* XXX - parser_expanding_alias () ? */
|
||||
{
|
||||
command = (COMMAND *)NULL;
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11: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_ */
|
58
srcpkgs/bash/files/bash50-016
Normal file
58
srcpkgs/bash/files/bash50-016
Normal file
|
@ -0,0 +1,58 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-016
|
||||
|
||||
Bug-Reported-by: sunnycemetery@gmail.com
|
||||
Bug-Reference-ID: <20190316041534.GB22884@midnight>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-03/msg00070.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash waits too long to reap /dev/fd process substitutions used as redirections
|
||||
with loops and group commands, which can lead to file descriptor exhaustion.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/execute_cmd.c 2019-04-19 15:46:36.000000000 -0400
|
||||
--- execute_cmd.c 2019-07-01 16:45:49.000000000 -0400
|
||||
***************
|
||||
*** 1104,1107 ****
|
||||
--- 1085,1104 ----
|
||||
discard_unwind_frame ("internal_fifos");
|
||||
}
|
||||
+ # if defined (HAVE_DEV_FD)
|
||||
+ /* Reap process substitutions at the end of loops */
|
||||
+ switch (command->type)
|
||||
+ {
|
||||
+ case cm_while:
|
||||
+ case cm_until:
|
||||
+ case cm_for:
|
||||
+ case cm_group:
|
||||
+ # if defined (ARITH_FOR_COMMAND)
|
||||
+ case cm_arith_for:
|
||||
+ # endif
|
||||
+ reap_procsubs ();
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ # endif /* HAVE_DEV_FD */
|
||||
#endif
|
||||
|
||||
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11: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_ */
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'bash'
|
||||
pkgname=bash
|
||||
_bash_distver=5.0
|
||||
_bash_patchlevel=011
|
||||
_bash_patchlevel=016
|
||||
version="${_bash_distver}.${_bash_patchlevel}"
|
||||
revision=1
|
||||
wrksrc="${pkgname}-${_bash_distver}"
|
||||
|
@ -44,7 +44,6 @@ do_check() {
|
|||
post_install() {
|
||||
rm -r ${DESTDIR}/usr/share/doc
|
||||
ln -s bash ${DESTDIR}/usr/bin/rbash
|
||||
vmkdir /etc/bash
|
||||
vinstall ${FILESDIR}/bashrc 644 etc/bash
|
||||
vinstall ${FILESDIR}/bash.sh 644 etc/profile.d
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue