Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] bash: update to 5.0.010.
@ 2019-10-01  0:06 voidlinux-github
  2019-10-01  0:22 ` [PR PATCH] [Updated] " voidlinux-github
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: voidlinux-github @ 2019-10-01  0:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 300 bytes --]

There is a new pull request by pbui against master on the void-packages repository

https://github.com/pbui/void-packages bash
https://github.com/void-linux/void-packages/pull/14864

bash: update to 5.0.010.


A patch file from https://github.com/void-linux/void-packages/pull/14864.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-bash-14864.patch --]
[-- Type: text/x-diff, Size: 7558 bytes --]

From e89384dd17656c269b4ac3aa732c9ed548f0f71c Mon Sep 17 00:00:00 2001
From: Peter Bui <pbui@github.bx612.space>
Date: Mon, 30 Sep 2019 18:21:33 -0400
Subject: [PATCH] bash: update to 5.0.010.

---
 srcpkgs/bash/files/bash50-010 | 172 ++++++++++++++++++++++++++++++++++
 srcpkgs/bash/template         |   2 +-
 2 files changed, 173 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/bash/files/bash50-010

diff --git a/srcpkgs/bash/files/bash50-010 b/srcpkgs/bash/files/bash50-010
new file mode 100644
index 00000000000..bac7aa92515
--- /dev/null
+++ b/srcpkgs/bash/files/bash50-010
@@ -0,0 +1,172 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.0
+Patch-ID:	bash50-010
+
+Bug-Reported-by:	Thorsten Glaser <tg@mirbsd.de>
+Bug-Reference-ID:	<156622962831.19438.16374961114836556294.reportbug@tglase.lan.tarent.de>
+Bug-Reference-URL:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935115
+
+Bug-Description:
+
+Bash-5.0 changed the way assignment statements preceding special builtins
+and shell functions were handled in posix mode. They automatically created
+or modified global variables instead of modifying existing local variables
+as in bash-4.4.
+
+The bash-4.4 posix-mode semantics were buggy, and resulted in creating
+local variables where they were not intended and modifying global variables
+and local variables simultaneously.
+
+The bash-5.0 changes were intended to fix this issue, but did not preserve
+enough backwards compatibility. The posix standard also changed what it
+required in these cases, so bash-5.0 is not bound by the strict conformance
+requirements that existed in previous issues of the standard.
+
+This patch modifies the bash-5.0 posix mode behavior in an effort to restore
+some backwards compatibility and rationalize the behavior in the presence of
+local variables. It
+
+1. Changes the assignment semantics to be more similar to standalone assignment
+   statements: assignments preceding a function call or special builtin while
+   executing in a shell function will modify the value of a local variable
+   with the same name for the duration of the function's execution;
+
+2. Changes assignments preceding shell function calls or special builtins
+   from within a shell function to no longer create or modify global variables
+   in the presence of a local variable with the same name;
+
+3. Assignment statements preceding a shell function call or special builtin
+   at the global scope continue to modify the (global) calling environment,
+   but are unaffected by assignments preceding function calls or special
+   builtins within a function, as described in item 2. This is also similar
+   to the behavior of a standalone assignment statement.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/variables.c	2018-12-18 11:07:21.000000000 -0500
+--- variables.c	2019-08-22 10:53:44.000000000 -0400
+***************
+*** 4461,4467 ****
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a global variable from it. This
+!    is called from merge_temporary_env, which is only called when in posix
+!    mode. */
+  static void
+  push_posix_temp_var (data)
+--- 4461,4467 ----
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a variable from it as if a
+!    standalone assignment statement had been performed. This is called from
+!    merge_temporary_env, which is only called when in posix mode. */
+  static void
+  push_posix_temp_var (data)
+***************
+*** 4473,4486 ****
+    var = (SHELL_VAR *)data;
+  
+!   binding_table = global_variables->table;
+!   if (binding_table == 0)
+!     binding_table = global_variables->table = hash_create (VARIABLES_HASH_BUCKETS);
+! 
+!   v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP);
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   var->attributes &= ~(att_tempvar|att_propagate);
+    if (v)
+!     v->attributes |= var->attributes;
+  
+    if (find_special_var (var->name) >= 0)
+--- 4473,4497 ----
+    var = (SHELL_VAR *)data;
+  
+!   /* Just like do_assignment_internal(). This makes assignments preceding
+!      special builtins act like standalone assignment statements when in
+!      posix mode, satisfying the posix requirement that this affect the
+!      "current execution environment." */
+!   v = bind_variable (var->name, value_cell (var), ASS_FORCE|ASS_NOLONGJMP);
+! 
+!   /* If this modifies an existing local variable, v->context will be non-zero.
+!      If it comes back with v->context == 0, we bound at the global context.
+!      Set binding_table appropriately. It doesn't matter whether it's correct
+!      if the variable is local, only that it's not global_variables->table */
+!   binding_table = v->context ? shell_variables->table : global_variables->table;
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   if (binding_table == global_variables->table)
+!     var->attributes &= ~(att_tempvar|att_propagate);
+! 
+    if (v)
+!     {
+!       v->attributes |= var->attributes;
+!       v->attributes &= ~att_tempvar;	/* not a temp var now */
+!     }
+  
+    if (find_special_var (var->name) >= 0)
+***************
+*** 4576,4587 ****
+  {
+    int i;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+!     
+!   hash_flush (temporary_env, pushf);
+!   hash_dispose (temporary_env);
+    temporary_env = (HASH_TABLE *)NULL;
+  
+    tempvar_list[tvlist_ind] = 0;
+  
+--- 4587,4601 ----
+  {
+    int i;
++   HASH_TABLE *disposer;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+! 
+!   disposer = temporary_env;
+    temporary_env = (HASH_TABLE *)NULL;
+  
++   hash_flush (disposer, pushf);
++   hash_dispose (disposer);
++ 
+    tempvar_list[tvlist_ind] = 0;
+  
+*** ../bash-5.0-patched/tests/varenv.right	2018-12-17 15:39:48.000000000 -0500
+--- tests/varenv.right	2019-08-22 16:05:25.000000000 -0400
+***************
+*** 147,153 ****
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -x var="value"
+! inside: declare -- var="local"
+! outside: declare -x var="global"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+--- 147,153 ----
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -- var="outside"
+! inside: declare -x var="global"
+! outside: declare -- var="outside"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+*** ../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 9
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/srcpkgs/bash/template b/srcpkgs/bash/template
index 4c48a5942ba..6af2aa08d40 100644
--- a/srcpkgs/bash/template
+++ b/srcpkgs/bash/template
@@ -1,7 +1,7 @@
 # Template file for 'bash'
 pkgname=bash
 _bash_distver=5.0
-_bash_patchlevel=009
+_bash_patchlevel=010
 version="${_bash_distver}.${_bash_patchlevel}"
 revision=1
 wrksrc="${pkgname}-${_bash_distver}"

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] bash: update to 5.0.010.
  2019-10-01  0:06 [PR PATCH] bash: update to 5.0.010 voidlinux-github
@ 2019-10-01  0:22 ` voidlinux-github
  2019-10-01  0:22 ` voidlinux-github
  2019-10-01  8:17 ` [PR PATCH] [Merged]: bash: update to 5.0.011 voidlinux-github
  2 siblings, 0 replies; 4+ messages in thread
