26 Oct
2016
26 Oct
'16
11:25
Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2016-10-26 13:25:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "bash" Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2016-08-25 09:48:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.bash.new/bash.changes 2016-10-26 13:25:41.000000000 +0200 @@ -1,0 +2,38 @@ +Mon Oct 24 13:51:10 UTC 2016 - schwab@suse.de + +- no-null-warning.patch: Don't warn about null bytes in command + substitution + +------------------------------------------------------------------- +Tue Oct 4 12:59:48 UTC 2016 - werner@suse.de + +- Avoid confusing library path + +------------------------------------------------------------------- +Fri Sep 16 10:41:30 UTC 2016 - werner@suse.de + +- Update bash 4.4 final + * Latest bug fixes since 4.4 rc2 +- Update readline 7.0 final + * Latest bug fixes since 7.0 rc2 + * New application-callable function: rl_pending_signal(): returns the signal + number of any signal readline has caught but not yet handled. + * New application-settable variable: rl_persistent_signal_handlers: if set + to a non-zero value, readline will enable the readline-6.2 signal handler + behavior in callback mode: handlers are installed when + rl_callback_handler_install is called and removed removed when a complete + line has been read. +- Drop patch bash-4.3-async-bnc971410.dif as this one is part of 4.4 +- Drop patch bash-3.2-longjmp.dif as now long time be fixed +- Drop patch bash-4.3-headers.dif as loadables now simply work +- Drop readline-6.1-wrap.patch as this seems to be fixed +- Disable patch bash-4.0-async-bnc523667.dif for now as it seems to be fixed + in an other way + +------------------------------------------------------------------- +Wed Sep 14 09:00:14 UTC 2016 - werner@suse.de + +- Update bash 4.4 rc2 -- Bugfixes +- Update readline 7.0 rc2 -- Bugfixes + +------------------------------------------------------------------- @@ -9 +47,26 @@ -Tue Jun 28 09:27:24 UTC 2016 - werner@suse.de +Thu Jul 14 12:43:08 UTC 2016 - werner@suse.de + +- Update bash 4.4 beta 2 + * Value conversions (arithmetic expansions, case modification, etc.) now + happen when assigning elements of an array using compound assignment. + * There is a new option settable in config-top.h that makes multiple + directory arguments to `cd' a fatal error. + * Bash now uses mktemp() when creating internal temporary files; it produces + a warning at build time on many Linux systems. +- Update to readline library 7.0 beta 2 (not enabled as not standalone) + * The default binding for ^W in vi mode now uses word boundaries specified + by Posix (vi-unix-word-rubout is bindable command name). + * rl_clear_visible_line: new application-callable function; clears all + screen lines occupied by the current visible readline line. + * rl_tty_set_echoing: application-callable function that controls whether + or not readline thinks it is echoing terminal output. + * Handle >| and strings of digits preceding and following redirection + specifications as single tokens when tokenizing the line for history + expansion. + * Fixed a bug with displaying completions when the prefix display length + is greater than the length of the completions to be displayed. + * The :p history modifier now applies to the entire line, so any expansion + specifying :p causes the line to be printed instead of expanded. + +------------------------------------------------------------------- +Tue Mar 8 14:49:41 UTC 2016 - werner@suse.de @@ -11,20 +74,133 @@ -- Add upstream patch bash43-046 - An incorrect conversion from an indexed to associative array can - result in a core dump. -- Add upstream patch bash43-045 - If a file open attempted as part of a redirection fails because it - is interrupted by a signal, the shell needs to process any pending - traps to allow the redirection to be canceled. -- Add upstream patch bash43-044 - A typo prevents the `compat42' shopt option from working as intended. -- Add upstream patch bash43-043 - When the lastpipe option is enabled, the last component can contain - nested pipelines and cause a segmentation fault under certain - circumestances. - -------------------------------------------------------------------- -Fri Apr 1 08:38:48 UTC 2016 - werner@suse.de - -- Add patch bash-4.3-async-bnc971410.dif - this is a backport from bash-4.4-rc1 and might help to avoid to - run onto a not existing child pointer, bnc#971410. +- Update bash 4.4 release candidate 1 + * There is now a settable configuration #define that will cause the shell + to exit if the shell is running setuid without the -p option and setuid + to the real uid fails. + * Command and process substitutions now turn off the `-v' option when + executing, as other shells seem to do. + * The default value for the `checkhash' shell option may now be set at + compile time with a #define. + * The `mapfile' builtin now has a -d option to use an arbitrary character + as the record delimiter, and a -t option to strip the delimiter as + supplied with -d. + * The maximum number of nested recursive calls to `eval' is now settable in + config-top.h; the default is no limit. + * The `-p' option to declare and similar builtins will display attributes for + named variables even when those variables have not been assigned values + (which are technically unset). + * The maximum number of nested recursive calls to `source' is now settable + in config-top.h; the default is no limit. + * All builtin commands recognize the `--help' option and print a usage + summary. + * Bash does not allow function names containing `/' and `=' to be exported. + * The `ulimit' builtin has new -k (kqueues) and -P (pseudoterminals) options. + * The shell now allows `time ; othercommand' to time null commands. + * There is a new `--enable-function-import' configuration option to allow + importing shell functions from the environment; import is enabled by + default. + * `printf -v var ""' will now set `var' to the empty string, as if `var=""' + had been executed. + * GLOBIGNORE, the pattern substitution word expansion, and programmable + completion match filtering now honor the value of the `nocasematch' option. + * There is a new ${parameter@spec} family of operators to transform the + value of `parameter'. + * Bash no longer attempts to perform compound assignment if a variable on the + rhs of an assignment statement argument to `declare' has the form of a + compound assignment (e.g., w='(word)' ; declare foo=$w); compound + assignments are accepted if the variable was already declared as an array, + but with a warning. + * The declare builtin no longer displays array variables using the compound + assignment syntax with quotes; that will generate warnings when re-used as + input, and isn't necessary. + * Executing the rhs of && and || will no longer cause the shell to fork if + it's not necessary. + * The `local' builtin takes a new argument: `-', which will cause it to save + and the single-letter shell options and restore their previous values at + function return. + * `complete' and `compgen' have a new `-o nosort' option, which forces + readline to not sort the completion matches. + * Bash now allows waiting for the most recent process substitution, since it + appears as $!. + * The `unset' builtin now unsets a scalar variable if it is subscripted with + a `0', analogous to the ${var[0]} expansion. + * `set -i' is no longer valid, as in other shells. + * BASH_SUBSHELL is now updated for process substitution and group commands + in pipelines, and is available with the same value when running any exit + trap. + * Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or + not bash is being run in a GNU Emacs shell window. + * Bash now treats SIGINT received when running a non-builtin command in a + loop the way it has traditionally treated running a builtin command: + running any trap handler and breaking out of the loop. + * New variable: EXECIGNORE; a colon-separate list of patterns that will + cause matching filenames to be ignored when searching for commands. + * Aliases whose value ends in a shell metacharacter now expand in a way to + allow them to be `pasted' to the next token, which can potentially change + the meaning of a command (e.g., turning `&' into `&&'). + * `make install' now installs the example loadable builtins and a set of + bash headers to use when developing new loadable builtins. + * `enable -f' now attempts to call functions named BUILTIN_builtin_load when + loading BUILTIN, and BUILTIN_builtin_unload when deleting it. This allows + loadable builtins to run initialization and cleanup code. + * There is a new BASH_LOADABLES_PATH variable containing a list of directories + where the `enable -f' command looks for shared objects containing loadable + builtins. + * The `complete_fullquote' option to `shopt' changes filename completion to + quote all shell metacharacters in filenames and directory names. + * The `kill' builtin now has a `-L' option, equivalent to `-l', for + compatibility with Linux standalone versions of kill. + * BASH_COMPAT and FUNCNEST can be inherited and set from the shell's initial + environment. + * inherit_errexit: a new `shopt' option that, when set, causes command + substitutions to inherit the -e option. By default, those subshells disable + -e. It's enabled as part of turning on posix mode. + * New prompt string: PS0. Expanded and displayed by interactive shells after + reading a complete command but before executing it. + * Interactive shells now behave as if SIGTSTP/SIGTTIN/SIGTTOU are set to SIG_DFL + when the shell is started, so they are set to SIG_DFL in child processes. + * Posix-mode shells now allow double quotes to quote the history expansion + character. + * OLDPWD can be inherited from the environment if it names a directory. + * Shells running as root no longer inherit PS4 from the environment, closing a + security hole involving PS4 expansion performing command substitution. + * If executing an implicit `cd' when the `autocd' option is set, bash will now + invoke a function named `cd' if one exists before executing the `cd' builtin. +- Update to readline library 7.0 release candidate 1 + * The history truncation code now uses the same error recovery mechansim as + the history writing code, and restores the old version of the history file + on error. The error recovery mechanism handles symlinked history files. + * There is a new bindable variable, `enable-bracketed-paste', which enables + support for a terminal's bracketed paste mode. + * The editing mode indicators can now be strings and are user-settable + (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string' + variables). Mode strings can contain invisible character sequences. + Setting mode strings to null strings restores the defaults. + * Prompt expansion adds the mode string to the last line of a multi-line + prompt (one with embedded newlines). + * There is a new bindable variable, `colored-completion-prefix', which, if + set, causes the common prefix of a set of possible completions to be + displayed in color. + * There is a new bindable command `vi-yank-pop', a vi-mode version of emacs- + mode yank-pop. ++++ 23 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/bash/bash.changes ++++ and /work/SRC/openSUSE:Factory/.bash.new/bash.changes Old: ---- bash-3.2-longjmp.dif bash-4.3-async-bnc971410.dif bash-4.3-headers.dif bash-4.3-patches.tar.bz2 bash-4.3.dif bash-4.3.tar.gz readline-6.1-wrap.patch readline-6.3-patches.tar.bz2 readline-6.3.dif readline-6.3.tar.gz New: ---- bash-4.4-patches.tar.bz2 bash-4.4.dif bash-4.4.tar.gz no-null-warning.patch readline-7.0-patches.tar.bz2 readline-7.0.dif readline-7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -20,38 +20,36 @@ Name: bash BuildRequires: audit-devel -BuildRequires: bison -%if %suse_version > 1020 BuildRequires: autoconf +BuildRequires: bison BuildRequires: fdupes -%endif %if %suse_version > 1220 BuildRequires: makeinfo %endif BuildRequires: ncurses-devel BuildRequires: patchutils +BuildRequires: pkg-config BuildRequires: screen BuildRequires: sed -%define bash_vers 4.3 -%define rl_vers 6.3 -%define extend "" -%if %suse_version > 1020 +%define bash_vers 4.4 +%define rl_vers 7.0 +%define bextend %nil +%define rextend %nil Recommends: bash-lang = %bash_vers # The package bash-completion is a source of # bugs which will hit at most this package #Recommends: bash-completion Suggests: command-not-found Recommends: bash-doc = %bash_vers -%endif -Version: %{bash_vers} +Version: 4.4 Release: 0 Summary: The GNU Bourne-Again Shell License: GPL-3.0+ Group: System/Shells Url: http://www.gnu.org/software/bash/bash.html # Git: http://git.savannah.gnu.org/cgit/bash.git -Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}.tar.gz -Source1: ftp://ftp.gnu.org/gnu/readline/readline-%{rl_vers}.tar.gz +Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}%{bextend}.tar.gz +Source1: ftp://ftp.gnu.org/gnu/readline/readline-%{rl_vers}%{rextend}.tar.gz Source2: bash-%{bash_vers}-patches.tar.bz2 Source3: readline-%{rl_vers}-patches.tar.bz2 Source4: run-tests @@ -70,8 +68,10 @@ 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 +# Is this fixed meanwhile? Patch8: bash-4.0-async-bnc523667.dif Patch9: bash-4.3-include-unistd.dif Patch10: bash-3.2-printf.patch @@ -80,14 +80,11 @@ Patch13: bash-4.2-nscdunmap.dif Patch14: bash-4.3-sigrestart.patch # PATCH-FIX-UPSTREAM bnc#382214 -- disabled due bnc#806628 by -DBNC382214=0 -Patch15: bash-3.2-longjmp.dif Patch16: bash-4.0-setlocale.dif -Patch17: bash-4.3-headers.dif # PATCH-EXTEND-SUSE bnc#828877 -- xterm resizing does not pass to all sub clients Patch18: bash-4.3-winch.dif Patch20: readline-%{rl_vers}.dif Patch21: readline-6.3-input.dif -Patch22: readline-6.1-wrap.patch Patch23: readline-5.2-conf.patch Patch24: readline-6.2-metamode.patch Patch25: readline-6.2-endpw.dif @@ -101,8 +98,8 @@ 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 -# PATCH-FIX-UPSTREAM bnc#971410 -- bash script teminates unexpectedly throwing backtrace -Patch50: bash-4.3-async-bnc971410.dif +# PATCH-FIX-OPENSUSE Don't warn about null bytes in command substitution +Patch50: no-null-warning.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _incdir %{_includedir} @@ -124,9 +121,7 @@ PreReq: %install_info_prereq Version: %{bash_vers} Release: 0 -%if %suse_version > 1120 BuildArch: noarch -%endif %description -n bash-doc This package contains the documentation for using the bourne shell @@ -146,7 +141,6 @@ Provides translations to the package bash %endif -%if 0%suse_version >= 1020 %package -n bash-devel Summary: Include Files mandatory for Development of bash loadable builtins Group: Development/Languages/C and C++ @@ -157,7 +151,6 @@ This package contains the C header files for writing loadable new builtins for the interpreter Bash. Use -I /usr/include/bash/on the compilers command line. -%endif %package -n bash-loadables Summary: Loadable bash builtins @@ -219,24 +212,22 @@ whoami Print out username of current user. -%package -n libreadline6 +%package -n libreadline7 Summary: The Readline Library Group: System/Libraries Provides: bash:/%{_lib}/libreadline.so.%{rl_major} Version: %{rl_vers} Release: 0 -%if 0%suse_version > 1020 Recommends: readline-doc = %{version} -%endif # bug437293 %ifarch ppc64 Obsoletes: readline-64bit %endif # Provides: readline = %{rl_vers} -Obsoletes: readline <= 6.2 +Obsoletes: readline <= 6.3 -%description -n libreadline6 +%description -n libreadline7 The readline library is used by the Bourne Again Shell (bash, the standard command interpreter) for easy editing of command lines. This includes history and search functionality. @@ -247,11 +238,9 @@ Provides: bash:%{_libdir}/libreadline.a Version: %{rl_vers} Release: 0 -Requires: libreadline6 = %{rl_vers} +Requires: libreadline7 = %{rl_vers} Requires: ncurses-devel -%if 0%suse_version > 1020 Recommends: readline-doc = %{rl_vers} -%endif # bug437293 %ifarch ppc64 Obsoletes: readline-devel-64bit @@ -269,16 +258,14 @@ PreReq: %install_info_prereq Version: %{rl_vers} Release: 0 -%if 0%suse_version > 1120 BuildArch: noarch -%endif %description -n readline-doc This package contains the documentation for using the readline library as well as programming with the interface of the readline library. %prep -%setup -q -n bash-%{bash_vers}%{extend} -b1 -b2 -b3 +%setup -q -n bash-%{bash_vers}%{bextend} -b1 -b2 -b3 typeset -i level for patch in ../bash-%{bash_vers}-patches/*; do test -e $patch || break @@ -300,19 +287,16 @@ %patch5 -p0 -b .warnlc #%patch6 -p0 -b .endpw %patch7 -p0 -b .decl -%patch8 -p0 -b .async +#%patch8 -p0 -b .async %patch9 -p0 -b .unistd %patch10 -p0 -b .printf %patch11 -p0 -b .plugins %patch12 -p0 -b .completion %patch13 -p0 -b .nscdunmap %patch14 -p0 -b .sigrestart -%patch15 -p0 -b .longjmp %patch16 -p0 -b .setlocale -%patch17 -p0 -b .headers %patch18 -p0 -b .winch %patch21 -p0 -b .zerotty -%patch22 -p0 -b .wrap %patch23 -p0 -b .conf %patch24 -p0 -b .metamode #%patch25 -p0 -b .endpw @@ -321,12 +305,12 @@ %patch46 -p0 -b .notimestamp %patch47 -p0 -b .perl522 %if %{with import_function} -%patch48 +%patch48 -b .eif %endif -%patch49 -%patch50 +%patch49 -p0 -b .pthtmp +%patch50 -p1 %patch0 -p0 -b .0 -pushd ../readline-%{rl_vers}%{extend} +pushd ../readline-%{rl_vers}%{rextend} for patch in ../readline-%{rl_vers}-patches/*; do test -e $patch || break let level=0 || true @@ -340,7 +324,6 @@ patch -s -p$level < $patch done %patch21 -p2 -b .zerotty -%patch22 -p2 -b .wrap %patch23 -p2 -b .conf %patch24 -p2 -b .metamode #%patch25 -p2 -b .endpw @@ -373,10 +356,8 @@ HOSTTYPE=${CPU} MACHTYPE=${CPU}-suse-linux export LANG LC_ALL HOSTTYPE MACHTYPE -pushd ../readline-%{rl_vers}%{extend} -%if 0%suse_version >= 1020 +pushd ../readline-%{rl_vers}%{rextend} autoconf -%endif cflags () { local flag=$1; shift @@ -442,7 +423,7 @@ cflags -DIMPORT_FUNCTIONS_DEF=0 CFLAGS cflags -Wl,--as-needed LDFLAGS cflags -Wl,-O2 LDFLAGS - cflags -Wl,-rpath,%{_ldldir}/%{bash_vers} LDFLAGS + cflags -Wl,-rpath,%{_ldldir} LDFLAGS cflags -Wl,--version-script=${PWD}/rl.map LDFLAGS cflags -Wl,--dynamic-list=${PWD}/dyn.map LDFLAGS CC=gcc @@ -471,8 +452,8 @@ # /proc is required for correct configuration test -d /dev/fd || { echo "/proc is not mounted!" >&2; exit 1; } ln -sf ../readline-%{rl_vers} readline - LD_LIBRARY_PATH=$PWD/../readline-%{rl_vers} - export LD_LIBRARY_PATH + LD_RUN_PATH=$PWD/../readline-%{rl_vers} + export LD_RUN_PATH CC="gcc -I$PWD -L$PWD/../readline-%{rl_vers}" %if %_minsh cflags -Os CFLAGS @@ -488,9 +469,7 @@ CC_FOR_BUILD="$CC" CFLAGS_FOR_BUILD="$CFLAGS" export CC_FOR_BUILD CFLAGS_FOR_BUILD CFLAGS LDFLAGS CC -%if 0%suse_version > 1020 autoconf -%endif # # We have a malloc with our glibc # @@ -567,7 +546,7 @@ TMPDIR=$(mktemp -d /tmp/bash.XXXXXXXXXX) || exit 1 > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! - env -i HOME=$PWD TERM=$TERM LD_LIBRARY_PATH=$LD_LIBRARY_PATH TMPDIR=$TMPDIR \ + env -i HOME=$PWD TERM=$TERM LD_LIBRARY_PATH=$LD_RUN_PATH TMPDIR=$TMPDIR \ SCREENRC=$SCREENRC SCREENDIR=$SCREENDIR \ screen -L -D -m make TESTSCRIPT=%{SOURCE4} check kill -TERM $pid @@ -576,7 +555,7 @@ make documentation %install -pushd ../readline-%{rl_vers}%{extend} +pushd ../readline-%{rl_vers}%{rextend} make install htmldir=%{_defaultdocdir}/readline \ installdir=%{_defaultdocdir}/readline/examples DESTDIR=%{buildroot} make install-shared libdir=/%{_lib} linkagedir=%{_libdir} DESTDIR=%{buildroot} @@ -592,8 +571,10 @@ ln -sf /%{_lib}/libreadline.so.%{rl_vers} %{buildroot}/%{_libdir}/libreadline.so popd make install DESTDIR=%{buildroot} - make -C examples/loadables/ install-plugins DESTDIR=%{buildroot} libdir=/%{_lib} - make -C examples/loadables/ install-headers DESTDIR=%{buildroot} + make -C examples/loadables/ install-supported DESTDIR=%{buildroot} libdir=/%{_lib} + rm -rf %{buildroot}%{_libdir}/bash + rm -rf %{buildroot}/%{_lib}/pkgconfig + sed -ri '/CC = gcc/s@(CC = gcc).*@\1@' %{buildroot}%{_libdir}/pkgconfig/bash.pc mkdir -p %{buildroot}/bin mv %{buildroot}%{_bindir}/bash %{buildroot}/bin/ %if %_minsh @@ -603,7 +584,6 @@ ln -sf bash %{buildroot}/bin/sh ln -sf ../../bin/bash %{buildroot}%{_bindir}/sh %endif -install -m 755 bash %{buildroot}/bin/bash ln -sf ../../bin/bash %{buildroot}%{_bindir}/rbash install -m 644 COMPAT NEWS %{buildroot}%{_defaultdocdir}/bash/ install -m 644 COPYING %{buildroot}%{_defaultdocdir}/bash/ @@ -644,9 +624,7 @@ touch -t 199605181720.50 %{buildroot}%{_sysconfdir}/skel/.bash_history chmod 600 %{buildroot}%{_sysconfdir}/skel/.bash_history %find_lang bash -%if %suse_version > 1020 %fdupes -s %{buildroot}%{_datadir}/bash/helpfiles -%endif %post -n bash-doc %install_info --info-dir=%{_infodir} %{_infodir}/bash.info.gz @@ -654,9 +632,9 @@ %preun -n bash-doc %install_info_delete --info-dir=%{_infodir} %{_infodir}/bash.info.gz -%post -n libreadline6 -p /sbin/ldconfig +%post -n libreadline7 -p /sbin/ldconfig -%postun -n libreadline6 -p /sbin/ldconfig +%postun -n libreadline7 -p /sbin/ldconfig %post -n readline-doc %install_info --info-dir=%{_infodir} %{_infodir}/history.info.gz @@ -677,7 +655,7 @@ %config %attr(600,root,root) %{_sysconfdir}/skel/.bash_history %config %attr(644,root,root) %{_sysconfdir}/skel/.bashrc %config %attr(644,root,root) %{_sysconfdir}/skel/.profile -%attr(755,root,root) /bin/bash +/bin/bash /bin/sh %dir %{_sysconfdir}/bash_completion.d %{_bindir}/bashbug @@ -703,19 +681,22 @@ %files -n bash-devel %defattr(-,root,root) %dir /%{_includedir}/bash/ -%dir /%{_includedir}/bash/%{bash_vers}/ -%dir /%{_includedir}/bash/%{bash_vers}/builtins/ -/%{_incdir}/bash/%{bash_vers}/*.h -/%{_incdir}/bash/%{bash_vers}/builtins/*.h +%dir /%{_includedir}/bash/ +%dir /%{_includedir}/bash/builtins/ +%dir /%{_includedir}/bash/include/ +/%{_incdir}/bash/*.h +/%{_incdir}/bash/builtins/*.h +/%{_incdir}/bash/include/*.h +%{_libdir}/pkgconfig/bash.pc %endif %files -n bash-loadables %defattr(-,root,root) %dir %{_ldldir}/ -%dir %{_ldldir}/%{bash_vers}/ -%{_ldldir}/%{bash_vers}/* +%dir %{_ldldir}/ +%{_ldldir}/* -%files -n libreadline6 +%files -n libreadline7 %defattr(-,root,root) /%{_lib}/libhistory.so.%{rl_major} /%{_lib}/libhistory.so.%{rl_vers} ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,4 +1,4 @@ -libreadline6 +libreadline7 obsoletes "readline- <= " provides "readline- = " targettype x86 package bash @@ -7,5 +7,6 @@ prereq -glibc-x86 readline-devel requires -readline- - requires "libreadline6- = " + requires "libreadline7- = " conflicts "readline5-devel- " + conflicts "readline6-devel- " ++++++ bash-2.03-manual.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,12 @@ +--- + doc/bash.1 | 16 ++++++++++++++++ + doc/builtins.1 | 2 +- + doc/rbash.1 | 2 +- + 3 files changed, 18 insertions(+), 2 deletions(-) + --- doc/bash.1 -+++ doc/bash.1 2004-10-25 17:29:54.000000000 +0000 -@@ -115,6 +115,12 @@ processing, then commands are read from ++++ 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. .TP @@ -13,7 +19,7 @@ .B \-D A list of all double-quoted strings preceded by \fB$\fP is printed on the standard output. -@@ -6211,6 +6217,11 @@ Apply the following `\fBs\fP' modifier o +@@ -7038,6 +7044,11 @@ Apply the following `\fBs\fP' modifier o .SH "SHELL BUILTIN COMMANDS" .\" start of bash_builtins .zZ @@ -25,7 +31,7 @@ .PP Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -@@ -9205,6 +9216,11 @@ process or job waited for. +@@ -10432,6 +10443,11 @@ process or job waited for. .SH "RESTRICTED SHELL" .\" rbash.1 .zY @@ -38,8 +44,8 @@ If .B bash --- doc/builtins.1 -+++ doc/builtins.1 2004-10-25 17:29:20.000000000 +0000 -@@ -12,6 +12,6 @@ shift, shopt, source, suspend, test, tim ++++ doc/builtins.1 2016-09-16 10:36:46.667901616 +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 .nr zZ 1 @@ -48,7 +54,7 @@ .SH SEE ALSO bash(1), sh(1) --- doc/rbash.1 -+++ doc/rbash.1 2004-10-25 17:29:20.000000000 +0000 ++++ doc/rbash.1 2016-09-16 10:36:46.667901616 +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.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + expr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + --- expr.c +++ expr.c 2004-07-30 14:39:48.000000000 +0000 -@@ -410,8 +410,8 @@ expassign () +@@ -466,8 +466,8 @@ expassign () value = expcond (); if (curtok == EQ || curtok == OP_ASSIGN) { ++++++ bash-3.0-warn-locale.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + locale.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + --- locale.c +++ locale.c 2004-09-03 10:56:10.000000000 +0000 -@@ -29,6 +29,10 @@ +@@ -33,6 +33,10 @@ #include "bashintl.h" #include "bashansi.h" #include @@ -11,7 +15,7 @@ #include "chartypes.h" #include -@@ -68,6 +72,15 @@ void +@@ -76,6 +80,15 @@ void set_default_locale () { #if defined (HAVE_SETLOCALE) ++++++ bash-3.2-printf.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + builtins/printf.def | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + --- builtins/printf.def +++ builtins/printf.def 2006-07-27 15:11:19.000000000 +0000 -@@ -47,6 +47,7 @@ error occurs. +@@ -54,6 +54,7 @@ error occurs. $END #include @@ -8,7 +12,7 @@ #include "../bashtypes.h" -@@ -529,12 +530,20 @@ printf_builtin (list) +@@ -654,12 +655,20 @@ printf_builtin (list) case 'A': #endif { ++++++ bash-4.0-async-bnc523667.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + jobs.c | 2 ++ + 1 file changed, 2 insertions(+) + --- jobs.c -+++ jobs.c 2009-09-09 17:38:46.286401756 +0200 -@@ -626,6 +626,7 @@ stop_pipeline (async, deferred) ++++ jobs.c 2009-09-09 15:38:46.286401756 +0000 +@@ -681,6 +681,7 @@ stop_pipeline (async, deferred) if (newjob) { newjob->flags |= J_FOREGROUND; @@ -8,9 +12,9 @@ /* * !!!!! NOTE !!!!! (chet@ins.cwru.edu) * -@@ -640,6 +641,7 @@ stop_pipeline (async, deferred) +@@ -696,6 +697,7 @@ stop_pipeline (async, deferred) */ - if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) + if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0 && running_in_background == 0) maybe_give_terminal_to (shell_pgrp, newjob->pgrp, 0); +#endif } ++++++ bash-4.0-security.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + variables.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + --- variables.c -+++ variables.c 2009-12-04 09:31:06.579929599 +0000 -@@ -1216,6 +1216,7 @@ static unsigned long rseed = 1; ++++ 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; @@ -8,7 +12,7 @@ /* 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. */ -@@ -1264,6 +1265,32 @@ seedrand () +@@ -1344,6 +1345,32 @@ seedrand () sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ()); } ++++++ bash-4.0-setlocale.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + locale.c | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + --- locale.c +++ locale.c 2008-11-25 13:41:50.000000000 +0000 -@@ -47,6 +47,7 @@ extern int dump_translatable_strings, du +@@ -54,6 +54,7 @@ extern int dump_translatable_strings, du /* The current locale when the program begins */ static char *default_locale; @@ -8,7 +12,7 @@ /* The current domain for textdomain(3). */ static char *default_domain; -@@ -314,11 +315,21 @@ get_locale_var (var) +@@ -326,11 +327,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.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -16,21 +16,21 @@ |other files as well even if the bash does not. | --- - bash.1 | 15 ++++++++++++--- + doc/bash.1 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) --- doc/bash.1 -+++ doc/bash.1 2016-08-01 12:40:06.771618500 +0000 -@@ -324,6 +324,8 @@ and executes commands from the first one ++++ doc/bash.1 2016-08-01 13:54:54.253999110 +0000 +@@ -329,6 +329,8 @@ and executes commands from the first one The .B \-\-noprofile option may be used when the shell is started to inhibit this behavior. +Please note that the file \fI/etc/profile\fP includes an autodetection shell +code wether it has to source \fI/etc/bash.bashrc\fP as well as \fI~/.bashrc\fP. .PP - When a login shell exits, - .B bash -@@ -332,13 +334,19 @@ exists. + When an interactive login shell exits, + or a non-interactive login shell executes the \fBexit\fP builtin command, +@@ -338,13 +340,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 -@@ -424,7 +432,8 @@ daemon, usually \fIrshd\fP, or the secur +@@ -430,7 +438,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.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,10 @@ +--- + bashline.c | 7 +++++++ + 1 file changed, 7 insertions(+) + --- bashline.c -+++ bashline.c 2010-03-09 14:11:27.612626475 +0000 -@@ -1700,6 +1700,13 @@ globword: ++++ bashline.c 2016-09-14 08:54:09.315700369 +0000 +@@ -2029,6 +2029,13 @@ globword: return ((char *)NULL); } ++++++ bash-4.2-endpw.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,14 @@ +--- + 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(-) + --- bashline.c +++ bashline.c 2011-11-21 12:41:19.831646479 +0000 -@@ -2149,6 +2149,7 @@ bash_groupname_completion_function (text +@@ -2485,6 +2485,7 @@ bash_groupname_completion_function (text } value = savestring (grent->gr_name); @@ -10,7 +18,7 @@ } --- examples/loadables/finfo.c +++ examples/loadables/finfo.c 2011-11-21 12:23:17.331147246 +0000 -@@ -269,6 +269,7 @@ struct stat *st; +@@ -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); @@ -18,7 +26,7 @@ gr = getgrgid(st->st_gid); owner = gr ? gr->gr_name : "unknown"; printf("Gid of owner: %d (%s)\n", (int) st->st_gid, owner); -@@ -277,6 +278,7 @@ struct stat *st; +@@ -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)); @@ -26,7 +34,7 @@ fflush(stdout); return(0); } -@@ -345,16 +347,18 @@ int flags; +@@ -366,16 +368,18 @@ int flags; else if (flags & OPT_PMASK) printf("%o\n", getperm(st->st_mode) & pmask); else if (flags & OPT_UID) { @@ -156,29 +164,6 @@ char * get_env_value (varname) char *varname; -@@ -58,12 +67,19 @@ get_env_value (varname) - char * - get_home_dir () - { -- char *home_dir; -+ static char *home_dir; - struct passwd *entry; - -- home_dir = (char *)NULL; -+ if (home_dir) -+ goto out; -+#if defined (HAVE_GETPWUID) - entry = getpwuid (getuid ()); - if (entry) -- home_dir = entry->pw_dir; -+ home_dir = savestring(entry->pw_dir); -+#endif -+#if defined (HAVE_GETPWENT) -+ endpwent (); -+#endif -+out: - return (home_dir); - } --- 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 ++++++ bash-4.2-nscdunmap.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,17 +1,19 @@ +--- + shell.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + --- shell.c -+++ shell.c 2011-11-11 15:08:39.479158014 +0000 -@@ -39,8 +39,8 @@ - #include - #include "filecntl.h" - #include -- ++++ shell.c 2016-09-14 08:54:32.971258862 +0000 +@@ -43,6 +43,7 @@ + #endif + #if defined (HAVE_UNISTD_H) +# include # include #endif -@@ -1630,6 +1630,28 @@ init_interactive_script () - expand_aliases = interactive_shell = startup_state = 1; +@@ -1751,6 +1752,28 @@ init_interactive_script () + #endif } +static void @@ -39,10 +41,10 @@ void get_current_user_info () { -@@ -1655,6 +1677,7 @@ get_current_user_info () - current_user.home_dir = savestring ("/"); - } +@@ -1782,6 +1805,7 @@ get_current_user_info () + #if defined (HAVE_GETPWENT) endpwent (); + #endif + maybe_unmap_nscd (); } } ++++++ bash-4.3-2.4.4.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,6 +1,15 @@ +--- + array.c | 2 +- + examples/loadables/tee.c | 3 ++- + hashlib.c | 2 +- + jobs.c | 9 +++++++++ + sig.c | 4 ++-- + sig.h | 4 ++-- + 6 files changed, 17 insertions(+), 7 deletions(-) + --- array.c -+++ array.c 2006-11-14 09:54:22.000000000 +0000 -@@ -940,7 +940,7 @@ char *s, *sep; ++++ array.c 2016-09-16 10:37:12.179427118 +0000 +@@ -946,7 +946,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 */ @@ -10,7 +19,7 @@ int signal_is_trapped(s) --- examples/loadables/tee.c -+++ examples/loadables/tee.c 2006-11-14 10:31:29.000000000 +0000 ++++ examples/loadables/tee.c 2016-09-16 10:37:12.179427118 +0000 @@ -35,6 +35,7 @@ #include "bashansi.h" @@ -29,8 +38,8 @@ extern char *strerror (); --- hashlib.c -+++ hashlib.c 2006-11-14 09:54:36.000000000 +0000 -@@ -381,7 +381,7 @@ hash_pstats (table, name) ++++ hashlib.c 2016-09-16 10:37:12.179427118 +0000 +@@ -382,7 +382,7 @@ hash_pstats (table, name) HASH_TABLE *table, *ntable; @@ -40,8 +49,8 @@ int signal_is_trapped (s) --- jobs.c -+++ jobs.c 2001-05-02 16:20:31.000000000 +0000 -@@ -1783,6 +1783,15 @@ make_child (command, async_p) ++++ jobs.c 2016-09-16 10:37:12.183427043 +0000 +@@ -1947,6 +1947,15 @@ make_child (command, async_p) pid_t mypid; mypid = getpid (); @@ -58,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 2006-11-14 09:53:51.000000000 +0000 -@@ -92,10 +92,10 @@ sigset_t top_level_mask; ++++ sig.c 2016-09-16 10:37:12.183427043 +0000 +@@ -98,10 +98,10 @@ sigset_t top_level_mask; #endif /* JOB_CONTROL */ /* When non-zero, we throw_to_top_level (). */ @@ -73,8 +82,8 @@ #if defined (SIGWINCH) static SigHandler *old_winch = (SigHandler *)SIG_DFL; --- sig.h -+++ sig.h 2014-04-17 09:42:15.030235662 +0000 -@@ -111,8 +111,8 @@ do { \ ++++ sig.h 2016-09-16 10:37:12.183427043 +0000 +@@ -109,8 +109,8 @@ do { \ extern volatile sig_atomic_t sigwinch_received; extern volatile sig_atomic_t sigterm_received; ++++++ bash-4.3-decl.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:43.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:43.000000000 +0200 @@ -1,3 +1,7 @@ +--- + support/printenv.c | 1 + + 1 file changed, 1 insertion(+) + --- support/printenv.c +++ support/printenv.c 2014-04-17 09:46:25.874236036 +0000 @@ -31,6 +31,7 @@ ++++++ bash-4.3-extra-import-func.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -2,12 +2,46 @@ builtins/shopt.def | 2 ++ doc/bash.1 | 7 +++++++ shell.c | 2 ++ - variables.c | 13 ++++++++++++- - 4 files changed, 23 insertions(+), 1 deletion(-) + variables.c | 8 +++++++- + 4 files changed, 18 insertions(+), 1 deletion(-) +--- builtins/shopt.def ++++ builtins/shopt.def 2016-09-14 08:57:33.723885627 +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 { + { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion }, + #endif + { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL }, ++ { "import-functions", &import_functions, (shopt_set_func_t *)NULL }, + { "inherit_errexit", &inherit_errexit, (shopt_set_func_t *)NULL }, + { "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 + .B "RESTRICTED SHELL" + below). + .TP ++.B \-\-import\-functions ++This shell is patched in such a way that shell functions in the inported environment ++will not be expanded due several security issues (e.g. CVE\-2014\-6271). This option ++can be used to enable this. It is also possible to use the ++.B shopt ++builtin to do this. ++.TP + .B \-\-verbose + Equivalent to \fB\-v\fP. + .TP --- shell.c -+++ shell.c 2014-09-25 20:11:51.000000000 +0000 -@@ -230,6 +230,7 @@ int posixly_correct = 1; /* Non-zero mea ++++ shell.c 2016-09-14 08:57:33.723885627 +0000 +@@ -238,6 +238,7 @@ int posixly_correct = 1; /* Non-zero mea #else int posixly_correct = 0; /* Non-zero means posix.2 superset. */ #endif @@ -15,7 +49,7 @@ /* Some long-winded argument names. These are obviously new. */ #define Int 1 -@@ -249,6 +250,7 @@ static const struct { +@@ -257,6 +258,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 }, @@ -24,8 +58,8 @@ { "noprofile", Int, &no_profile, (char **)0x0 }, { "norc", Int, &no_rc, (char **)0x0 }, --- variables.c -+++ variables.c 2014-10-06 08:36:41.299837915 +0000 -@@ -110,6 +110,7 @@ extern time_t shell_start_time; ++++ 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; @@ -33,34 +67,11 @@ #if defined (READLINE) extern int no_line_editing; -@@ -328,6 +329,7 @@ initialize_shell_variables (env, privmod - char *name, *string, *temp_string; - int c, char_index, string_index, string_length, ro; - SHELL_VAR *temp_var; -+ int skipped_import; - - create_variable_tables (); - -@@ -352,9 +354,12 @@ initialize_shell_variables (env, privmod - - temp_var = (SHELL_VAR *)NULL; - -+ skipped_import = 0; -+ reval: -+ - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -- if (privmode == 0 && read_but_dont_execute == 0 && -+ if (skipped_import == 0 && privmode == 0 && read_but_dont_execute == 0 && - STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && - STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && - STREQN ("() {", string, 4)) -@@ -367,6 +372,12 @@ initialize_shell_variables (env, privmod +@@ -378,6 +379,11 @@ initialize_shell_variables (env, privmod tname = name + BASHFUNC_PREFLEN; /* start of func name */ tname[namelen] = '\0'; /* now tname == func name */ + if (!import_functions && !interactive_shell) { -+ skipped_import = 1; + report_error (_("Skipping importing function definition for `%s': --import-functions required."), tname); + goto reval; + } @@ -68,37 +79,12 @@ string_length = strlen (string); temp_string = (char *)xmalloc (namelen + string_length + 2); ---- builtins/shopt.def -+++ builtins/shopt.def 2014-09-30 11:58:14.000000000 +0000 -@@ -90,6 +90,7 @@ extern int autocd; - extern int glob_star; - extern int glob_asciirange; - extern int lastpipe_opt; -+extern int import_functions; - - #if defined (EXTENDED_GLOB) - extern int extended_glob; -@@ -192,6 +193,7 @@ static struct { - { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion }, - #endif - { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL }, -+ { "import-functions", &import_functions, (shopt_set_func_t *)NULL }, - { "interactive_comments", &interactive_comments, set_shellopts_after_change }, - { "lastpipe", &lastpipe_opt, (shopt_set_func_t *)NULL }, - #if defined (HISTORY) ---- doc/bash.1 -+++ doc/bash.1 2014-09-30 12:09:40.000000000 +0000 -@@ -240,6 +240,13 @@ The shell becomes restricted (see - .B "RESTRICTED SHELL" - below). - .TP -+.B \-\-import\-functions -+This shell is patched in such a way that shell functions in the inported environment -+will not be expanded due several security issues (e.g. CVE\-2014\-6271). This option -+can be used to enable this. It is also possible to use the -+.B shopt -+builtin to do this. -+.TP - .B \-\-verbose - Equivalent to \fB\-v\fP. - .TP +@@ -392,7 +398,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 */ +- ++ reval: + if (temp_var = find_function (tname)) + { + VSETATTR (temp_var, (att_exported|att_imported)); ++++++ bash-4.3-include-unistd.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,9 +1,9 @@ -This change was originally part of patch bash-4.3-loadables.dif. -However the loadables build just fine with this change, so it may -still be needed but does not belong to that patch. +--- + shell.h | 3 +++ + 1 file changed, 3 insertions(+) ---- shell.h.orig -+++ shell.h +--- shell.h ++++ shell.h 2016-03-08 10:22:38.169929522 +0000 @@ -22,6 +22,9 @@ #include "config.h" #endif ++++++ bash-4.3-loadables.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,26 +1,16 @@ ---- examples/loadables/basename.c -+++ examples/loadables/basename.c -@@ -31,6 +31,7 @@ - #include "shell.h" - #include "common.h" - -+int - basename_builtin (list) - WORD_LIST *list; - { ---- examples/loadables/dirname.c -+++ examples/loadables/dirname.c -@@ -31,6 +31,7 @@ - #include "shell.h" - #include "common.h" - -+int - dirname_builtin (list) - WORD_LIST *list; - { +--- + examples/loadables/finfo.c | 11 +++++------ + 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(-) + --- examples/loadables/finfo.c -+++ examples/loadables/finfo.c -@@ -99,7 +99,7 @@ int argc; ++++ examples/loadables/finfo.c 2016-03-08 12:24:51.061423424 +0000 +@@ -102,7 +102,7 @@ int argc; char **argv; { register int i; @@ -29,25 +19,7 @@ sh_optind = 0; /* XXX */ prog = base_pathname(argv[0]); -@@ -192,7 +192,7 @@ int m; - return (m & (S_IRWXU|S_IRWXG|S_IRWXO|S_ISUID|S_ISGID)); - } - --static int -+static void - perms(m) - int m; - { -@@ -236,7 +236,7 @@ int m; - printf ("u=%s,g=%s,o=%s", ubits, gbits, obits); - } - --static int -+static void - printmode(mode) - int mode; - { -@@ -331,13 +331,13 @@ int flags; +@@ -334,13 +334,13 @@ int flags; else printf("%ld\n", st->st_ctime); } else if (flags & OPT_DEV) @@ -65,7 +37,7 @@ else if (flags & OPT_LNKNAM) { #ifdef S_ISLNK b = xmalloc(4096); -@@ -387,7 +387,6 @@ finfo_builtin(list) +@@ -390,7 +390,6 @@ finfo_builtin(list) { int c, r; char **v; @@ -74,19 +46,8 @@ v = make_builtin_argv (list, &c); r = finfo_main (c, v); --- examples/loadables/head.c -+++ examples/loadables/head.c -@@ -88,8 +88,10 @@ file_head (fp, cnt) - break; - } - } -+ return EXECUTION_SUCCESS; - } - -+int - head_builtin (list) - WORD_LIST *list; - { -@@ -97,8 +99,6 @@ head_builtin (list) ++++ examples/loadables/head.c 2016-03-08 12:24:51.061423424 +0000 +@@ -99,8 +99,6 @@ head_builtin (list) WORD_LIST *l; FILE *fp; @@ -96,7 +57,7 @@ reset_internal_getopt (); --- examples/loadables/id.c -+++ examples/loadables/id.c ++++ examples/loadables/id.c 2016-03-08 12:24:51.061423424 +0000 @@ -64,8 +64,6 @@ static int id_flags; static uid_t ruid, euid; static gid_t rgid, egid; @@ -106,38 +67,9 @@ static int inituser (); static int id_pruser (); ---- examples/loadables/ln.c -+++ examples/loadables/ln.c -@@ -50,6 +50,7 @@ typedef int unix_link_syscall_t __P((con - static unix_link_syscall_t *linkfn; - static int dolink (); - -+int - ln_builtin (list) - WORD_LIST *list; - { ---- examples/loadables/logname.c -+++ examples/loadables/logname.c -@@ -35,6 +35,7 @@ - extern int errno; - #endif - -+int - logname_builtin (list) - WORD_LIST *list; - { --- examples/loadables/mkdir.c -+++ examples/loadables/mkdir.c -@@ -52,7 +52,7 @@ int - mkdir_builtin (list) - WORD_LIST *list; - { -- int opt, pflag, omode, rval, octal, nmode, parent_mode, um; -+ int opt, pflag, omode, rval, octal, nmode, parent_mode; - char *mode; - WORD_LIST *l; - -@@ -169,7 +169,7 @@ make_path (path, nmode, parent_mode) ++++ examples/loadables/mkdir.c 2016-03-08 12:24:51.061423424 +0000 +@@ -167,7 +167,7 @@ make_path (path, nmode, parent_mode) while (*p == '/') p++; @@ -147,16 +79,8 @@ *p = '\0'; if (stat (npath, &sb) != 0) --- examples/loadables/pathchk.c -+++ examples/loadables/pathchk.c -@@ -98,6 +98,7 @@ extern char *strerror (); - - static int validate_path (); - -+int - pathchk_builtin (list) - WORD_LIST *list; - { -@@ -290,10 +291,8 @@ validate_path (path, portability) ++++ examples/loadables/pathchk.c 2016-03-08 12:24:51.061423424 +0000 +@@ -291,10 +291,8 @@ validate_path (path, portability) if (*path == '\0') return 0; @@ -167,17 +91,8 @@ /* Figure out the parent of the first element in PATH. */ parent = xstrdup (*path == '/' ? "/" : "."); -@@ -370,7 +369,7 @@ validate_path (path, portability) - free (parent); - if (strlen (path) > path_max) - { -- builtin_error ("path `%s' has length %d; exceeds limit of %d", -+ builtin_error ("path `%s' has length %zu; exceeds limit of %d", - path, strlen (path), path_max); - return 1; - } --- examples/loadables/print.c -+++ examples/loadables/print.c ++++ examples/loadables/print.c 2016-03-08 12:24:51.061423424 +0000 @@ -77,7 +77,7 @@ print_builtin (list) { int c, r, nflag, raw, ofd, sflag; @@ -187,47 +102,9 @@ WORD_LIST *l; nflag = raw = sflag = 0; ---- examples/loadables/realpath.c -+++ examples/loadables/realpath.c -@@ -60,6 +60,7 @@ extern int errno; - - extern char *sh_realpath(); - -+int - realpath_builtin(list) - WORD_LIST *list; - { ---- examples/loadables/rmdir.c -+++ examples/loadables/rmdir.c -@@ -32,6 +32,7 @@ - extern int errno; - #endif - -+int - rmdir_builtin (list) - WORD_LIST *list; - { ---- examples/loadables/sync.c -+++ examples/loadables/sync.c -@@ -28,6 +28,7 @@ - #include "shell.h" - #include "bashgetopt.h" - -+int - sync_builtin (list) - WORD_LIST *list; - { --- examples/loadables/tee.c -+++ examples/loadables/tee.c -@@ -60,6 +60,7 @@ extern int interrupt_immediately; - - extern char *strerror (); - -+int - tee_builtin (list) - WORD_LIST *list; - { -@@ -68,8 +69,6 @@ tee_builtin (list) ++++ examples/loadables/tee.c 2016-03-08 12:24:51.061423424 +0000 +@@ -70,8 +70,6 @@ tee_builtin (list) FLIST *fl; char *buf, *bp; @@ -236,81 +113,3 @@ reset_internal_getopt (); append = nointr = 0; tee_flist = (FLIST *)NULL; ---- examples/loadables/truefalse.c -+++ examples/loadables/truefalse.c -@@ -25,26 +25,26 @@ - #include "builtins.h" - #include "common.h" - --true_builtin (list) -+int true_builtin (list) - WORD_LIST *list; - { - return EXECUTION_SUCCESS; - } - --false_builtin (list) -+int false_builtin (list) - WORD_LIST *list; - { - return EXECUTION_FAILURE; - } - --static char *true_doc[] = { -+char * const true_doc[] = { - "Exit successfully.", - "", - "Return a successful result.", - (char *)NULL - }; - --static char *false_doc[] = { -+char * const false_doc[] = { - "Exit unsuccessfully.", - "", - "Return an unsuccessful result.", ---- examples/loadables/tty.c -+++ examples/loadables/tty.c -@@ -30,6 +30,7 @@ - - extern char *ttyname (); - -+int - tty_builtin (list) - WORD_LIST *list; - { ---- examples/loadables/uname.c -+++ examples/loadables/uname.c -@@ -63,10 +63,11 @@ static void uprint(); - - static int uname_flags; - -+int - uname_builtin (list) - WORD_LIST *list; - { -- int opt, r; -+ int opt; - struct utsname uninfo; - - uname_flags = 0; ---- examples/loadables/unlink.c -+++ examples/loadables/unlink.c -@@ -38,6 +38,7 @@ - extern int errno; - #endif - -+int - unlink_builtin (list) - WORD_LIST *list; - { ---- examples/loadables/whoami.c -+++ examples/loadables/whoami.c -@@ -28,6 +28,7 @@ - #include "bashgetopt.h" - #include "common.h" - -+int - whoami_builtin (list) - WORD_LIST *list; - { ++++++ bash-4.3-pathtemp.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -3,7 +3,7 @@ 1 file changed, 43 insertions(+) --- lib/sh/tmpfile.c -+++ lib/sh/tmpfile.c 2015-10-19 13:35:30.869518731 +0000 ++++ lib/sh/tmpfile.c 2016-07-14 12:22:06.681051058 +0000 @@ -36,6 +36,14 @@ #include #include @@ -19,7 +19,7 @@ #include #ifndef errno -@@ -60,6 +68,8 @@ static unsigned long filenum = 1L; +@@ -65,6 +73,8 @@ static unsigned long filenum = 1L; static char * get_sys_tmpdir () { @@ -28,7 +28,7 @@ if (sys_tmpdir) return sys_tmpdir; -@@ -86,6 +96,31 @@ get_sys_tmpdir () +@@ -91,6 +101,31 @@ get_sys_tmpdir () return sys_tmpdir; } @@ -60,15 +60,15 @@ static char * get_tmpdir (flags) int flags; -@@ -164,6 +199,7 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -188,6 +223,7 @@ sh_mktmpfd (nameroot, flags, namep) int fd, tdlen; - + filename = (char *)xmalloc (PATH_MAX + 1); +enospace: tdir = get_tmpdir (flags); tdlen = strlen (tdir); -@@ -177,6 +213,10 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -201,6 +237,10 @@ sh_mktmpfd (nameroot, flags, namep) free (filename); filename = NULL; } @@ -79,7 +79,7 @@ if (namep) *namep = filename; return fd; -@@ -194,6 +234,9 @@ sh_mktmpfd (nameroot, flags, namep) +@@ -219,6 +259,9 @@ sh_mktmpfd (nameroot, flags, namep) } while (fd < 0 && errno == EEXIST); ++++++ bash-4.3-perl522.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -2,9 +2,12 @@ perl 5.22 makes the long deprecated defined(@array) an hard error +--- + support/texi2html | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) --- support/texi2html -+++ support/texi2html ++++ support/texi2html 2016-03-08 11:49:40.596622296 +0000 @@ -4855,9 +4855,9 @@ sub update_sec_num { my $ret; ++++++ bash-4.3-sigrestart.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,6 +1,10 @@ +--- + sig.c | 6 ++++++ + 1 file changed, 6 insertions(+) + --- sig.c -+++ sig.c 2014-04-17 10:02:57.078235890 +0000 -@@ -722,10 +722,16 @@ set_signal_handler (sig, handler) ++++ sig.c 2016-09-14 08:54:54.158863424 +0000 +@@ -738,10 +738,16 @@ set_signal_handler (sig, handler) if (sig == SIGCHLD) act.sa_flags |= SA_RESTART; /* XXX */ #endif ++++++ bash-4.3-winch.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,6 +1,10 @@ +--- + config-top.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + --- config-top.h -+++ config-top.h 2014-04-17 10:19:39.698805960 +0000 -@@ -122,7 +122,7 @@ ++++ config-top.h 2016-09-14 08:55:30.170191343 +0000 +@@ -130,7 +130,7 @@ /* Define to 0 if you want the checkwinsize option off by default, 1 if you want it on. */ ++++++ bash-4.3-patches.tar.bz2 -> bash-4.4-patches.tar.bz2 ++++++ ++++ 7940 lines of diff (skipped) ++++++ bash-3.2-longjmp.dif -> bash-4.4.dif ++++++ --- /work/SRC/openSUSE:Factory/bash/bash-3.2-longjmp.dif 2013-03-22 11:00:48.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new/bash-4.4.dif 2016-10-26 13:25:41.000000000 +0200 @@ -1,43 +1,234 @@ ---- execute_cmd.c -+++ execute_cmd.c 2008-04-28 01:38:19.000000000 +0000 -@@ -25,6 +25,7 @@ - #endif /* _AIX && RISC6000 && !__GNUC__ */ +--- + config-top.h | 16 ++++++++++------ + doc/Makefile.in | 2 +- + doc/bash.1 | 7 +++++-- + general.h | 3 +++ + parse.y | 2 +- + shell.c | 4 +++- + 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 +- + 13 files changed, 35 insertions(+), 21 deletions(-) + +--- config-top.h ++++ config-top.h 2016-09-16 10:38:13.570285185 +0000 +@@ -60,17 +60,21 @@ + due to EPIPE. */ + /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ - #include -+#include - #include "chartypes.h" - #include "bashtypes.h" - #if !defined (_MINIX) && defined (HAVE_SYS_FILE_H) -@@ -4764,6 +4765,23 @@ shell_execve (command, args, env) - /* We have committed to attempting to execute the contents of this file - as shell commands. */ - -+#if defined(BNC382214) && (BNC382214 == 1) -+ larray = strvec_len(args) + 1; -+ args = strvec_resize(args, larray + 1); -+ -+ for (i = larray - 1; i; i--) -+ args[i] = args[i - 1]; -+ -+ args[0] = current_user.shell ? current_user.shell : savestring(_PATH_BSHELL); -+ args[1] = command; -+ args[larray] = (char *)0; -+ -+ SETOSTYPE (0); /* Some systems use for USG/POSIX semantics */ -+ execve (args[0], args, env); -+ SETOSTYPE (1); ++#ifndef _PATH_DEFPATH ++# include ++#endif + -+ internal_error (_("%s: cannot execute: %s"), command, strerror (errno)); -+#else - initialize_subshell (); + /* 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 - set_sigint_handler (); -@@ -4806,6 +4824,8 @@ shell_execve (command, args, env) + /* The value for PATH when invoking `command -p'. This is only used when + 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 - longjmp (subshell_top_level, 1); - /*NOTREACHED*/ -+#endif -+ return (EX_NOEXEC); - } + /* Default primary and secondary prompt strings. */ +@@ -87,20 +91,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 2016-09-16 10:38:13.570285185 +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 2016-09-16 10:38:13.570285185 +0000 +@@ -5253,8 +5253,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. +@@ -10586,6 +10586,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 2016-09-16 10:38:17.614209958 +0000 +@@ -21,10 +21,13 @@ + #if !defined (_GENERAL_H_) + #define _GENERAL_H_ + ++#include ++#include + #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 2016-09-16 10:38:17.614209958 +0000 +@@ -1426,7 +1426,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 2016-09-16 10:38:17.614209958 +0000 +@@ -45,6 +45,7 @@ + #if defined (HAVE_UNISTD_H) + # include + # include ++# include + #endif + + #include "bashintl.h" +@@ -501,7 +502,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 +@@ -1277,6 +1278,7 @@ disable_priv_mode () + { + int e; + ++ setgroups(0, NULL); + if (setuid (current_user.uid) < 0) + { + e = errno; +--- support/bashbug.sh ++++ support/bashbug.sh 2016-09-16 10:38:17.614209958 +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 2016-09-16 10:38:17.618209884 +0000 +@@ -78,6 +78,7 @@ + #include + #include + #include ++#include + + #define NULL_TERMINATED(n) ((n) + 1) + +--- support/rlvers.sh ++++ support/rlvers.sh 2016-09-16 10:38:17.618209884 +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 2016-09-16 10:38:17.618209884 +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 2016-09-16 10:38:17.618209884 +0000 +@@ -12,8 +12,8 @@ ${THIS_SH} ./glob1.sub + + MYDIR=$PWD # save where we are + +-TESTDIR=/tmp/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 2016-09-16 10:38:17.618209884 +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 2016-09-16 10:38:17.618209884 +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.3.tar.gz -> bash-4.4.tar.gz ++++++ /work/SRC/openSUSE:Factory/bash/bash-4.3.tar.gz /work/SRC/openSUSE:Factory/.bash.new/bash-4.4.tar.gz differ: char 5, line 1 ++++++ man2html-no-timestamp.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,8 +1,10 @@ -Index: support/man2html.c -=================================================================== ---- support/man2html.c.orig 2005-10-12 20:50:06.000000000 +0200 -+++ support/man2html.c 2010-09-03 22:49:56.288632000 +0200 -@@ -4061,7 +4061,7 @@ main(int argc, char **argv) +--- + support/man2html.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- support/man2html.c ++++ support/man2html.c 2010-09-03 20:49:56.288632000 +0000 +@@ -4076,7 +4076,7 @@ main(int argc, char **argv) if (subs) fputs("\n", stdout); fputs("\n", stdout); ++++++ no-null-warning.patch ++++++ Index: bash-4.4/subst.c =================================================================== --- bash-4.4.orig/subst.c +++ bash-4.4/subst.c @@ -5955,7 +5955,7 @@ read_comsub (fd, quoted, rflag) if (c == 0) { -#if 1 +#if 0 internal_warning ("%s", _("command substitution: ignored null byte in input")); #endif continue; ++++++ readline-5.2-conf.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,6 +1,12 @@ +--- + lib/readline/bind.c | 49 +++++++++++++++++++++++++++++++++++++++++-------- + lib/readline/doc/rluser.texi | 3 ++- + lib/readline/rlconf.h | 2 +- + 3 files changed, 44 insertions(+), 10 deletions(-) + --- lib/readline/bind.c +++ lib/readline/bind.c 2006-11-13 16:20:23.000000000 +0000 -@@ -751,6 +751,9 @@ rl_function_of_keyseq (keyseq, map, type +@@ -826,6 +826,9 @@ rl_function_of_keyseq (keyseq, map, type /* The last key bindings file read. */ static char *last_readline_init_file = (char *)NULL; @@ -10,7 +16,7 @@ /* The file we're currently reading key bindings from. */ static const char *current_readline_init_file; static int current_readline_init_include_level; -@@ -816,11 +819,14 @@ rl_re_read_init_file (count, ignore) +@@ -891,11 +894,14 @@ rl_re_read_init_file (count, ignore) return r; } @@ -26,7 +32,7 @@ 4. /etc/inputrc If the file existed and could be opened and read, 0 is returned, otherwise errno is returned. */ -@@ -832,16 +838,37 @@ rl_read_init_file (filename) +@@ -907,16 +913,37 @@ rl_read_init_file (filename) if (filename == 0) filename = last_readline_init_file; if (filename == 0) @@ -69,7 +75,7 @@ #if defined (__MSDOS__) if (_rl_read_init_file (filename, 0) == 0) return 0; -@@ -1352,7 +1379,14 @@ rl_parse_and_bind (string) +@@ -1467,7 +1494,14 @@ remove_trailing: rl_macro_bind (seq, &funname[1], _rl_keymap); } else @@ -85,7 +91,7 @@ xfree (seq); return 0; -@@ -1490,7 +1524,6 @@ typedef int _rl_sv_func_t PARAMS((const +@@ -1632,7 +1666,6 @@ typedef int _rl_sv_func_t PARAMS((const #define V_INT 2 /* Forward declarations */ @@ -95,7 +101,7 @@ static int sv_compquery PARAMS((const char *)); --- lib/readline/rlconf.h +++ lib/readline/rlconf.h 2006-11-13 16:21:26.000000000 +0000 -@@ -33,7 +33,7 @@ +@@ -37,7 +37,7 @@ #define HANDLE_SIGNALS /* Ugly but working hack for binding prefix meta. */ @@ -106,7 +112,7 @@ #define DEFAULT_INPUTRC "~/.inputrc" --- lib/readline/doc/rluser.texi +++ lib/readline/doc/rluser.texi 2006-11-13 16:23:56.000000000 +0000 -@@ -347,7 +347,8 @@ file is taken from the value of the envi +@@ -349,7 +349,8 @@ file is taken from the value of the envi @end ifclear that variable is unset, the default is @file{~/.inputrc}. If that file does not exist or cannot be read, the ultimate default is ++++++ readline-6.2-endpw.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,6 +1,10 @@ +--- + lib/readline/complete.c | 4 ++++ + 1 file changed, 4 insertions(+) + --- lib/readline/complete.c +++ lib/readline/complete.c 2011-11-21 12:51:35.695646715 +0000 -@@ -83,6 +83,7 @@ typedef int QSFUNC (); +@@ -89,6 +89,7 @@ typedef int QSFUNC (); defined. */ #if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)) extern struct passwd *getpwent PARAMS((void)); @@ -8,7 +12,7 @@ #endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */ /* If non-zero, then this is the address of a function to call when -@@ -2068,6 +2069,9 @@ rl_username_completion_function (text, s +@@ -2316,6 +2317,9 @@ rl_username_completion_function (text, s if (first_char == '~') rl_filename_completion_desired = 1; @@ -18,60 +22,3 @@ return (value); } #endif /* !__WIN32__ && !__OPENNT */ ---- lib/readline/shell.c -+++ lib/readline/shell.c 2011-11-21 13:08:46.343647023 +0000 -@@ -61,9 +61,18 @@ - #include "rlshell.h" - #include "xmalloc.h" - --#if defined (HAVE_GETPWUID) && !defined (HAVE_GETPW_DECLS) -+#if !defined (HAVE_GETPW_DECLS) -+# if defined (HAVE_GETPWUID) - extern struct passwd *getpwuid PARAMS((uid_t)); --#endif /* HAVE_GETPWUID && !HAVE_GETPW_DECLS */ -+# 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 */ - - #ifndef NULL - # define NULL 0 -@@ -159,15 +168,20 @@ sh_get_env_value (varname) - char * - sh_get_home_dir () - { -- char *home_dir; -+ static char *home_dir; - struct passwd *entry; - -- home_dir = (char *)NULL; -+ if (home_dir) -+ goto out; - #if defined (HAVE_GETPWUID) - entry = getpwuid (getuid ()); - if (entry) -- home_dir = entry->pw_dir; -+ home_dir = savestring(entry->pw_dir); - #endif -+#if defined (HAVE_GETPWENT) -+ endpwent (); -+#endif -+out: - return (home_dir); - } - ---- lib/readline/tilde.c -+++ lib/readline/tilde.c 2011-11-11 13:09:49.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 */ - ++++++ readline-6.2-metamode.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,7 +1,10 @@ -# See bug bnc#541379 +--- + lib/readline/bind.c | 1 + + 1 file changed, 1 insertion(+) + --- lib/readline/bind.c +++ lib/readline/bind.c 2011-03-04 15:00:17.332426313 +0000 -@@ -1485,6 +1485,7 @@ static const struct { +@@ -1613,6 +1613,7 @@ static const struct { #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ ++++++ readline-6.2-xmalloc.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,3 +1,9 @@ +--- + xfree.c | 3 +++ + xmalloc.c | 5 +++++ + xmalloc.h | 8 ++++++++ + 3 files changed, 16 insertions(+) + --- xfree.c +++ xfree.c 2012-10-17 12:48:37.862344784 +0000 @@ -48,3 +48,6 @@ xfree (string) ++++++ readline-6.3-destdir.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,3 +1,8 @@ +--- + shlib/Makefile.in | 9 +++++---- + support/shlib-install | 47 +++++++++++++++++++++++++++-------------------- + 2 files changed, 32 insertions(+), 24 deletions(-) + --- shlib/Makefile.in +++ shlib/Makefile.in 2014-04-17 10:51:05.898235056 +0000 @@ -59,6 +59,7 @@ bindir = @bindir@ ++++++ readline-6.3-input.dif ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,6 +1,11 @@ +--- + lib/readline/input.c | 7 ++++++- + lib/readline/readline.c | 7 +++++++ + 2 files changed, 13 insertions(+), 1 deletion(-) + --- lib/readline/input.c +++ lib/readline/input.c 2003-03-17 19:03:51.000000000 +0000 -@@ -468,6 +468,8 @@ rl_read_key () +@@ -489,6 +489,8 @@ rl_read_key () return (c); } @@ -9,7 +14,7 @@ int rl_getc (stream) FILE *stream; -@@ -493,7 +495,10 @@ rl_getc (stream) +@@ -526,7 +528,10 @@ rl_getc (stream) /* If zero characters are returned, then the file that we are reading from is empty! Return EOF in that case. */ if (result == 0) @@ -23,7 +28,7 @@ if (errno == EINTR) --- lib/readline/readline.c +++ lib/readline/readline.c 2014-04-17 10:24:16.302236347 +0000 -@@ -515,6 +515,9 @@ _rl_internal_char_cleanup () +@@ -522,6 +522,9 @@ _rl_internal_char_cleanup () _rl_erase_entire_line (); } @@ -33,7 +38,7 @@ STATIC_CALLBACK int #if defined (READLINE_CALLBACKS) readline_internal_char () -@@ -564,6 +567,10 @@ readline_internal_charloop () +@@ -570,6 +573,10 @@ readline_internal_charloop () c = rl_read_key (); RL_UNSETSTATE(RL_STATE_READCMD); ++++++ readline-6.3-rltrace.patch ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -7,7 +7,7 @@ --- lib/readline/util.c +++ lib/readline/util.c 2014-04-17 10:29:43.157274616 +0000 -@@ -501,10 +501,12 @@ _rl_trace (va_alist) +@@ -504,10 +504,12 @@ _rl_trace (va_alist) if (_rl_tracefp == 0) _rl_tropen (); @@ -21,16 +21,16 @@ va_end (args); } -@@ -517,7 +519,7 @@ _rl_tropen () - fclose (_rl_tracefp); - sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long)getpid()); +@@ -527,7 +529,7 @@ _rl_tropen () + #endif + sprintf (fnbuf, "%s/rltrace.%ld", x, (long)getpid()); unlink(fnbuf); - _rl_tracefp = fopen (fnbuf, "w+"); + _rl_tracefp = fopen (fnbuf, "w+xe"); return _rl_tracefp != 0; } -@@ -525,8 +527,8 @@ int +@@ -535,8 +537,8 @@ int _rl_trclose () { int r; ++++++ readline-6.3-patches.tar.bz2 -> readline-7.0-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-001 new/readline-7.0-patches/readline63-001 --- old/readline-6.3-patches/readline63-001 2014-12-03 14:37:19.000000000 +0100 +++ new/readline-7.0-patches/readline63-001 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-001 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 5 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-002 new/readline-7.0-patches/readline63-002 --- old/readline-6.3-patches/readline63-002 2014-12-03 14:37:26.000000000 +0100 +++ new/readline-7.0-patches/readline63-002 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-002 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-003 new/readline-7.0-patches/readline63-003 --- old/readline-6.3-patches/readline63-003 2014-12-03 14:37:31.000000000 +0100 +++ new/readline-7.0-patches/readline63-003 1970-01-01 01:00:00.000000000 +0100 @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-003 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are debugging functions in the readline release that are theoretically -exploitable as security problems. They are not public functions, but have -global linkage. - -Patch (apply with `patch -p0'): - -*** util.c 2013-09-02 13:36:12.000000000 -0400 ---- util.c 2014-03-20 10:25:53.000000000 -0400 -*************** -*** 477,480 **** ---- 479,483 ---- - } - -+ #if defined (DEBUG) - #if defined (USE_VARARGS) - static FILE *_rl_tracefp; -*************** -*** 539,542 **** ---- 542,546 ---- - } - #endif -+ #endif /* DEBUG */ - - -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-004 new/readline-7.0-patches/readline63-004 --- old/readline-6.3-patches/readline63-004 2014-12-03 14:37:37.000000000 +0100 +++ new/readline-7.0-patches/readline63-004 1970-01-01 01:00:00.000000000 +0100 @@ -1,45 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-004 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html - -Bug-Description: - -The signal handling changes to bash and readline (to avoid running any code -in a signal handler context) cause the cursor to be placed on the wrong -line of a multi-line command after a ^C interrupts editing. - -Patch (apply with `patch -p0'): - -*** display.c 2013-12-27 13:10:56.000000000 -0500 ---- display.c 2014-03-27 11:52:45.000000000 -0400 -*************** -*** 2678,2682 **** - if (_rl_echoing_p) - { -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); ---- 2678,2683 ---- - if (_rl_echoing_p) - { -! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 3 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-005 new/readline-7.0-patches/readline63-005 --- old/readline-6.3-patches/readline63-005 2014-12-03 14:37:44.000000000 +0100 +++ new/readline-7.0-patches/readline63-005 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-005 - -Bug-Reported-by: Juergen Daubert -Bug-Reference-ID: <20140303180430.GA7346@jue.netz> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html - -Bug-Description: - -There are still applications using the deprecated Function/VFunction/etc. -typedefs in rltypedefs.h. This patch restores the typedefs, but attempts -to mark them as deprecated using gcc/clang attributes. Thanks to Max Horn -for the suggestion. - -Patch (apply with `patch -p0'): - -*** rltypedefs.h 2011-03-26 14:53:31.000000000 -0400 ---- rltypedefs.h 2014-04-10 11:30:45.000000000 -0400 -*************** -*** 27,30 **** ---- 27,49 ---- - #endif - -+ /* Old-style, attempt to mark as deprecated in some way people will notice. */ -+ -+ #if !defined (_FUNCTION_DEF) -+ # define _FUNCTION_DEF -+ -+ #if defined(__GNUC__) || defined(__clang__) -+ typedef int Function () __attribute__ ((deprecated)); -+ typedef void VFunction () __attribute__ ((deprecated)); -+ typedef char *CPFunction () __attribute__ ((deprecated)); -+ typedef char **CPPFunction () __attribute__ ((deprecated)); -+ #else -+ typedef int Function (); -+ typedef void VFunction (); -+ typedef char *CPFunction (); -+ typedef char **CPPFunction (); -+ #endif -+ -+ #endif /* _FUNCTION_DEF */ -+ - /* New style. */ - -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 4 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-006 new/readline-7.0-patches/readline63-006 --- old/readline-6.3-patches/readline63-006 2014-12-03 14:37:51.000000000 +0100 +++ new/readline-7.0-patches/readline63-006 1970-01-01 01:00:00.000000000 +0100 @@ -1,63 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-006 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html - -Bug-Description: - -Using reverse-i-search when horizontal scrolling is enabled does not redisplay -the entire line containing the successful search results. - -Patch (apply with `patch -p0'): - -*** display.c 2014-04-08 18:19:36.000000000 -0400 ---- display.c 2014-04-20 18:32:52.000000000 -0400 -*************** -*** 1638,1642 **** - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { ---- 1638,1642 ---- - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ - current_invis_chars != visible_wrap_offset) - { -*************** -*** 1826,1831 **** - _rl_last_c_pos += bytes_to_insert; - - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! goto clear_rest_of_line; - } - } ---- 1826,1836 ---- - _rl_last_c_pos += bytes_to_insert; - -+ /* XXX - we only want to do this if we are at the end of the line -+ so we move there with _rl_move_cursor_relative */ - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! { -! _rl_move_cursor_relative (ne-new, new); -! goto clear_rest_of_line; -! } - } - } -*** patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 5 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-007 new/readline-7.0-patches/readline63-007 --- old/readline-6.3-patches/readline63-007 2014-08-11 16:32:49.000000000 +0200 +++ new/readline-7.0-patches/readline63-007 1970-01-01 01:00:00.000000000 +0100 @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-007 - -Bug-Reported-by: John Lenton -Bug-Reference-ID: -Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 - -Bug-Description: - -Readline should allow SIGALRM and SIGVTALRM (if available) to `interrupt' -rl_getc and cause the handler to run when not in a signal handling context. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3-patched/input.c 2014-01-10 15:07:08.000000000 -0500 ---- input.c 2014-05-30 16:20:56.000000000 -0400 -*************** -*** 535,540 **** ---- 538,551 ---- - else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) - return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); -+ /* keyboard-generated signals of interest */ - else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) - RL_CHECK_SIGNALS (); -+ /* non-keyboard-generated signals of interest */ -+ else if (_rl_caught_signal == SIGALRM -+ #if defined (SIGVTALRM) -+ || _rl_caught_signal == SIGVTALRM -+ #endif -+ ) -+ RL_CHECK_SIGNALS (); - - if (rl_signal_event_hook) -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 6 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.3-patches/readline63-008 new/readline-7.0-patches/readline63-008 --- old/readline-6.3-patches/readline63-008 2014-08-11 16:33:01.000000000 +0200 +++ new/readline-7.0-patches/readline63-008 1970-01-01 01:00:00.000000000 +0100 @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-008 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html - -Bug-Description: - -When the readline `revert-all-at-newline' option is set, pressing newline -when the current line is one retrieved from history results in a double free -and a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3-patched/misc.c 2012-09-01 18:03:11.000000000 -0400 ---- misc.c 2014-06-30 13:41:19.000000000 -0400 -*************** -*** 462,465 **** ---- 462,466 ---- - /* Set up rl_line_buffer and other variables from history entry */ - rl_replace_from_history (entry, 0); /* entry->line is now current */ -+ entry->data = 0; /* entry->data is now current undo list */ - /* Undo all changes to this history entry */ - while (rl_undo_list) -*************** -*** 469,473 **** - FREE (entry->line); - entry->line = savestring (rl_line_buffer); -- entry->data = 0; - } - entry = previous_history (); ---- 470,473 ---- -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 7 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 8 ++++++ readline-6.3.dif -> readline-7.0.dif ++++++ --- /work/SRC/openSUSE:Factory/bash/readline-6.3.dif 2015-03-05 18:17:49.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new/readline-7.0.dif 2016-10-26 13:25:41.000000000 +0200 @@ -1,6 +1,17 @@ +--- + Makefile.in | 4 +--- + complete.c | 6 +++--- + doc/Makefile.in | 2 +- + doc/readline.3 | 11 +++++++++++ + history.h | 1 + + readline.c | 7 +++++-- + readline.h | 3 ++- + support/shobj-conf | 5 +++-- + 8 files changed, 27 insertions(+), 12 deletions(-) + --- Makefile.in -+++ Makefile.in 2014-04-17 10:57:38.386235678 +0000 -@@ -235,10 +235,8 @@ uninstall-headers: ++++ Makefile.in 2016-09-14 08:59:09.830092311 +0000 +@@ -233,10 +233,8 @@ uninstall-headers: maybe-uninstall-headers: uninstall-headers install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-examples @@ -11,7 +22,7 @@ $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a -@@ -268,7 +266,7 @@ install-doc: installdirs +@@ -266,7 +264,7 @@ install-doc: installdirs $(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir) -( if test -d doc ; then \ cd doc && \ @@ -21,8 +32,8 @@ uninstall-doc: --- complete.c -+++ complete.c 2014-04-17 10:58:11.042235308 +0000 -@@ -1082,7 +1082,7 @@ _rl_find_completion_word (fp, dp) ++++ complete.c 2016-09-14 08:59:09.830092311 +0000 +@@ -1152,7 +1152,7 @@ _rl_find_completion_word (fp, dp) /* We didn't find an unclosed quoted substring upon which to do completion, so use the word break characters to find the substring on which to complete. */ @@ -31,7 +42,7 @@ { scan = rl_line_buffer[rl_point]; -@@ -2116,7 +2116,7 @@ rl_completion_matches (text, entry_funct +@@ -2229,7 +2229,7 @@ rl_completion_matches (text, entry_funct match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *)); match_list[1] = (char *)NULL; @@ -40,7 +51,7 @@ { if (RL_SIG_RECEIVED ()) { -@@ -2190,7 +2190,7 @@ rl_username_completion_function (text, s +@@ -2303,7 +2303,7 @@ rl_username_completion_function (text, s } #if defined (HAVE_GETPWENT) @@ -50,10 +61,10 @@ /* Null usernames should result in all users as possible completions. */ if (namelen == 0 || (STREQN (username, entry->pw_name, namelen))) --- doc/Makefile.in -+++ doc/Makefile.in 2009-02-27 16:27:31.000000000 +0000 -@@ -101,7 +101,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ - $(RM) $@ - -${DVIPDF} $< ++++ doc/Makefile.in 2016-09-14 08:59:09.830092311 +0000 +@@ -107,7 +107,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ + # $(RM) $@ + # -${TEXI2PDF} $< -all: info dvi html ps text pdf +all: info html @@ -61,8 +72,8 @@ xdist: $(DIST_DOCS) --- doc/readline.3 -+++ doc/readline.3 2006-11-13 16:33:27.000000000 +0000 -@@ -118,6 +118,14 @@ environment variable. If that variable ++++ doc/readline.3 2016-09-14 08:59:09.830092311 +0000 +@@ -119,6 +119,14 @@ environment variable. If that variable .IR ~/.inputrc . If that file does not exist or cannot be read, the ultimate default is .IR /etc/inputrc . @@ -77,7 +88,7 @@ When a program which uses the readline library starts up, the init file is read, and the key bindings and variables are set. There are only a few basic constructs allowed in the -@@ -1402,6 +1410,9 @@ VI Command Mode functions +@@ -1457,6 +1465,9 @@ VI Command Mode functions .TP .FN ~/.inputrc Individual \fBreadline\fP initialization file @@ -88,7 +99,7 @@ .SH AUTHORS Brian Fox, Free Software Foundation --- history.h -+++ history.h 2012-07-18 08:06:56.000000000 +0000 ++++ history.h 2016-09-14 08:59:09.830092311 +0000 @@ -32,6 +32,7 @@ extern "C" { # include "rlstdc.h" # include "rltypedefs.h" @@ -98,23 +109,23 @@ # include #endif --- readline.c -+++ readline.c 2014-04-17 10:59:21.258235067 +0000 -@@ -824,8 +824,11 @@ _rl_dispatch_subseq (key, map, got_subse ++++ readline.c 2016-09-14 08:59:09.830092311 +0000 +@@ -851,8 +851,11 @@ _rl_dispatch_subseq (key, map, got_subse { /* Special case rl_do_lowercase_version (). */ if (func == rl_do_lowercase_version) - /* Should we do anything special if key == ANYOTHERKEY? */ -- return (_rl_dispatch (_rl_to_lower (key), map)); +- return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map)); + { + if (key == ANYOTHERKEY) + return -1; -+ return (_rl_dispatch (_rl_to_lower (key), map)); ++ return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map)); + } rl_executing_keymap = map; rl_executing_key = key; --- readline.h -+++ readline.h 2012-07-18 08:07:12.000000000 +0000 ++++ readline.h 2016-09-14 08:59:09.830092311 +0000 @@ -32,6 +32,7 @@ extern "C" { # include "keymaps.h" # include "tilde.h" @@ -123,7 +134,7 @@ # include # include # include -@@ -459,7 +460,7 @@ extern char *rl_filename_completion_func +@@ -467,7 +468,7 @@ extern char *rl_filename_completion_func extern int rl_completion_mode PARAMS((rl_command_func_t *)); @@ -133,7 +144,7 @@ extern void free_undo_list PARAMS((void)); extern int maybe_save_line PARAMS((void)); --- support/shobj-conf -+++ support/shobj-conf 2006-09-22 14:17:48.000000000 +0000 ++++ support/shobj-conf 2016-09-14 08:59:09.830092311 +0000 @@ -126,10 +126,11 @@ sunos5*|solaris2*) linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) SHOBJ_CFLAGS=-fPIC ++++++ readline-6.3.tar.gz -> readline-7.0.tar.gz ++++++ ++++ 56640 lines of diff (skipped) ++++++ run-tests ++++++ --- /var/tmp/diff_new_pack.uxBIGL/_old 2016-10-26 13:25:44.000000000 +0200 +++ /var/tmp/diff_new_pack.uxBIGL/_new 2016-10-26 13:25:44.000000000 +0200 @@ -1,5 +1,16 @@ #! /bin/sh +: ${TMPDIR:=/tmp} +export TMPDIR + +# basic /bin/sh syntax +SUFFIX=`${THIS_SH} -c 'echo $(( $RANDOM + $BASHPID ))'` + +BASH_TSTOUT=${TMPDIR}/bashtst-$SUFFIX # for now +export BASH_TSTOUT + +trap 'rm -f $BASH_TSTOUT' 0 + PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests' export PATH @@ -13,7 +24,7 @@ ${THIS_SH} ./version -rm -f /tmp/xx +rm -f "$BASH_TSTOUT" echo Any output from any test, unless otherwise noted, indicates a possible anomaly