Hello community,

here is the log from the commit of package bash for openSUSE:Factory checked in 
at 2019-01-29 14:38:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bash (Old)
 and      /work/SRC/openSUSE:Factory/.bash.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bash"

Tue Jan 29 14:38:13 2019 rev:149 rq:664075 version:5.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/bash/bash.changes        2018-07-17 
09:36:27.530557638 +0200
+++ /work/SRC/openSUSE:Factory/.bash.new.28833/bash.changes     2019-01-29 
14:38:18.891558750 +0100
@@ -1,0 +2,166 @@
+Wed Jan  9 12:47:04 UTC 2019 - Dr. Werner Fink <[email protected]>
+
+- Update to bash 5.0 (final)
+  a. Tilde expansion isn't performed on indexed array subscripts, even for
+     backwards compatibility.
+  b. The shell doesn't exit in posix mode if the eval builtin gets a parse
+     error when run by the command builtin.
+  c. Fixed a bug that caused a shell comment in an alias to not find the end
+     of the alias properly.
+  d. Reverted a change from April, 2018 that caused strings containing
+     backslashes to be flagged as glob patterns.
+- Modify patches
+  * bash-2.03-manual.patch
+  * bash-4.3-loadables.dif
+  * bash-5.0.dif
+
+-------------------------------------------------------------------
+Fri Dec 21 13:34:47 UTC 2018 - Dr. Werner Fink <[email protected]>
+
+- Update to bash 5.0 rc1
+  a. Fix to initial word completion detection code.
+  b. Fixed a bug that caused issues with assignment statements containing ^A in
+     the value assigned when IFS contains ^A.
+  c. Added a fallback to fnmatch() when strcoll can't correctly deal with
+     bracket expression character equivalence classes.
+  d. Fixed a bug that caused $BASH_COMMAND to contain the trap handler command
+     when running a trap handler containing [[ or (( commands.
+  e. Fixed a bug that caused nameref assignments in the temporary environment
+     to potentially create variables with invalid names.
+  f. Fixed a bug that caused `local -' to turn off alias expansion in scripts.
+  g. Fixed a parser issue with a command string containing EOF after an invalid
+     command as an argument to a special builtin not causing a posix-mode shell
+     to exit.
+  h. Made a slight change to the FNV-1 string hash algorithm used for 
associative
+     arrays (corrected the initial seed).
+  a. The `select' command now supports command forms without a word list
+     following `in'.
+
+-------------------------------------------------------------------
+Thu Nov 29 08:22:16 UTC 2018 - Dr. Werner Fink <[email protected]>
+
+- Update to bash 5.0 beta2
+  ii. Associative and indexed arrays now allow subscripts consisting solely of
+      whitespace.
+  jj. `checkwinsize' is now enabled by default.
+  kk. The `localvar_unset' shopt option is now visible and documented.
+  ll. The `progcomp_alias' shopt option is now visible and documented.
+  mm. The signal name processing code now understands `SIGRTMIN+n' all the way
+      up to SIGRTMAX.
+  nn. There is a new `seq' loadable builtin.
+  oo. Trap execution now honors the (internal) max invocations of `eval', since
+      traps are supposed to be executed as if using `eval'.
+  pp. The $_ variable doesn't change when the shell executes a command that 
forks.
+  qq. The `kill' builtin now supports -sSIGNAME and -nSIGNUM, even though
+      conforming applications aren't supposed to use them.
+  rr. POSIX mode now enables the `shift_verbose' option.
+- Modify patches
+  * bash-2.03-manual.patch
+  * bash-3.0-evalexp.patch
+  * bash-3.2-printf.patch
+  * bash-4.0-security.patch
+  * bash-4.1-completion.dif
+  * bash-4.3-2.4.4.patch
+  * bash-4.3-SJIS.patch
+  * bash-4.3-extra-import-func.patch
+  * bash-4.3-sigrestart.patch
+  * bash-5.0.dif
+- Add temporary upstream patch upstream.patch
+
+-------------------------------------------------------------------
+Thu Sep 20 08:56:46 UTC 2018 - Dr. Werner Fink <[email protected]>
+
+- Update to bash 5.0 beta
+  a. The `wait' builtin can now wait for the last process substitution created.
+  b. There is an EPOCHSECONDS variable, which expands to the time in seconds
+     since the Unix epoch.
+  c. There is an EPOCHREALTIME variable, which expands to the time in seconds
+     since the Unix epoch with microsecond granularity.
+  d. New loadable builtins: rm, stat, fdflags.
+  e. BASH_ARGV0: a new variable that expands to $0 and sets $0 on assignment.
+  f. When supplied a numeric argument, the shell-expand-line bindable readline
+     command does not perform quote removal and suppresses command and process
+     substitution.
+  g. `history -d' understands negative arguments: negative arguments offset 
from
+     the end of the history list.
+  h. The `name' argument to the `coproc' reserved word now undergoes word
+     expansion, so unique coprocs can be created in loops.
+  i. A nameref name resolution loop in a function now resolves to a variable by
+     that name in the global scope.
+  j. The `wait' builtin now has a `-f' option, which signfies to wait until the
+     specified job or process terminates, instead of waiting until it changes
+     state.
+  k. There is a define in config-top.h that allows the shell to use a static
+     value for $PATH, overriding whatever is in the environment at startup, for
+     use by the restricted shell.
+  l. Process substitution does not inherit the `v' option, like command
+     substitution.
+  m. If a non-interactive shell with job control enabled detects that a 
foreground
+     job died due to SIGINT, it acts as if it received the SIGINT.
+  n. The SIGCHLD trap is run once for each exiting child process even if job
+     control is not enabled when the shell is in Posix mode.
+  o. A new shopt option: localvar_inherit; if set, a local variable inherits 
the
+     value of a variable with the same name at the nearest preceding scope.
+  p. `bind -r' now checks whether a key sequence is bound before binding it to
+     NULL, to avoid creating keymaps for a multi-key sequence.
+  q. A numeric argument to the line editing `operate-and-get-next' command
+     specifies which history entry to use.
+  r. The positional parameters are now assigned before running the shell 
startup
+     files, so startup files can use $@.
+  s. There is a compile-time option that forces the shell to disable the check
+     for an inherited OLDPWD being a directory.
+  t. The `history' builtin can now delete ranges of history entries using
+     `-d start-end'.
+  u. The `vi-edit-and-execute-command' bindable readline command now puts 
readline
+     back in vi insertion mode after executing commands from the edited file.
+  v. The command completion code now matches aliases and shell function names
+     case-insensitively if the readline completion-ignore-case variable is set.
+  w. There is a new `assoc_expand_once' shell option that attempts to expand
+     associative array subscripts only once.
+  x. The shell only sets up BASH_ARGV and BASH_ARGC at startup if extended
+     debugging mode is active. The old behavior of unconditionally setting them
+     is available as part of the shell compatibility options.
+  y. The `umask' builtin now allows modes and masks greater than octal 777.
+  z. The `times' builtin now honors the current locale when printing a decimal
+     point.
+  aa. There is a new (disabled by default, undocumented) shell option to enable
+      and disable sending history to syslog at runtime.
+  bb. Bash no longer allows variable assignments preceding a special builtin 
that
+      changes variable attributes to propagate back to the calling environment
+      unless the compatibility level is 44 or lower.
+  cc. You can set the default value for $HISTSIZE at build time in 
config-top.h.
+  dd. The `complete' builtin now accepts a -I option that applies the 
completion
+      to the initial word on the line.
+  ee. The internal bash malloc now uses mmap (if available) to satisfy requests
+      greater than 128K bytes, so free can use mfree to return the pages to the
+      kernel.
+  ff. The shell doesn't automatically set BASH_ARGC and BASH_ARGV at startup
+      unless it's in debugging mode, as the documentation has always said, but
+      will dynamically create them if a script references them at the top level
+      without having enabled debugging mode.
+  gg. The localvar_inherit option will not attempt to inherit a value from a
+      variable of an incompatible type (indexed vs. associative arrays, for
+      example).
+  hh. The `globasciiranges' option is now enabled by default; it can be set to
+      off by default at configuration time.
+- Modify and port patches
+  * bash-2.03-manual.patch
+  * bash-3.0-evalexp.patch
+  * bash-3.0-warn-locale.patch
+  * bash-3.2-printf.patch
+  * bash-4.0-security.patch
+  * bash-4.0-setlocale.dif
+  * bash-4.1-bash.bashrc.dif
+  * bash-4.1-completion.dif
+  * bash-4.2-nscdunmap.dif
+  * bash-4.3-2.4.4.patch
+  * bash-4.3-extra-import-func.patch
+  * bash-4.3-loadables.dif
+  * bash-4.3-sigrestart.patch
+  * bash-4.3-winch.dif
+- Port and rename bash-4.4.dif which is now bash-5.0.dif
+- Delete not used patch bash-4.2-endpw.dif
+- Remove patch bash-memmove.patch now upstream
+- Add patch bash-4.3-SJIS.patch which is disabled by default
+
+-------------------------------------------------------------------

Old:
----
  bash-4.2-endpw.dif
  bash-4.4-patches.tar.bz2
  bash-4.4.dif
  bash-4.4.tar.gz
  bash-memmove.patch

New:
----
  bash-4.3-SJIS.patch
  bash-5.0-patches.tar.bz2
  bash-5.0.dif
  bash-5.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bash.spec ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.739557726 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.743557721 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package bash
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,6 +17,7 @@
 
 
 %bcond_with     import_function
+%bcond_with     sjis
 
 Name:           bash
 BuildRequires:  audit-devel
@@ -28,11 +29,11 @@
 BuildRequires:  patchutils
 BuildRequires:  pkg-config
 # This has to be always the same version as included in the bash its self
-BuildRequires:  readline-devel == 7.0
+BuildRequires:  readline-devel == 8.0
 BuildRequires:  screen
 BuildRequires:  sed
 %define         bextend         %nil
-Version:        4.4
+Version:        5.0
 Release:        0
 Summary:        The GNU Bourne-Again Shell
 License:        GPL-3.0-or-later
@@ -63,8 +64,6 @@
 Patch3:         bash-4.3-2.4.4.patch
 Patch4:         bash-3.0-evalexp.patch
 Patch5:         bash-3.0-warn-locale.patch
-# Disabled
-Patch6:         bash-4.2-endpw.dif
 Patch7:         bash-4.3-decl.patch
 Patch9:         bash-4.3-include-unistd.dif
 Patch10:        bash-3.2-printf.patch
@@ -77,13 +76,14 @@
 # PATCH-EXTEND-SUSE bnc#828877 -- xterm resizing does not pass to all sub 
clients
 Patch18:        bash-4.3-winch.dif
 Patch40:        bash-4.1-bash.bashrc.dif
+# PATCH-FIX-SUSE For bsc#1065158 add support for broken Japanese locale Shift 
JIS
+Patch42:        bash-4.3-SJIS.patch
 Patch46:        man2html-no-timestamp.patch
 Patch47:        bash-4.3-perl522.patch
 # PATCH-FIX-SUSE
 Patch48:        bash-4.3-extra-import-func.patch
 # PATCH-EXTEND-SUSE Allow root to clean file system if filled up
 Patch49:        bash-4.3-pathtemp.patch
-Patch50:        bash-memmove.patch
 %global         _sysconfdir /etc
 %global         _incdir     %{_includedir}
 %global         _ldldir     /%{_lib}/bash
@@ -188,6 +188,11 @@
 
 
 %prep
+%if %{with sjis}
+echo -e '\033[1m\033[31mWarning: Shift JIS support is enabled\033[m'
+%else
+echo -e '\033[1m\032[31mShift JIS support disabled\033[m'
+%endif
 %setup -q -n bash-%{version}%{bextend} -b1
 typeset -i level
 for patch in ../bash-%{version}-patches/*; do
@@ -208,7 +213,6 @@
 %patch3  -p0 -b .2.4.4
 %patch4  -p0 -b .evalexp
 %patch5  -p0 -b .warnlc
-#%patch6  -p0 -b .endpw
 %patch7  -p0 -b .decl
 %patch9  -p0 -b .unistd
 %patch10 -p0 -b .printf
@@ -217,16 +221,19 @@
 %patch13 -p0 -b .nscdunmap
 %patch14 -p0 -b .sigrestart
 %patch16 -p0 -b .setlocale
-%patch18 -p0 -b .winch
+#%patch18 -p0 -b .winch
 %patch40 -p0 -b .bashrc
+%if %{with sjis}
+%patch42 -p0 -b .sjis
+%endif
 %patch46 -p0 -b .notimestamp
 %patch47 -p0 -b .perl522
 %if %{with import_function}
 %patch48 -b .eif
 %endif
 %patch49 -p0 -b .pthtmp
-%patch50 -p1 -b .mmv
 %patch0  -p0 -b .0
+
 # This has to be always the same version as included in the bash its self
 rl1=($(sed -rn '/RL_READLINE_VERSION/p' lib/readline/readline.h))
 rl2=($(sed -rn '/RL_READLINE_VERSION/p' /usr/include/readline/readline.h))
@@ -327,6 +334,7 @@
   SYSMALLOC="
        --without-gnu-malloc
        --without-bash-malloc
+       --enable-mem-scramble
   "
   #
   # System readline library (comment out it not to be used)
@@ -343,6 +351,7 @@
        --libdir=%{_libdir}             \
        --with-curses                   \
        --with-afs                      \
+       --with-gnu-ld                   \
        $SYSMALLOC                      \
        --enable-minimal-config         \
        --enable-arith-for-command      \
@@ -360,6 +369,7 @@
        --enable-job-control            \
        --enable-net-redirections       \
        --enable-process-substitution   \
+       --enable-glob-asciiranges-default \
        --disable-strict-posix-default  \
        --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \
        $READLINE
@@ -374,6 +384,7 @@
        --docdir=%{_docdir}/%{name}     \
        --with-curses                   \
        --with-afs                      \
+       --with-gnu-ld                   \
        $SYSMALLOC                      \
        --enable-job-control            \
        --enable-net-redirections       \
@@ -386,14 +397,17 @@
        --enable-prompt-string-decoding \
        --enable-select                 \
        --enable-help-builtin           \
+       --enable-separate-helpfiles     \
        --enable-array-variables        \
        --enable-brace-expansion        \
        --enable-command-timing         \
        --enable-disabled-builtins      \
+       --enable-glob-asciiranges-default \
        --disable-strict-posix-default  \
        --enable-multibyte              \
        --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \
        $READLINE
+  sed -rn '/Configuration feature settings controllable by autoconf/,/End of 
configuration settings controllable by autoconf/p' <  config.h
   profilecflags=CFLAGS="$CFLAGS"
 %if 0%{?do_profiling}
   profilecflags=CFLAGS="$CFLAGS %cflags_profile_generate"

++++++ bash-2.03-manual.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.787557668 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.787557668 +0100
@@ -5,10 +5,10 @@
  3 files changed, 18 insertions(+), 2 deletions(-)
 
 --- doc/bash.1
-+++ doc/bash.1 2016-09-16 10:36:46.667901616 +0000
-@@ -121,6 +121,12 @@ processing, then commands are read from
- This option allows the positional parameters to be set
- when invoking an interactive shell.
++++ doc/bash.1 2018-11-29 08:09:41.735675837 +0000
+@@ -122,6 +122,12 @@ This option allows the positional parame
+ when invoking an interactive shell or when reading input
+ through a pipe.
  .TP
 +.B \-v
 +Print shell input lines as they are read.
@@ -19,7 +19,7 @@
  .B \-D
  A list of all double-quoted strings preceded by \fB$\fP
  is printed on the standard output.
-@@ -7038,6 +7044,11 @@ Apply the following `\fBs\fP' modifier o
+@@ -7294,6 +7300,11 @@ Apply the following `\fBs\fP' modifier o
  .SH "SHELL BUILTIN COMMANDS"
  .\" start of bash_builtins
  .zZ
@@ -31,7 +31,7 @@
  .PP
  Unless otherwise noted, each builtin command documented in this
  section as accepting options preceded by
-@@ -10432,6 +10443,11 @@ process or job waited for.
+@@ -10768,6 +10779,11 @@ process or job waited for.
  .SH "RESTRICTED SHELL"
  .\" rbash.1
  .zY
@@ -44,7 +44,7 @@
  If
  .B bash
 --- doc/builtins.1
-+++ doc/builtins.1     2016-09-16 10:36:46.667901616 +0000
++++ doc/builtins.1     2018-11-29 08:09:41.735675837 +0000
 @@ -19,6 +19,6 @@ shift, shopt, source, suspend, test, tim
  ulimit, umask, unalias, unset, wait \- bash built-in commands, see 
\fBbash\fR(1)
  .SH BASH BUILTIN COMMANDS
@@ -54,7 +54,7 @@
  .SH SEE ALSO
  bash(1), sh(1)
 --- doc/rbash.1
-+++ doc/rbash.1        2016-09-16 10:36:46.667901616 +0000
++++ doc/rbash.1        2018-11-29 08:09:41.735675837 +0000
 @@ -3,6 +3,6 @@
  rbash \- restricted bash, see \fBbash\fR(1)
  .SH RESTRICTED SHELL

++++++ bash-3.0-evalexp.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.795557658 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.799557653 +0100
@@ -3,8 +3,8 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 --- expr.c
-+++ expr.c     2004-07-30 14:39:48.000000000 +0000
-@@ -466,8 +466,8 @@ expassign ()
++++ expr.c     2018-11-29 08:10:59.542212175 +0000
+@@ -512,8 +512,8 @@ expassign ()
    value = expcond ();
    if (curtok == EQ || curtok == OP_ASSIGN)
      {

++++++ bash-3.0-warn-locale.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.803557648 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.807557644 +0100
@@ -3,7 +3,7 @@
  1 file changed, 13 insertions(+)
 
 --- locale.c
-+++ locale.c   2004-09-03 10:56:10.000000000 +0000
++++ locale.c   2018-09-20 08:06:23.732593807 +0000
 @@ -33,6 +33,10 @@
  #include "bashintl.h"
  #include "bashansi.h"
@@ -15,7 +15,7 @@
  #include "chartypes.h"
  #include <errno.h>
  
-@@ -76,6 +80,15 @@ void
+@@ -77,6 +81,15 @@ void
  set_default_locale ()
  {
  #if defined (HAVE_SETLOCALE)

++++++ bash-3.2-printf.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.815557634 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.815557634 +0100
@@ -3,7 +3,7 @@
  1 file changed, 10 insertions(+), 1 deletion(-)
 
 --- builtins/printf.def
-+++ builtins/printf.def        2006-07-27 15:11:19.000000000 +0000
++++ builtins/printf.def        2018-11-29 08:11:53.901189708 +0000
 @@ -54,6 +54,7 @@ error occurs.
  $END
  
@@ -12,7 +12,7 @@
  
  #include "../bashtypes.h"
  
-@@ -654,12 +655,20 @@ printf_builtin (list)
+@@ -662,12 +663,20 @@ printf_builtin (list)
            case 'A':
  #endif
              {

++++++ bash-4.0-security.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.823557624 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.827557619 +0100
@@ -1,19 +1,19 @@
 ---
- variables.c |   27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
+ variables.c |   35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
 
 --- variables.c
-+++ variables.c        2016-09-14 08:51:32.306631046 +0000
-@@ -1300,6 +1300,7 @@ static unsigned long rseed = 1;
- static int last_random_value;
- static int seeded_subshell = 0;
++++ variables.c        2018-12-21 13:24:48.757352405 +0000
+@@ -1324,6 +1324,7 @@ static int seeded_subshell = 0;
+ #  define BASH_RAND_MAX       0x7fffffff      /* 32 bits */
+ #endif
  
 +#if !defined(linux)
- /* A linear congruential random number generator based on the example
-    one in the ANSI C standard.  This one isn't very good, but a more
-    complicated one is overkill. */
-@@ -1344,6 +1345,32 @@ seedrand ()
-   sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ());
+ /* Returns a pseudo-random number between 0 and 32767. */
+ static int
+ brand ()
+@@ -1380,6 +1381,40 @@ seedrand ()
+ #endif
  }
  
 +#else
@@ -23,7 +23,7 @@
 +{
 +  if (rseed == 0)
 +    seedrand ();
-+  return rand() & 32767;
++  return ((unsigned int)(rand() & BASH_RAND_MAX));    /* was % 
BASH_RAND_MAX+1 */
 +}
 +
 +static void
@@ -37,8 +37,16 @@
 +seedrand (void)
 +{
 +  struct timeval tv;
++#ifdef _EXTENDTHIS
++  SHELL_VAR *v;
++#endif
 +  gettimeofday (&tv, NULL);
++#ifdef _EXTENDTHIS
++  v = find_variable ("BASH_VERSION");
++  sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid () ^ ((u_bits32_t)&v & 0x7fffffff));
++#else
 +  srand (tv.tv_sec ^ tv.tv_usec ^ getpid ());
++#endif
 +}
 +#endif
 +

++++++ bash-4.0-setlocale.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.835557610 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.835557610 +0100
@@ -3,8 +3,8 @@
  1 file changed, 16 insertions(+), 5 deletions(-)
 
 --- locale.c
-+++ locale.c   2008-11-25 13:41:50.000000000 +0000
-@@ -54,6 +54,7 @@ extern int dump_translatable_strings, du
++++ locale.c   2018-09-20 08:14:41.307485537 +0000
+@@ -55,6 +55,7 @@ extern int dump_translatable_strings, du
  
  /* The current locale when the program begins */
  static char *default_locale;
@@ -12,7 +12,7 @@
  
  /* The current domain for textdomain(3). */
  static char *default_domain;
-@@ -326,11 +327,21 @@ get_locale_var (var)
+@@ -339,11 +340,21 @@ get_locale_var (var)
    if (locale == 0 || *locale == 0)
      locale = lang;
    if (locale == 0 || *locale == 0)

++++++ bash-4.1-bash.bashrc.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.843557600 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.847557596 +0100
@@ -20,8 +20,8 @@
  1 file changed, 12 insertions(+), 3 deletions(-)
 
 --- doc/bash.1
-+++ doc/bash.1 2016-08-01 13:54:54.253999110 +0000
-@@ -329,6 +329,8 @@ and executes commands from the first one
++++ doc/bash.1 2018-09-20 08:16:12.073822864 +0000
+@@ -330,6 +330,8 @@ and executes commands from the first one
  The
  .B \-\-noprofile
  option may be used when the shell is started to inhibit this behavior.
@@ -30,7 +30,7 @@
  .PP
  When an interactive login shell exits,
  or a non-interactive login shell executes the \fBexit\fP builtin command,
-@@ -338,13 +340,19 @@ exists.
+@@ -339,13 +341,19 @@ exists.
  .PP
  When an interactive shell that is not a login shell is started,
  .B bash
@@ -52,7 +52,7 @@
  .PP
  When
  .B bash
-@@ -430,7 +438,8 @@ daemon, usually \fIrshd\fP, or the secur
+@@ -431,7 +439,8 @@ daemon, usually \fIrshd\fP, or the secur
  If
  .B bash
  determines it is being run in this fashion, it reads and executes

++++++ bash-4.1-completion.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.851557590 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.855557586 +0100
@@ -3,8 +3,8 @@
  1 file changed, 7 insertions(+)
 
 --- bashline.c
-+++ bashline.c 2016-09-14 08:54:09.315700369 +0000
-@@ -2029,6 +2029,13 @@ globword:
++++ bashline.c 2018-11-29 08:12:25.876588305 +0000
+@@ -2045,6 +2045,13 @@ globword:
            return ((char *)NULL);
        }
  

++++++ bash-4.2-nscdunmap.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.879557557 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.879557557 +0100
@@ -3,7 +3,7 @@
  1 file changed, 24 insertions(+)
 
 --- shell.c
-+++ shell.c    2016-09-14 08:54:32.971258862 +0000
++++ shell.c    2018-09-20 08:08:34.242204532 +0000
 @@ -43,6 +43,7 @@
  #endif
  
@@ -12,7 +12,7 @@
  #  include <unistd.h>
  #endif
  
-@@ -1751,6 +1752,28 @@ init_interactive_script ()
+@@ -1800,6 +1801,28 @@ init_interactive_script ()
  #endif
  }
  
@@ -41,7 +41,7 @@
  void
  get_current_user_info ()
  {
-@@ -1782,6 +1805,7 @@ get_current_user_info ()
+@@ -1831,6 +1854,7 @@ get_current_user_info ()
  #if defined (HAVE_GETPWENT)
        endpwent ();
  #endif

++++++ bash-4.3-2.4.4.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.891557542 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.895557537 +0100
@@ -8,8 +8,8 @@
  6 files changed, 17 insertions(+), 7 deletions(-)
 
 --- array.c
-+++ array.c    2017-01-27 17:45:42.364066849 +0000
-@@ -946,7 +946,7 @@ char       *s, *sep;
++++ array.c    2018-11-29 08:10:37.098634355 +0000
+@@ -965,7 +965,7 @@ char       *s, *sep;
   * To make a running version, compile -DTEST_ARRAY and link with:
   *    xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a
   */
@@ -19,7 +19,7 @@
  int
  signal_is_trapped(s)
 --- examples/loadables/tee.c
-+++ examples/loadables/tee.c   2017-01-27 17:45:42.364066849 +0000
++++ examples/loadables/tee.c   2018-11-29 08:10:37.098634355 +0000
 @@ -35,6 +35,7 @@
  #include "bashansi.h"
  
@@ -38,8 +38,8 @@
  extern char *strerror ();
  
 --- hashlib.c
-+++ hashlib.c  2017-01-27 17:45:42.364066849 +0000
-@@ -382,7 +382,7 @@ hash_pstats (table, name)
++++ hashlib.c  2018-11-29 08:10:37.098634355 +0000
+@@ -391,7 +391,7 @@ hash_pstats (table, name)
  
  HASH_TABLE *table, *ntable;
  
@@ -49,10 +49,10 @@
  int
  signal_is_trapped (s)
 --- jobs.c
-+++ jobs.c     2017-01-27 17:45:42.364066849 +0000
-@@ -1962,6 +1962,15 @@ make_child (command, async_p)
-       pid_t mypid;
- 
++++ jobs.c     2018-11-29 08:10:37.102634281 +0000
+@@ -1999,6 +1999,15 @@ make_child (command, async_p)
+        child process, go back and change callers who free `command' in
+        the child process when this returns. */
        mypid = getpid ();
 +
 +      if (interrupt_state)
@@ -67,8 +67,8 @@
        /* Close default_buffered_input if it's > 0.  We don't close it if it's
         0 because that's the file descriptor used when redirecting input,
 --- sig.c
-+++ sig.c      2017-01-27 17:45:42.364066849 +0000
-@@ -98,10 +98,10 @@ sigset_t top_level_mask;
++++ sig.c      2018-11-29 08:10:37.102634281 +0000
+@@ -83,10 +83,10 @@ sigset_t top_level_mask;
  #endif /* JOB_CONTROL */
  
  /* When non-zero, we throw_to_top_level (). */
@@ -82,7 +82,7 @@
  #if defined (SIGWINCH)
  static SigHandler *old_winch = (SigHandler *)SIG_DFL;
 --- sig.h
-+++ sig.h      2017-01-27 17:45:42.364066849 +0000
++++ sig.h      2018-11-29 08:10:37.102634281 +0000
 @@ -109,8 +109,8 @@ do { \
  extern volatile sig_atomic_t sigwinch_received;
  extern volatile sig_atomic_t sigterm_received;

++++++ bash-4.3-SJIS.patch ++++++
---
 bashintl.h          |    3 +++
 builtins/printf.def |   21 +++++++++++++++++++++
 builtins/read.def   |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 lib/sh/strtrans.c   |   21 +++++++++++++++++++++
 locale.c            |   26 ++++++++++++++++++++++++++
 parse.y             |   42 +++++++++++++++++++++++++++++++++++++++++-
 6 files changed, 163 insertions(+), 2 deletions(-)

--- bashintl.h
+++ bashintl.h  2018-11-29 08:14:56.165762022 +0000
@@ -43,6 +43,9 @@
 #  undef HAVE_SETLOCALE
 #endif
 
+int bash_mbcs_non_utf8;
+int bash_mb_cur_max;
+
 #if !defined (HAVE_SETLOCALE)
 #  define setlocale(cat, loc)
 #endif
--- builtins/printf.def
+++ builtins/printf.def 2018-11-29 08:18:21.445909015 +0000
@@ -247,6 +247,8 @@ printf_builtin (list)
 #if defined (HANDLE_MULTIBYTE)
   char mbch[25];               /* 25 > MB_LEN_MAX, plus can handle 4-byte 
UTF-8 and large Unicode characters*/
   int mbind, mblen;
+  size_t charlen;
+  mbstate_t mbs;
 #endif
 #if defined (ARRAY_VARS)
   int arrayflags;
@@ -334,6 +336,25 @@ printf_builtin (list)
          precision = fieldwidth = 0;
          have_fieldwidth = have_precision = 0;
 
+#if defined (HANDLE_MULTIBYTE)
+         if (bash_mbcs_non_utf8)
+           {
+             memset (&mbs, 0, sizeof (mbs));
+             charlen = mbrlen (fmt, bash_mb_cur_max, &mbs);
+             if (charlen > 1 && charlen != (size_t)-2 && charlen != (size_t)-1)
+               {
+                 while (charlen > 0)
+                   {
+                     PC (*fmt);
+                     fmt++;
+                     charlen--;
+                   }
+                 fmt--;
+                 continue;
+               }
+           }
+#endif
+
          if (*fmt == '\\')
            {
              fmt++;
--- builtins/read.def
+++ builtins/read.def   2018-11-29 08:14:56.165762022 +0000
@@ -188,6 +188,12 @@ read_builtin (list)
   char c;
   char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
   char *e, *t, *t1, *ps2, *tofree;
+#if defined (HANDLE_MULTIBYTE)
+  static char mbch[25];
+  size_t charlen;
+  int mblen;
+  mbstate_t mbs;
+#endif
   struct stat tsb;
   SHELL_VAR *var;
   TTYSTRUCT ttattrs, ttset;
@@ -548,6 +554,7 @@ read_builtin (list)
 #endif
 
   ps2 = 0;
+  charlen = 0;
   for (print_ps2 = eof = retval = 0;;)
     {
       CHECK_ALRM;
@@ -589,14 +596,40 @@ read_builtin (list)
 
       reading = 1;
       CHECK_ALRM;
+#if defined (HANDLE_MULTIBYTE)
+      charlen = 0;
+      mblen = 0;
+      if (bash_mbcs_non_utf8)
+       {
+         do
+          {
+            if (unbuffered_read)
+              retval = posixly_correct ? zreadintr (fd, &c, 1) : zread (fd, 
&c, 1);
+            else
+              retval = posixly_correct ? zreadcintr (fd, &c) : zreadc (fd, &c);
+
+            if (retval <= 0)
+               break;
+
+            mbch[mblen++] = c;
+            memset (&mbs, 0, sizeof (mbs));
+            charlen = mbrlen (mbch, mblen, &mbs);
+          }
+         while (charlen == (size_t)-2 && mblen < bash_mb_cur_max);
+       }
+      else
+       {
+#endif
       if (unbuffered_read == 2)
        retval = posixly_correct ? zreadintr (fd, &c, 1) : zreadn (fd, &c, 
nchars - nr);
       else if (unbuffered_read)
        retval = posixly_correct ? zreadintr (fd, &c, 1) : zread (fd, &c, 1);
       else
        retval = posixly_correct ? zreadcintr (fd, &c) : zreadc (fd, &c);
+#if defined (HANDLE_MULTIBYTE)
+       }
+#endif
       reading = 0;
-
       if (retval <= 0)
        {
          if (retval < 0 && errno == EINTR)
@@ -639,6 +672,11 @@ read_builtin (list)
            }
        }
 
+#if defined (HANDLE_MULTIBYTE)
+      if (bash_mbcs_non_utf8 && charlen > 1)
+       goto add_char;
+#endif
+
       /* If the next character is to be accepted verbatim, a backslash
         newline pair still disappears from the input. */
       if (pass_next)
@@ -681,7 +719,19 @@ read_builtin (list)
        }
 
 add_char:
+#if defined (HANDLE_MULTIBYTE)
+      if (bash_mbcs_non_utf8 && charlen > 1)
+       {
+          for (mblen = 0; mblen < charlen; mblen++)
+            input_string[i++] = mbch[mblen];
+       }
+      else
+       {
+#endif
       input_string[i++] = c;
+#if defined (HANDLE_MULTIBYTE)
+       }
+#endif
       CHECK_ALRM;
 
 #if defined (HANDLE_MULTIBYTE)
--- lib/sh/strtrans.c
+++ lib/sh/strtrans.c   2018-11-29 08:14:56.165762022 +0000
@@ -29,6 +29,7 @@
 #include <chartypes.h>
 
 #include "shell.h"
+#include "bashintl.h"
 
 #include "shmbchar.h"
 #include "shmbutil.h"
@@ -55,6 +56,10 @@ ansicstr (string, len, flags, sawc, rlen
   int c, temp;
   char *ret, *r, *s;
   unsigned long v;
+#if defined (HANDLE_MULTIBYTE)
+  size_t charlen;
+  mbstate_t mbs;
+#endif
 
   if (string == 0 || *string == '\0')
     return ((char *)NULL);
@@ -69,6 +74,22 @@ ansicstr (string, len, flags, sawc, rlen
 #endif
   for (r = ret, s = string; s && *s; )
     {
+#if defined (HANDLE_MULTIBYTE)
+      if (bash_mbcs_non_utf8)
+        {
+          memset (&mbs, 0, sizeof (mbs));
+          charlen = mbrlen (s, bash_mb_cur_max, &mbs);
+          if (charlen > 1 && charlen != (size_t)-2 && charlen != (size_t)-1)
+            {
+              while (charlen > 0)
+                {
+                  *r++ = *s++;
+                  charlen--;
+                }
+              continue;
+            }
+        }
+#endif
       c = *s++;
       if (c != '\\' || *s == '\0')
        *r++ = c;
--- locale.c
+++ locale.c    2018-11-29 08:14:56.165762022 +0000
@@ -52,6 +52,7 @@ int locale_mb_cur_max;        /* value of MB_CU
 int locale_shiftstates;
 
 extern int dump_translatable_strings, dump_po_strings;
+extern int bash_mb_cur_max, bash_mbcs_non_utf8;
 
 /* The current locale when the program begins */
 static char *default_locale;
@@ -76,6 +77,26 @@ static int reset_locale_vars __P((void))
 static void locale_setblanks __P((void));
 static int locale_isutf8 __P((char *));
 
+static void
+set_mbcs_values ()
+{
+  /* Enhance the performance. */
+#if defined (HANDLE_MULTIBYTE)
+  bash_mb_cur_max = MB_CUR_MAX;
+#  if defined (HAVE_LANGINFO_CODESET)
+  if (strcasestr (nl_langinfo (CODESET), "JIS") != 0 && bash_mb_cur_max == 2)
+    bash_mbcs_non_utf8 = 1;
+  else
+    bash_mbcs_non_utf8 = 0;
+#  else
+    bash_mbcs_non_utf8 = 0;
+#  endif
+#else
+  bash_mb_cur_max = 1;
+  bash_mbcs_non_utf8 = 0;
+#endif
+}
+
 /* Set the value of default_locale and make the current locale the
    system default locale.  This should be called very early in main(). */
 void
@@ -94,6 +115,8 @@ set_default_locale ()
   default_locale = setlocale (LC_ALL, "");
   if (default_locale)
     default_locale = savestring (default_locale);
+
+  set_mbcs_values ();
 #endif /* HAVE_SETLOCALE */
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
@@ -150,6 +173,7 @@ set_default_locale_vars ()
     setlocale (LC_TIME, lc_all);
 #  endif /* LC_TIME */
 
+  set_mbcs_values ();
 #endif /* HAVE_SETLOCALE */
 
   val = get_string_value ("TEXTDOMAIN");
@@ -240,6 +264,7 @@ set_locale_var (var, value)
       if (lc_all == 0 || *lc_all == '\0')
        {
          x = setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE"));
+         set_mbcs_values ();
          locale_setblanks ();
          locale_mb_cur_max = MB_CUR_MAX;
          /* if setlocale() returns NULL, the locale is not changed */
@@ -388,6 +413,7 @@ reset_locale_vars ()
   t = setlocale (LC_TIME, get_locale_var ("LC_TIME"));
 #  endif
 
+  set_mbcs_values ();
   locale_setblanks ();  
   locale_mb_cur_max = MB_CUR_MAX;
   if (x)
--- parse.y
+++ parse.y     2018-11-29 08:14:56.165762022 +0000
@@ -2005,7 +2005,12 @@ read_a_line (remove_quoted_newline)
 {
   static char *line_buffer = (char *)NULL;
   static int buffer_size = 0;
-  int indx, c, peekc, pass_next;
+  int indx, c, peekc, pass_next, chari;
+#if defined (HANDLE_MULTIBYTE)
+  size_t charlen;
+  mbstate_t mbs;
+  static char char_buffer[10];
+#endif
 
 #if defined (READLINE)
   if (no_line_editing && SHOULD_PROMPT ())
@@ -2020,7 +2025,42 @@ read_a_line (remove_quoted_newline)
       /* Allow immediate exit if interrupted during input. */
       QUIT;
 
+#if defined (HANDLE_MULTIBYTE)
+      if (!bash_mbcs_non_utf8)
+        c = yy_getc ();
+      else
+        {
+          chari = 0;
+          charlen = 0;
+          while (chari < 10)
+            {
+              char_buffer[chari++] = c = yy_getc ();
+
+              if (c == EOF)
+                break;
+
+              memset (&mbs, 0, sizeof (mbs));
+              charlen = mbrlen (char_buffer, chari, &mbs);
+
+              if ((size_t)charlen != (size_t)-2 && (size_t)charlen != 
(size_t)-1)
+                break;
+            }
+
+          if (charlen != 1)
+            {
+              charlen = chari;
+              for (chari = 0; chari < charlen && char_buffer[chari] != EOF; 
chari++)
+                {
+                 RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 
128);
+                 line_buffer[indx++] = char_buffer[chari];
+                }
+              if (chari == charlen)
+                continue;
+            }
+        }
+#else
       c = yy_getc ();
+#endif
 
       /* Ignore null bytes in input. */
       if (c == 0)
++++++ bash-4.3-extra-import-func.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.907557523 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.911557518 +0100
@@ -1,21 +1,22 @@
 ---
  builtins/shopt.def |    2 ++
  doc/bash.1         |    7 +++++++
+ execute_cmd.h      |    1 +
  shell.c            |    2 ++
- variables.c        |    8 +++++++-
- 4 files changed, 18 insertions(+), 1 deletion(-)
+ variables.c        |    7 ++++++-
+ 5 files changed, 18 insertions(+), 1 deletion(-)
 
 --- builtins/shopt.def
-+++ builtins/shopt.def 2016-09-14 08:57:33.723885627 +0000
++++ builtins/shopt.def 2018-11-29 08:19:32.996571288 +0000
 @@ -90,6 +90,7 @@ extern int autocd;
  extern int glob_star;
  extern int glob_asciirange;
  extern int lastpipe_opt;
 +extern int import_functions;
  extern int inherit_errexit;
- 
- #if defined (EXTENDED_GLOB)
-@@ -200,6 +201,7 @@ static struct {
+ extern int localvar_inherit;
+ extern int localvar_unset;
+@@ -213,6 +214,7 @@ static struct {
    { "hostcomplete", &perform_hostname_completion, 
shopt_enable_hostname_completion },
  #endif
    { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL },
@@ -24,8 +25,8 @@
    { "interactive_comments", &interactive_comments, set_shellopts_after_change 
},
    { "lastpipe", &lastpipe_opt, (shopt_set_func_t *)NULL },
 --- doc/bash.1
-+++ doc/bash.1 2016-09-14 08:57:33.723885627 +0000
-@@ -244,6 +244,13 @@ The shell becomes restricted (see
++++ doc/bash.1 2018-11-29 08:19:33.000571213 +0000
+@@ -245,6 +245,13 @@ The shell becomes restricted (see
  .B "RESTRICTED SHELL"
  below).
  .TP
@@ -39,9 +40,19 @@
  .B \-\-verbose
  Equivalent to \fB\-v\fP.
  .TP
+--- execute_cmd.h
++++ execute_cmd.h      2018-11-29 08:19:33.000571213 +0000
+@@ -61,6 +61,7 @@ extern int evalnest, evalnest_max;
+ extern int sourcenest, sourcenest_max;
+ extern int stdin_redir;
+ extern int line_number_for_err_trap;
++extern int import_functions;
+ 
+ extern char *the_printed_command_except_trap;
+ 
 --- shell.c
-+++ shell.c    2016-09-14 08:57:33.723885627 +0000
-@@ -238,6 +238,7 @@ int posixly_correct = 1;   /* Non-zero mea
++++ shell.c    2018-11-29 08:19:33.000571213 +0000
+@@ -232,6 +232,7 @@ int posixly_correct = 1;   /* Non-zero mea
  #else
  int posixly_correct = 0;      /* Non-zero means posix.2 superset. */
  #endif
@@ -49,7 +60,7 @@
  
  /* Some long-winded argument names.  These are obviously new. */
  #define Int 1
-@@ -257,6 +258,7 @@ static const struct {
+@@ -251,6 +252,7 @@ static const struct {
    { "help", Int, &want_initial_help, (char **)0x0 },
    { "init-file", Charp, (int *)0x0, &bashrc_file },
    { "login", Int, &make_login_shell, (char **)0x0 },
@@ -58,16 +69,8 @@
    { "noprofile", Int, &no_profile, (char **)0x0 },
    { "norc", Int, &no_rc, (char **)0x0 },
 --- variables.c
-+++ variables.c        2016-09-14 08:57:33.723885627 +0000
-@@ -115,6 +115,7 @@ extern time_t shell_start_time;
- extern int assigning_in_environment;
- extern int executing_builtin;
- extern int funcnest_max;
-+extern int import_functions;
- 
- #if defined (READLINE)
- extern int no_line_editing;
-@@ -378,6 +379,11 @@ initialize_shell_variables (env, privmod
++++ variables.c        2018-11-29 08:19:33.000571213 +0000
+@@ -380,6 +380,11 @@ initialize_shell_variables (env, privmod
          tname = name + BASHFUNC_PREFLEN;      /* start of func name */
          tname[namelen] = '\0';                /* now tname == func name */
  
@@ -79,7 +82,7 @@
          string_length = strlen (string);
          temp_string = (char *)xmalloc (namelen + string_length + 2);
  
-@@ -392,7 +398,7 @@ initialize_shell_variables (env, privmod
+@@ -394,7 +399,7 @@ initialize_shell_variables (env, privmod
            parse_and_execute (temp_string, tname, 
SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
          else
            free (temp_string);         /* parse_and_execute does this */

++++++ bash-4.3-loadables.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.919557508 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.919557508 +0100
@@ -1,15 +1,15 @@
 ---
- examples/loadables/finfo.c   |   11 +++++------
+ examples/loadables/finfo.c   |    9 ++++-----
  examples/loadables/head.c    |    2 --
  examples/loadables/id.c      |    2 --
  examples/loadables/mkdir.c   |    2 +-
  examples/loadables/pathchk.c |    2 --
  examples/loadables/print.c   |    2 +-
  examples/loadables/tee.c     |    2 --
- 7 files changed, 7 insertions(+), 16 deletions(-)
+ 7 files changed, 6 insertions(+), 15 deletions(-)
 
 --- examples/loadables/finfo.c
-+++ examples/loadables/finfo.c 2016-03-08 12:24:51.061423424 +0000
++++ examples/loadables/finfo.c 2018-09-20 08:07:43.739129083 +0000
 @@ -102,7 +102,7 @@ int        argc;
  char  **argv;
  {
@@ -24,16 +24,15 @@
                        printf("%ld\n", st->st_ctime);
        } else if (flags & OPT_DEV)
 -              printf("%d\n", st->st_dev);
-+              printf("%lu\n", (ulong)st->st_dev);
++              printf("%lu\n", (unsigned long)st->st_dev);
        else if (flags & OPT_INO)
--              printf("%d\n", st->st_ino);
-+              printf("%lu\n", (ulong)st->st_ino);
+               printf("%lu\n", (unsigned long)st->st_ino);
        else if (flags & OPT_FID)
--              printf("%d:%ld\n", st->st_dev, st->st_ino);
-+              printf("%lu:%lu\n", (ulong)st->st_dev, (ulong)st->st_ino);
+-              printf("%d:%lu\n", st->st_dev, (unsigned long)st->st_ino);
++              printf("%lu:%lu\n", (unsigned long)st->st_dev, (unsigned 
long)st->st_ino);
        else if (flags & OPT_NLINK)
 -              printf("%d\n", st->st_nlink);
-+              printf("%lu\n", (ulong)st->st_nlink);
++              printf("%lu\n", (unsigned long)st->st_nlink);
        else if (flags & OPT_LNKNAM) {
  #ifdef S_ISLNK
                b = xmalloc(4096);
@@ -46,7 +45,7 @@
    v = make_builtin_argv (list, &c);
    r = finfo_main (c, v);
 --- examples/loadables/head.c
-+++ examples/loadables/head.c  2016-03-08 12:24:51.061423424 +0000
++++ examples/loadables/head.c  2018-09-20 08:07:43.739129083 +0000
 @@ -99,8 +99,6 @@ head_builtin (list)
    WORD_LIST *l;
    FILE *fp;
@@ -57,7 +56,7 @@
  
    reset_internal_getopt ();
 --- examples/loadables/id.c
-+++ examples/loadables/id.c    2016-03-08 12:24:51.061423424 +0000
++++ examples/loadables/id.c    2018-09-20 08:07:43.739129083 +0000
 @@ -64,8 +64,6 @@ static int id_flags;
  static uid_t ruid, euid;
  static gid_t rgid, egid;
@@ -68,8 +67,8 @@
  
  static int id_pruser ();
 --- examples/loadables/mkdir.c
-+++ examples/loadables/mkdir.c 2016-03-08 12:24:51.061423424 +0000
-@@ -167,7 +167,7 @@ make_path (path, nmode, parent_mode)
++++ examples/loadables/mkdir.c 2018-09-20 08:07:43.739129083 +0000
+@@ -170,7 +170,7 @@ make_path (path, nmode, parent_mode)
    while (*p == '/')
      p++;
  
@@ -79,8 +78,8 @@
        *p = '\0';
        if (stat (npath, &sb) != 0)
 --- examples/loadables/pathchk.c
-+++ examples/loadables/pathchk.c       2016-03-08 12:24:51.061423424 +0000
-@@ -291,10 +291,8 @@ validate_path (path, portability)
++++ examples/loadables/pathchk.c       2018-09-20 08:07:43.739129083 +0000
+@@ -292,10 +292,8 @@ validate_path (path, portability)
    if (*path == '\0')
      return 0;
  
@@ -92,7 +91,7 @@
    /* Figure out the parent of the first element in PATH.  */
    parent = xstrdup (*path == '/' ? "/" : ".");
 --- examples/loadables/print.c
-+++ examples/loadables/print.c 2016-03-08 12:24:51.061423424 +0000
++++ examples/loadables/print.c 2018-09-20 08:07:43.739129083 +0000
 @@ -77,7 +77,7 @@ print_builtin (list)
  {
    int c, r, nflag, raw, ofd, sflag;
@@ -103,7 +102,7 @@
  
    nflag = raw = sflag = 0;
 --- examples/loadables/tee.c
-+++ examples/loadables/tee.c   2016-03-08 12:24:51.061423424 +0000
++++ examples/loadables/tee.c   2018-09-20 08:07:43.739129083 +0000
 @@ -70,8 +70,6 @@ tee_builtin (list)
    FLIST *fl;
    char *buf, *bp;

++++++ bash-4.3-sigrestart.patch ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.935557489 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.939557485 +0100
@@ -3,14 +3,17 @@
  1 file changed, 6 insertions(+)
 
 --- sig.c
-+++ sig.c      2017-01-27 17:46:46.602829901 +0000
-@@ -739,10 +739,16 @@ set_signal_handler (sig, handler)
++++ sig.c      2018-11-29 08:13:00.103944580 +0000
+@@ -761,6 +761,8 @@ set_signal_handler (sig, handler)
    if (sig == SIGCHLD)
      act.sa_flags |= SA_RESTART;               /* XXX */
  #endif
 +  if (handler == (trap_handler))
 +    act.sa_flags |= SA_NODEFER;               /* XXX */
-   /* If we're installing a SIGTERM handler for interactive shells, we want
+   /* Let's see if we can keep SIGWINCH from interrupting interruptible system
+      calls, like open(2)/read(2)/write(2) */
+ #if defined (SIGWINCH)
+@@ -771,6 +773,10 @@ set_signal_handler (sig, handler)
       it to be as close to SIG_IGN as possible. */
    if (sig == SIGTERM && handler == sigterm_sighandler)
      act.sa_flags |= SA_RESTART;               /* XXX */

++++++ bash-4.3-winch.dif ++++++
--- /var/tmp/diff_new_pack.ekTSlC/_old  2019-01-29 14:38:19.951557470 +0100
+++ /var/tmp/diff_new_pack.ekTSlC/_new  2019-01-29 14:38:19.951557470 +0100
@@ -3,8 +3,8 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 --- config-top.h
-+++ config-top.h       2016-09-14 08:55:30.170191343 +0000
-@@ -130,7 +130,7 @@
++++ config-top.h       2018-09-20 08:15:45.026318359 +0000
+@@ -142,7 +142,7 @@
  
  /* Define to 0 if you want the checkwinsize option off by default, 1 if you
     want it on. */

++++++ bash-4.4-patches.tar.bz2 -> bash-5.0-patches.tar.bz2 ++++++
++++ 1829 lines of diff (skipped)

++++++ bash-4.2-endpw.dif -> bash-5.0.dif ++++++
--- /work/SRC/openSUSE:Factory/bash/bash-4.2-endpw.dif  2016-10-26 
13:25:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.bash.new.28833/bash-5.0.dif     2019-01-29 
14:38:18.623559074 +0100
@@ -1,176 +1,249 @@
 ---
- bashline.c                 |    1 +
- examples/loadables/finfo.c |   16 ++++++++++------
- examples/loadables/id.c    |   37 +++++++++++++++++++++++++------------
- lib/tilde/shell.c          |    9 +++++++++
- lib/tilde/tilde.c          |    1 +
- 5 files changed, 46 insertions(+), 18 deletions(-)
+ Makefile.in        |    2 +-
+ config-top.h       |   16 ++++++++++------
+ doc/Makefile.in    |    2 +-
+ doc/bash.1         |    7 +++++--
+ general.h          |    3 +++
+ parse.y            |    2 +-
+ shell.c            |    6 +++++-
+ support/bashbug.sh |    2 +-
+ support/man2html.c |    1 +
+ support/rlvers.sh  |    6 +++---
+ support/shobj-conf |    5 +++--
+ tests/glob.tests   |    4 ++--
+ tests/run-intl     |    2 +-
+ tests/run-read     |    2 +-
+ 14 files changed, 38 insertions(+), 22 deletions(-)
 
---- bashline.c
-+++ bashline.c 2011-11-21 12:41:19.831646479 +0000
-@@ -2485,6 +2485,7 @@ bash_groupname_completion_function (text
-     }
- 
-   value = savestring (grent->gr_name);
-+  endgrent ();
-   return (value);
+--- Makefile.in
++++ Makefile.in        2018-11-29 08:14:06.638693338 +0000
+@@ -456,7 +456,7 @@ SOURCES     = $(CSOURCES) $(HSOURCES) $(BUI
+ # headers in top-level source directory that get installed by install-headers
+ INSTALLED_HEADERS = shell.h bashjmp.h command.h syntax.h general.h error.h \
+                   variables.h array.h assoc.h arrayfunc.h quit.h 
dispose_cmd.h \
+-                  make_cmd.h subst.h sig.h externs.h builtins.h \
++                  make_cmd.h subst.h sig.h externs.h builtins.h bashline.h \
+                   bashtypes.h xmalloc.h config-top.h config-bot.h \
+                   bashintl.h bashansi.h bashjmp.h alias.h hashlib.h \
+                   conftypes.h unwind_prot.h jobs.h siglist.h
+--- config-top.h
++++ config-top.h       2018-11-29 08:14:06.638693338 +0000
+@@ -60,10 +60,14 @@
+    due to EPIPE. */
+ /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */
+ 
++#ifndef _PATH_DEFPATH
++# include <paths.h>
++#endif
++
+ /* The default value of the PATH variable. */
+ #ifndef DEFAULT_PATH_VALUE
+ #define DEFAULT_PATH_VALUE \
+-  "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:."
++  "/usr/local/bin:" _PATH_DEFPATH ":."
+ #endif
+ 
+ /* If you want to unconditionally set a value for PATH in every restricted
+@@ -74,7 +78,7 @@
+    the Posix.2 confstr () function, or CS_PATH define are not present. */
+ #ifndef STANDARD_UTILS_PATH
+ #define STANDARD_UTILS_PATH \
+-  "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
++  _PATH_STDPATH
  #endif
- }
---- examples/loadables/finfo.c
-+++ examples/loadables/finfo.c 2011-11-21 12:23:17.331147246 +0000
-@@ -290,6 +290,7 @@ struct stat *st;
-       pw = getpwuid(st->st_uid);
-       owner = pw ? pw->pw_name : "unknown";
-       printf("Uid of owner: %d (%s)\n", (int) st->st_uid, owner);
-+      endpwent();
-       gr = getgrgid(st->st_gid);
-       owner = gr ? gr->gr_name : "unknown";
-       printf("Gid of owner: %d (%s)\n", (int) st->st_gid, owner);
-@@ -298,6 +299,7 @@ struct stat *st;
-       printf("File last access time: %s", ctime (&st->st_atime));
-       printf("File last modify time: %s", ctime (&st->st_mtime));
-       printf("File last status change time: %s", ctime (&st->st_ctime));
-+      endgrent();
-       fflush(stdout);
-       return(0);
- }
-@@ -366,16 +368,18 @@ int      flags;
-       else if (flags & OPT_PMASK)
-               printf("%o\n", getperm(st->st_mode) & pmask);
-       else if (flags & OPT_UID) {
--              pw = getpwuid(st->st_uid);
--              if (flags & OPT_ASCII)
-+              if (flags & OPT_ASCII) {
-+                      pw = getpwuid(st->st_uid);
-                       printf("%s\n", pw ? pw->pw_name : "unknown");
--              else
-+                      endpwent();
-+              } else
-                       printf("%d\n", st->st_uid);
-       } else if (flags & OPT_GID) {
--              gr = getgrgid(st->st_gid);
--              if (flags & OPT_ASCII)
-+              if (flags & OPT_ASCII) {
-+                      gr = getgrgid(st->st_gid);
-                       printf("%s\n", gr ? gr->gr_name : "unknown");
--              else
-+                      endgrent();
-+              } else
-                       printf("%d\n", st->st_gid);
-       } else if (flags & OPT_SIZE)
-               printf("%ld\n", (long) st->st_size);
---- examples/loadables/id.c
-+++ examples/loadables/id.c    2011-11-21 12:39:06.895646231 +0000
-@@ -42,6 +42,7 @@
- 
- #if !defined (HAVE_GETPW_DECLS)
- extern struct passwd *getpwuid ();
-+extern void endpwent ();
+ 
+ /* Default primary and secondary prompt strings. */
+@@ -91,20 +95,20 @@
+ #define DEFAULT_BASHRC "~/.bashrc"
+ 
+ /* System-wide .bashrc file for interactive shells. */
+-/* #define SYS_BASHRC "/etc/bash.bashrc" */
++#define SYS_BASHRC "/etc/bash.bashrc"
+ 
+ /* System-wide .bash_logout for login shells. */
+-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */
++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout"
+ 
+ /* Define this to make non-interactive shells begun with argv[0][0] == '-'
+    run the startup files when not in posix mode. */
+-/* #define NON_INTERACTIVE_LOGIN_SHELLS */
++#define NON_INTERACTIVE_LOGIN_SHELLS
+ 
+ /* Define this if you want bash to try to check whether it's being run by
+    sshd and source the .bashrc if so (like the rshd behavior).  This checks
+    for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
+    which can be fooled under certain not-uncommon circumstances. */
+-/* #define SSH_SOURCE_BASHRC */
++#define SSH_SOURCE_BASHRC
+ 
+ /* Define if you want the case-capitalizing operators (~[~]) and the
+    `capcase' variable attribute (declare -c). */
+--- doc/Makefile.in
++++ doc/Makefile.in    2018-11-29 08:14:06.638693338 +0000
+@@ -154,7 +154,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $
+ #     $(RM) $@
+ #     -${TEXI2PDF} $<
+ 
+-all: ps info dvi text html $(MAN2HTML)
++all: info html $(MAN2HTML)
+ nodvi: ps info text html
+ everything: all pdf
+ 
+--- doc/bash.1
++++ doc/bash.1 2018-11-29 08:14:06.638693338 +0000
+@@ -5443,8 +5443,8 @@ file (the \fIinputrc\fP file).
+ The name of this file is taken from the value of the
+ .SM
+ .B INPUTRC
+-variable.  If that variable is unset, the default is
+-.IR ~/.inputrc .
++environment variable. If that variable is unset, readline will read both
++.IR /etc/inputrc " and " ~/.inputrc .
+ When a program which uses the readline library starts up, the
+ initialization file is read, and the key bindings and variables
+ are set.
+@@ -10922,6 +10922,9 @@ The individual login shell cleanup file,
+ .TP
+ .FN ~/.inputrc
+ Individual \fIreadline\fP initialization file
++.TP
++.FN /etc/inputrc
++System \fBreadline\fP initialization file
+ .PD
+ .SH AUTHORS
+ Brian Fox, Free Software Foundation
+--- general.h
++++ general.h  2018-11-29 08:14:06.638693338 +0000
+@@ -21,10 +21,13 @@
+ #if !defined (_GENERAL_H_)
+ #define _GENERAL_H_
+ 
++#include <time.h>
++#include <sys/types.h>
+ #include "stdc.h"
+ 
+ #include "bashtypes.h"
+ #include "chartypes.h"
++#include "bashline.h"
+ 
+ #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE)
+ #  if defined (HAVE_SYS_TIME_H)
+--- parse.y
++++ parse.y    2018-11-29 08:14:06.638693338 +0000
+@@ -1456,7 +1456,7 @@ input_file_descriptor ()
+ 
+ #if defined (READLINE)
+ char *current_readline_prompt = (char *)NULL;
+-char *current_readline_line = (char *)NULL;
++unsigned char *current_readline_line = (unsigned char *)NULL;
+ int current_readline_line_index = 0;
+ 
+ static int
+--- shell.c
++++ shell.c    2018-11-29 08:14:06.638693338 +0000
+@@ -45,6 +45,7 @@
+ #if defined (HAVE_UNISTD_H)
+ #  include <sys/types.h>
+ #  include <unistd.h>
++#  include <grp.h>
  #endif
- extern struct group *getgrgid ();
  
-@@ -136,18 +137,26 @@ static int
- inituser (uname)
-      char *uname;
+ #include "bashintl.h"
+@@ -497,7 +498,7 @@ main (argc, argv, env)
+   if (dump_translatable_strings)
+     read_but_dont_execute = 1;
+ 
+-  if (running_setuid && privileged_mode == 0)
++  if (running_setuid && privileged_mode == 0 /* && act_like_sh == 0 */)
+     disable_priv_mode ();
+ 
+   /* Need to get the argument to a -c option processed in the
+@@ -1294,6 +1295,9 @@ disable_priv_mode ()
  {
--  struct passwd *pwd;
--
-   if (uname)
-     {
-+      struct passwd *pwd;
-+      int r;
-+
-+      r = 0;
-       pwd = getpwnam (uname);
-       if (pwd == 0)
-       {
-         builtin_error ("%s: no such user", uname);
--        return -1;
-+        r = -1;
-       }
--      ruid = euid = pwd->pw_uid;
--      rgid = egid = pwd->pw_gid;
-+      else
-+      {
-+        ruid = euid = pwd->pw_uid;
-+        rgid = egid = pwd->pw_gid;
-+      }
-+      endpwent ();
-+      if (r < 0)
-+      return r;
-     }
-   else
-     {
-@@ -172,11 +181,12 @@ id_pruser (uid)
-     {
-       pwd = getpwuid (uid);
-       if (pwd == NULL)
--        r = 1;
-+      r = 1;
-+      else
-+      printf ("%s", pwd->pw_name);
-+      endpwent ();
-     }
--  if (pwd)
--    printf ("%s", pwd->pw_name);
--  else
-+  if (pwd == NULL)
-     printf ("%u", (unsigned) uid);
-       
-   return r;
-@@ -197,11 +207,12 @@ id_prgrp (gid)
-       grp = getgrgid (gid);
-       if (grp == NULL)
-       r = 1;
-+      else
-+      printf ("%s", grp->gr_name);
-+      endgrent ();
-     }
- 
--  if (grp)
--    printf ("%s", grp->gr_name);
--  else
-+  if (grp == NULL)
-     printf ("%u", (unsigned) gid);
- 
-   return r;
-@@ -307,6 +318,8 @@ id_prall (uname)
-       else
-       printf ("(%s)", grp->gr_name);
-     }
-+  endpwent ();
-+  endgrent ();
- 
-   return r;
- }
---- lib/tilde/shell.c
-+++ lib/tilde/shell.c  2011-11-21 13:07:02.099146925 +0000
-@@ -45,9 +45,18 @@
- #include <pwd.h>
- 
- #if !defined (HAVE_GETPW_DECLS)
-+#  if defined (HAVE_GETPWUID)
- extern struct passwd *getpwuid ();
-+#  endif
-+#  if defined (HAVE_GETPWENT)
-+extern void endpwent ();
-+#  endif
- #endif /* !HAVE_GETPW_DECLS */
- 
-+#if !defined (savestring)
-+#  define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-+#endif /* !savestring */
-+
- char *
- get_env_value (varname)
-      char *varname;
---- lib/tilde/tilde.c
-+++ lib/tilde/tilde.c  2011-11-11 13:10:07.000000000 +0000
-@@ -61,6 +61,7 @@ extern struct passwd *getpwuid PARAMS((u
- #  endif
- #  if defined (HAVE_GETPWNAM)
- extern struct passwd *getpwnam PARAMS((const char *));
-+extern void endpwent ();
- #  endif
- #endif /* !HAVE_GETPW_DECLS */
+   int e;
  
++  if (!current_user.user_name)
++    get_current_user_info();
++  initgroups (current_user.user_name, current_user.gid);
+   if (setuid (current_user.uid) < 0)
+     {
+       e = errno;
+--- support/bashbug.sh
++++ support/bashbug.sh 2018-11-29 08:14:06.638693338 +0000
+@@ -1,4 +1,4 @@
+-#!/bin/sh -
++#!/bin/bash -
+ #
+ # bashbug - create a bug report and mail it to the bug address
+ #
+--- support/man2html.c
++++ support/man2html.c 2018-11-29 08:14:06.638693338 +0000
+@@ -78,6 +78,7 @@
+ #include <time.h>
+ #include <sys/time.h>
+ #include <errno.h>
++#include <unistd.h>
+ 
+ #define NULL_TERMINATED(n) ((n) + 1)
+ 
+--- support/rlvers.sh
++++ support/rlvers.sh  2018-11-29 08:14:06.638693338 +0000
+@@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers
+ 
+ # defaults
+ CC=cc
+-RL_LIBDIR=/usr/local/lib
+-RL_INCDIR=/usr/local/include
++RL_LIBDIR=/lib
++RL_INCDIR=/usr/include
+ 
+-TERMCAP_LIB="-ltermcap"
++echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > /dev/null 
2>&1 && TERMCAP_LIB="-ltinfo" || TERMCAP_LIB="-lncurses"
+ 
+ # cannot rely on the presence of getopts
+ while [ $# -gt 0 ]; do
+--- support/shobj-conf
++++ support/shobj-conf 2018-11-29 08:14:06.642693263 +0000
+@@ -126,10 +126,11 @@ sunos5*|solaris2*)
+ linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+-      SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
++      SHOBJ_LDFLAGS='-shared'
+ 
+-      SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ 
$(SHLIB_MINOR)`'
++      SHLIB_XLDFLAGS='-Wl,-rpath-link,$(libdir) -Wl,-soname,`basename $@ 
$(SHLIB_MINOR)`'
+       SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
++      echo 'int main () { return 0; }' | gcc -ltinfo -o /dev/null -xc - > 
/dev/null 2>&1 && SHLIB_LIBS=-ltinfo || SHLIB_LIBS=-lncurses
+       ;;
+ 
+ freebsd2*)
+--- tests/glob.tests
++++ tests/glob.tests   2018-11-29 08:14:06.642693263 +0000
+@@ -15,8 +15,8 @@ ${THIS_SH} ./glob3.sub
+ 
+ MYDIR=$PWD    # save where we are
+ 
+-TESTDIR=$TMPDIR/glob-test-$$
+-mkdir $TESTDIR
++TESTDIR=${TMPDIR:=/tmp}/glob-test-$$
++mkdir -p $TESTDIR
+ builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; }
+ rm -rf *
+ 
+--- tests/run-intl
++++ tests/run-intl     2018-11-29 08:14:06.642693263 +0000
+@@ -5,4 +5,4 @@ echo "warning: some of these tests will
+ echo "warning: locales installed on your system." >&2
+ 
+ ${THIS_SH} ./intl.tests > ${BASH_TSTOUT}
+-diff $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT}
++diff -w $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT}
+--- tests/run-read
++++ tests/run-read     2018-11-29 08:14:06.642693263 +0000
+@@ -1,4 +1,4 @@
+ echo "warning: please do not consider output differing only in the amount of" 
>&2
+ echo "warning: white space to be an error." >&2
+ ${THIS_SH} ./read.tests > ${BASH_TSTOUT} 2>&1
+-diff ${BASH_TSTOUT} read.right && rm -f ${BASH_TSTOUT}
++diff -w ${BASH_TSTOUT} read.right && rm -f ${BASH_TSTOUT}

++++++ bash-4.4.tar.gz -> bash-5.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/bash/bash-4.4.tar.gz 
/work/SRC/openSUSE:Factory/.bash.new.28833/bash-5.0.tar.gz differ: char 5, line 
1


Reply via email to