From: voidlinux-github @ 2019-10-01  0:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

There is an updated pull request by pbui against master on the void-packages repository

https://github.com/pbui/void-packages bash
https://github.com/void-linux/void-packages/pull/14864

bash: update to 5.0.010.


A patch file from https://github.com/void-linux/void-packages/pull/14864.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-bash-14864.patch --]
[-- Type: text/x-diff, Size: 9781 bytes --]

From d03e0d56d8ab0847162ceb0d327992e365b5a8f5 Mon Sep 17 00:00:00 2001
From: Peter Bui <pbui@github.bx612.space>
Date: Mon, 30 Sep 2019 18:21:33 -0400
Subject: [PATCH] bash: update to 5.0.011.

---
 srcpkgs/bash/files/bash50-010 | 172 ++++++++++++++++++++++++++++++++++
 srcpkgs/bash/files/bash50-011 |  59 ++++++++++++
 srcpkgs/bash/template         |   2 +-
 3 files changed, 232 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/bash/files/bash50-010
 create mode 100644 srcpkgs/bash/files/bash50-011

diff --git a/srcpkgs/bash/files/bash50-010 b/srcpkgs/bash/files/bash50-010
new file mode 100644
index 00000000000..bac7aa92515
--- /dev/null
+++ b/srcpkgs/bash/files/bash50-010
@@ -0,0 +1,172 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.0
+Patch-ID:	bash50-010
+
+Bug-Reported-by:	Thorsten Glaser <tg@mirbsd.de>
+Bug-Reference-ID:	<156622962831.19438.16374961114836556294.reportbug@tglase.lan.tarent.de>
+Bug-Reference-URL:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935115
+
+Bug-Description:
+
+Bash-5.0 changed the way assignment statements preceding special builtins
+and shell functions were handled in posix mode. They automatically created
+or modified global variables instead of modifying existing local variables
+as in bash-4.4.
+
+The bash-4.4 posix-mode semantics were buggy, and resulted in creating
+local variables where they were not intended and modifying global variables
+and local variables simultaneously.
+
+The bash-5.0 changes were intended to fix this issue, but did not preserve
+enough backwards compatibility. The posix standard also changed what it
+required in these cases, so bash-5.0 is not bound by the strict conformance
+requirements that existed in previous issues of the standard.
+
+This patch modifies the bash-5.0 posix mode behavior in an effort to restore
+some backwards compatibility and rationalize the behavior in the presence of
+local variables. It
+
+1. Changes the assignment semantics to be more similar to standalone assignment
+   statements: assignments preceding a function call or special builtin while
+   executing in a shell function will modify the value of a local variable
+   with the same name for the duration of the function's execution;
+
+2. Changes assignments preceding shell function calls or special builtins
+   from within a shell function to no longer create or modify global variables
+   in the presence of a local variable with the same name;
+
+3. Assignment statements preceding a shell function call or special builtin
+   at the global scope continue to modify the (global) calling environment,
+   but are unaffected by assignments preceding function calls or special
+   builtins within a function, as described in item 2. This is also similar
+   to the behavior of a standalone assignment statement.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/variables.c	2018-12-18 11:07:21.000000000 -0500
+--- variables.c	2019-08-22 10:53:44.000000000 -0400
+***************
+*** 4461,4467 ****
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a global variable from it. This
+!    is called from merge_temporary_env, which is only called when in posix
+!    mode. */
+  static void
+  push_posix_temp_var (data)
+--- 4461,4467 ----
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a variable from it as if a
+!    standalone assignment statement had been performed. This is called from
+!    merge_temporary_env, which is only called when in posix mode. */
+  static void
+  push_posix_temp_var (data)
+***************
+*** 4473,4486 ****
+    var = (SHELL_VAR *)data;
+  
+!   binding_table = global_variables->table;
+!   if (binding_table == 0)
+!     binding_table = global_variables->table = hash_create (VARIABLES_HASH_BUCKETS);
+! 
+!   v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP);
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   var->attributes &= ~(att_tempvar|att_propagate);
+    if (v)
+!     v->attributes |= var->attributes;
+  
+    if (find_special_var (var->name) >= 0)
+--- 4473,4497 ----
+    var = (SHELL_VAR *)data;
+  
+!   /* Just like do_assignment_internal(). This makes assignments preceding
+!      special builtins act like standalone assignment statements when in
+!      posix mode, satisfying the posix requirement that this affect the
+!      "current execution environment." */
+!   v = bind_variable (var->name, value_cell (var), ASS_FORCE|ASS_NOLONGJMP);
+! 
+!   /* If this modifies an existing local variable, v->context will be non-zero.
+!      If it comes back with v->context == 0, we bound at the global context.
+!      Set binding_table appropriately. It doesn't matter whether it's correct
+!      if the variable is local, only that it's not global_variables->table */
+!   binding_table = v->context ? shell_variables->table : global_variables->table;
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   if (binding_table == global_variables->table)
+!     var->attributes &= ~(att_tempvar|att_propagate);
+! 
+    if (v)
+!     {
+!       v->attributes |= var->attributes;
+!       v->attributes &= ~att_tempvar;	/* not a temp var now */
+!     }
+  
+    if (find_special_var (var->name) >= 0)
+***************
+*** 4576,4587 ****
+  {
+    int i;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+!     
+!   hash_flush (temporary_env, pushf);
+!   hash_dispose (temporary_env);
+    temporary_env = (HASH_TABLE *)NULL;
+  
+    tempvar_list[tvlist_ind] = 0;
+  
+--- 4587,4601 ----
+  {
+    int i;
++   HASH_TABLE *disposer;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+! 
+!   disposer = temporary_env;
+    temporary_env = (HASH_TABLE *)NULL;
+  
++   hash_flush (disposer, pushf);
++   hash_dispose (disposer);
++ 
+    tempvar_list[tvlist_ind] = 0;
+  
+*** ../bash-5.0-patched/tests/varenv.right	2018-12-17 15:39:48.000000000 -0500
+--- tests/varenv.right	2019-08-22 16:05:25.000000000 -0400
+***************
+*** 147,153 ****
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -x var="value"
+! inside: declare -- var="local"
+! outside: declare -x var="global"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+--- 147,153 ----
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -- var="outside"
+! inside: declare -x var="global"
+! outside: declare -- var="outside"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+*** ../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 9
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/srcpkgs/bash/files/bash50-011 b/srcpkgs/bash/files/bash50-011
new file mode 100644
index 00000000000..a9ae690e004
--- /dev/null
+++ b/srcpkgs/bash/files/bash50-011
@@ -0,0 +1,59 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.0
+Patch-ID:	bash50-011
+
+Bug-Reported-by:	Matt Whitlock
+Bug-Reference-ID:	
+Bug-Reference-URL:	https://savannah.gnu.org/support/?109671
+
+Bug-Description:
+
+The conditional command did not perform appropriate quoted null character
+removal on its arguments, causing syntax errors and attempts to stat
+invalid pathnames.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/subst.c	2018-12-22 17:43:37.000000000 -0500
+--- subst.c	2019-04-14 13:25:41.000000000 -0400
+***************
+*** 3626,3630 ****
+     SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+     be quoted appropriately for regcomp/regexec.  The caller is responsible
+!    for removing the backslashes if the unquoted word is needed later. */   
+  char *
+  cond_expand_word (w, special)
+--- 3642,3648 ----
+     SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+     be quoted appropriately for regcomp/regexec.  The caller is responsible
+!    for removing the backslashes if the unquoted word is needed later. In
+!    any case, since we don't perform word splitting, we need to do quoted
+!    null character removal. */
+  char *
+  cond_expand_word (w, special)
+***************
+*** 3647,3650 ****
+--- 3665,3670 ----
+        if (special == 0)			/* LHS */
+  	{
++ 	  if (l->word)
++ 	    word_list_remove_quoted_nulls (l);
+  	  dequote_list (l);
+  	  r = string_list (l);
+*** ../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 10
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/srcpkgs/bash/template b/srcpkgs/bash/template
index 4c48a5942ba..1fd2f591cdb 100644
--- a/srcpkgs/bash/template
+++ b/srcpkgs/bash/template
@@ -1,7 +1,7 @@
 # Template file for 'bash'
 pkgname=bash
 _bash_distver=5.0
-_bash_patchlevel=009
+_bash_patchlevel=011
 version="${_bash_distver}.${_bash_patchlevel}"
 revision=1
 wrksrc="${pkgname}-${_bash_distver}"

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] bash: update to 5.0.010.
  2019-10-01  0:06 [PR PATCH] bash: update to 5.0.010 voidlinux-github
  2019-10-01  0:22 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-10-01  0:22 ` voidlinux-github
  2019-10-01  8:17 ` [PR PATCH] [Merged]: bash: update to 5.0.011 voidlinux-github
  2 siblings, 0 replies; 4+ messages in thread
From: voidlinux-github @ 2019-10-01  0:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

There is an updated pull request by pbui against master on the void-packages repository

https://github.com/pbui/void-packages bash
https://github.com/void-linux/void-packages/pull/14864

bash: update to 5.0.010.


A patch file from https://github.com/void-linux/void-packages/pull/14864.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-bash-14864.patch --]
[-- Type: text/x-diff, Size: 9781 bytes --]

From d03e0d56d8ab0847162ceb0d327992e365b5a8f5 Mon Sep 17 00:00:00 2001
From: Peter Bui <pbui@github.bx612.space>
Date: Mon, 30 Sep 2019 18:21:33 -0400
Subject: [PATCH] bash: update to 5.0.011.

---
 srcpkgs/bash/files/bash50-010 | 172 ++++++++++++++++++++++++++++++++++
 srcpkgs/bash/files/bash50-011 |  59 ++++++++++++
 srcpkgs/bash/template         |   2 +-
 3 files changed, 232 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/bash/files/bash50-010
 create mode 100644 srcpkgs/bash/files/bash50-011

diff --git a/srcpkgs/bash/files/bash50-010 b/srcpkgs/bash/files/bash50-010
new file mode 100644
index 00000000000..bac7aa92515
--- /dev/null
+++ b/srcpkgs/bash/files/bash50-010
@@ -0,0 +1,172 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.0
+Patch-ID:	bash50-010
+
+Bug-Reported-by:	Thorsten Glaser <tg@mirbsd.de>
+Bug-Reference-ID:	<156622962831.19438.16374961114836556294.reportbug@tglase.lan.tarent.de>
+Bug-Reference-URL:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935115
+
+Bug-Description:
+
+Bash-5.0 changed the way assignment statements preceding special builtins
+and shell functions were handled in posix mode. They automatically created
+or modified global variables instead of modifying existing local variables
+as in bash-4.4.
+
+The bash-4.4 posix-mode semantics were buggy, and resulted in creating
+local variables where they were not intended and modifying global variables
+and local variables simultaneously.
+
+The bash-5.0 changes were intended to fix this issue, but did not preserve
+enough backwards compatibility. The posix standard also changed what it
+required in these cases, so bash-5.0 is not bound by the strict conformance
+requirements that existed in previous issues of the standard.
+
+This patch modifies the bash-5.0 posix mode behavior in an effort to restore
+some backwards compatibility and rationalize the behavior in the presence of
+local variables. It
+
+1. Changes the assignment semantics to be more similar to standalone assignment
+   statements: assignments preceding a function call or special builtin while
+   executing in a shell function will modify the value of a local variable
+   with the same name for the duration of the function's execution;
+
+2. Changes assignments preceding shell function calls or special builtins
+   from within a shell function to no longer create or modify global variables
+   in the presence of a local variable with the same name;
+
+3. Assignment statements preceding a shell function call or special builtin
+   at the global scope continue to modify the (global) calling environment,
+   but are unaffected by assignments preceding function calls or special
+   builtins within a function, as described in item 2. This is also similar
+   to the behavior of a standalone assignment statement.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/variables.c	2018-12-18 11:07:21.000000000 -0500
+--- variables.c	2019-08-22 10:53:44.000000000 -0400
+***************
+*** 4461,4467 ****
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a global variable from it. This
+!    is called from merge_temporary_env, which is only called when in posix
+!    mode. */
+  static void
+  push_posix_temp_var (data)
+--- 4461,4467 ----
+  
+  /* Take a variable from an assignment statement preceding a posix special
+!    builtin (including `return') and create a variable from it as if a
+!    standalone assignment statement had been performed. This is called from
+!    merge_temporary_env, which is only called when in posix mode. */
+  static void
+  push_posix_temp_var (data)
+***************
+*** 4473,4486 ****
+    var = (SHELL_VAR *)data;
+  
+!   binding_table = global_variables->table;
+!   if (binding_table == 0)
+!     binding_table = global_variables->table = hash_create (VARIABLES_HASH_BUCKETS);
+! 
+!   v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP);
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   var->attributes &= ~(att_tempvar|att_propagate);
+    if (v)
+!     v->attributes |= var->attributes;
+  
+    if (find_special_var (var->name) >= 0)
+--- 4473,4497 ----
+    var = (SHELL_VAR *)data;
+  
+!   /* Just like do_assignment_internal(). This makes assignments preceding
+!      special builtins act like standalone assignment statements when in
+!      posix mode, satisfying the posix requirement that this affect the
+!      "current execution environment." */
+!   v = bind_variable (var->name, value_cell (var), ASS_FORCE|ASS_NOLONGJMP);
+! 
+!   /* If this modifies an existing local variable, v->context will be non-zero.
+!      If it comes back with v->context == 0, we bound at the global context.
+!      Set binding_table appropriately. It doesn't matter whether it's correct
+!      if the variable is local, only that it's not global_variables->table */
+!   binding_table = v->context ? shell_variables->table : global_variables->table;
+  
+    /* global variables are no longer temporary and don't need propagating. */
+!   if (binding_table == global_variables->table)
+!     var->attributes &= ~(att_tempvar|att_propagate);
+! 
+    if (v)
+!     {
+!       v->attributes |= var->attributes;
+!       v->attributes &= ~att_tempvar;	/* not a temp var now */
+!     }
+  
+    if (find_special_var (var->name) >= 0)
+***************
+*** 4576,4587 ****
+  {
+    int i;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+!     
+!   hash_flush (temporary_env, pushf);
+!   hash_dispose (temporary_env);
+    temporary_env = (HASH_TABLE *)NULL;
+  
+    tempvar_list[tvlist_ind] = 0;
+  
+--- 4587,4601 ----
+  {
+    int i;
++   HASH_TABLE *disposer;
+  
+    tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
+    tempvar_list[tvlist_ind = 0] = 0;
+! 
+!   disposer = temporary_env;
+    temporary_env = (HASH_TABLE *)NULL;
+  
++   hash_flush (disposer, pushf);
++   hash_dispose (disposer);
++ 
+    tempvar_list[tvlist_ind] = 0;
+  
+*** ../bash-5.0-patched/tests/varenv.right	2018-12-17 15:39:48.000000000 -0500
+--- tests/varenv.right	2019-08-22 16:05:25.000000000 -0400
+***************
+*** 147,153 ****
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -x var="value"
+! inside: declare -- var="local"
+! outside: declare -x var="global"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+--- 147,153 ----
+  outside: declare -- var="one"
+  inside: declare -x var="value"
+! outside: declare -- var="outside"
+! inside: declare -x var="global"
+! outside: declare -- var="outside"
+  foo=<unset> environment foo=
+  foo=foo environment foo=foo
+*** ../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 9
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/srcpkgs/bash/files/bash50-011 b/srcpkgs/bash/files/bash50-011
new file mode 100644
index 00000000000..a9ae690e004
--- /dev/null
+++ b/srcpkgs/bash/files/bash50-011
@@ -0,0 +1,59 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.0
+Patch-ID:	bash50-011
+
+Bug-Reported-by:	Matt Whitlock
+Bug-Reference-ID:	
+Bug-Reference-URL:	https://savannah.gnu.org/support/?109671
+
+Bug-Description:
+
+The conditional command did not perform appropriate quoted null character
+removal on its arguments, causing syntax errors and attempts to stat
+invalid pathnames.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/subst.c	2018-12-22 17:43:37.000000000 -0500
+--- subst.c	2019-04-14 13:25:41.000000000 -0400
+***************
+*** 3626,3630 ****
+     SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+     be quoted appropriately for regcomp/regexec.  The caller is responsible
+!    for removing the backslashes if the unquoted word is needed later. */   
+  char *
+  cond_expand_word (w, special)
+--- 3642,3648 ----
+     SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+     be quoted appropriately for regcomp/regexec.  The caller is responsible
+!    for removing the backslashes if the unquoted word is needed later. In
+!    any case, since we don't perform word splitting, we need to do quoted
+!    null character removal. */
+  char *
+  cond_expand_word (w, special)
+***************
+*** 3647,3650 ****
+--- 3665,3670 ----
+        if (special == 0)			/* LHS */
+  	{
++ 	  if (l->word)
++ 	    word_list_remove_quoted_nulls (l);
+  	  dequote_list (l);
+  	  r = string_list (l);
+*** ../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 10
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/srcpkgs/bash/template b/srcpkgs/bash/template
index 4c48a5942ba..1fd2f591cdb 100644
--- a/srcpkgs/bash/template
+++ b/srcpkgs/bash/template
@@ -1,7 +1,7 @@
 # Template file for 'bash'
 pkgname=bash
 _bash_distver=5.0
-_bash_patchlevel=009
+_bash_patchlevel=011
 version="${_bash_distver}.${_bash_patchlevel}"
 revision=1
 wrksrc="${pkgname}-${_bash_distver}"

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Merged]: bash: update to 5.0.011.
  2019-10-01  0:06 [PR PATCH] bash: update to 5.0.010 voidlinux-github
  2019-10-01  0:22 ` [PR PATCH] [Updated] " voidlinux-github
  2019-10-01  0:22 ` voidlinux-github
@ 2019-10-01  8:17 ` voidlinux-github
  2 siblings, 0 replies; 4+ messages in thread
From: voidlinux-github @ 2019-10-01  8:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 158 bytes --]

There's a merged pull request on the void-packages repository

bash: update to 5.0.011.
https://github.com/void-linux/void-packages/pull/14864

Description:


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-10-01  8:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-01  0:06 [PR PATCH] bash: update to 5.0.010 voidlinux-github
2019-10-01  0:22 ` [PR PATCH] [Updated] " voidlinux-github
2019-10-01  0:22 ` voidlinux-github
2019-10-01  8:17 ` [PR PATCH] [Merged]: bash: update to 5.0.011 voidlinux-github

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).