From ed99446deeadc190358c9f53a614e4e06d834095 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 25 Apr 2008 13:34:05 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/bash?expand=0&rev=20 --- bash-3.2-longjmp.dif | 40 +++++++++++++++++++++++++++++++ bash.changes | 5 ++++ bash.spec | 56 +++++++++++++++++++++++++++++++------------- 3 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 bash-3.2-longjmp.dif diff --git a/bash-3.2-longjmp.dif b/bash-3.2-longjmp.dif new file mode 100644 index 00000000..861bb7f7 --- /dev/null +++ b/bash-3.2-longjmp.dif @@ -0,0 +1,40 @@ +--- execute_cmd.c ++++ execute_cmd.c 2008-04-25 12:49:28.000000000 +0000 +@@ -24,6 +24,7 @@ + #endif /* _AIX && RISC6000 && !__GNUC__ */ + + #include ++#include + #include "chartypes.h" + #include "bashtypes.h" + #if !defined (_MINIX) && defined (HAVE_SYS_FILE_H) +@@ -4014,6 +4014,20 @@ shell_execve (command, args, env) + /* We have committed to attempting to execute the contents of this file + as shell commands. */ + ++#if 1 ++ larray = strvec_len(args) + 1; ++ args = strvec_resize(args, larray + 1); ++ ++ args[0] = savestring(_PATH_BSHELL); ++ args[1] = command; ++ args[larray] = (char *)0; ++ ++ SETOSTYPE (0); /* Some systems use for USG/POSIX semantics */ ++ execve ("/bin/sh", args, env); ++ SETOSTYPE (1); ++ ++ internal_error (_("%s: cannot execute: %s"), command, strerror (errno)); ++#else + initialize_subshell (); + + set_sigint_handler (); +@@ -4070,6 +4070,8 @@ shell_execve (command, args, env) + + longjmp (subshell_top_level, 1); + /*NOTREACHED*/ ++#endif ++ return (EX_NOEXEC); + } + + static int diff --git a/bash.changes b/bash.changes index b48021cb..a5623db1 100644 --- a/bash.changes +++ b/bash.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Apr 24 15:59:20 CEST 2008 - werner@suse.de + +- Add workaround for bnc#382214 + ------------------------------------------------------------------- Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de diff --git a/bash.spec b/bash.spec index 7777c2ab..1505bb26 100644 --- a/bash.spec +++ b/bash.spec @@ -20,7 +20,7 @@ Group: System/Shells Recommends: bash-doc = %bash_vers AutoReqProv: on Version: 3.2 -Release: 98 +Release: 101 Summary: The GNU Bourne-Again Shell Url: http://www.gnu.org/software/bash/bash.html Source0: bash-%{bash_vers}.tar.bz2 @@ -46,6 +46,7 @@ Patch11: bash-3.1-loadables.dif Patch12: bash-3.2-valgrind.patch Patch13: bash-3.2-memleak.patch Patch14: bash-3.2-sigrestart.patch +Patch15: bash-3.2-longjmp.dif Patch20: readline-%{rl_vers}.dif Patch21: readline-4.3-input.dif Patch22: readline-5.2-wrap.patch @@ -76,7 +77,7 @@ Group: Documentation/Man Provides: bash:%{_infodir}/bash.info.gz PreReq: %install_info_prereq Version: 3.2 -Release: 57 +Release: 60 AutoReqProv: on %description -n bash-doc @@ -96,7 +97,7 @@ Summary: The Readline Library Group: System/Libraries Provides: bash:/%{_lib}/libreadline.so.5 Version: 5.2 -Release: 57 +Release: 60 Recommends: readline-doc = %{version} Provides: readline = 5.2 Obsoletes: readline <= 5.2 @@ -120,7 +121,7 @@ Summary: Include Files and Libraries mandatory for Development Group: Development/Libraries/C and C++ Provides: bash:%{_libdir}/libreadline.a Version: 5.2 -Release: 98 +Release: 101 Requires: libreadline5 = %{version} Requires: ncurses-devel Recommends: readline-doc = %{version} @@ -139,12 +140,12 @@ Authors: %package -n readline-doc License: GPL v2 or later -Summary: Documentation how to Use and Programm with the Readline Library +Summary: Documentation how to Use and Program with the Readline Library Group: System/Libraries Provides: readline:%{_infodir}/readline.info.gz PreReq: %install_info_prereq Version: 5.2 -Release: 57 +Release: 60 AutoReqProv: on %description -n readline-doc @@ -180,6 +181,7 @@ unset p %patch12 -p0 -b .valgrind %patch13 -p0 -b .memleak %patch14 -p0 -b .sigrestart +%patch15 -p0 -b .longjmp %patch21 -p0 -b .zerotty %patch22 -p0 -b .wrap %patch23 -p0 -b .conf @@ -206,12 +208,31 @@ done export LANG LC_ALL HOSTTYPE MACHTYPE cd ../readline-%{rl_vers} %{?suse_update_config:%{suse_update_config -f support}} - CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -pipe -g" - CFLAGS_FOR_BUILD="$CFLAGS" - CC=gcc - export CFLAGS CFLAGS_FOR_BUILD CC autoconf - ./configure --build=%{_target_cpu}-suse-linux \ + cflags () + { + local flag=$1; shift + case "${RPM_OPT_FLAGS}" in + *${flag}*) return + esac + if test -n "$1" && gcc -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + local var=$1; shift + eval $var=\${$var:+\$$var\ }$flag + fi + } + CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -g" + cflags -std=gnu89 CFLAGS + cflags -Wuninitialized CFLAGS + cflags -Wextra CFLAGS + cflags -Wno-unprototyped-calls CFLAGS + cflags -Wno-switch-enum CFLAGS + cflags -pipe CFLAGS + LDFLAGS="" + CC=gcc + CC_FOR_BUILD="$CC" + CFLAGS_FOR_BUILD="$CFLAGS" + export CC_FOR_BUILD CFLAGS_FOR_BUILD CFLAGS LDFLAGS CC + ./configure --build=%{_target_cpu}-suse-linux \ --prefix=%{_prefix} \ --with-curses \ --mandir=%{_mandir} \ @@ -227,13 +248,15 @@ cd ../bash-%{bash_vers} # /proc is required for correct configuration test -d /dev/fd || { echo "/proc is not mounted!" >&2; exit 1; } ln -sf ../readline-%{rl_vers} readline - CC="gcc -I$PWD -L$PWD/../readline-%{rl_vers}" export LD_LIBRARY_PATH=$PWD/../readline-%{rl_vers} - CFLAGS="$CFLAGS -fPIE" + CC="gcc -I$PWD -L$PWD/../readline-%{rl_vers}" + cflags -fPIE CFLAGS + cflags -pie LDFLAGS + CC_FOR_BUILD="$CC" CFLAGS_FOR_BUILD="$CFLAGS" - LDFLAGS="$LDFLAGS -pie" - export CFLAGS CFLAGS_FOR_BUILD LDFLAGS + export CC_FOR_BUILD CFLAGS_FOR_BUILD CFLAGS LDFLAGS CC %{?suse_update_config:%{suse_update_config -f support}} + autoconf # # We have a malloc with our glibc # @@ -248,7 +271,6 @@ cd ../bash-%{bash_vers} --with-installed-readline " bash support/mkconffiles -v - autoconf ./configure --build=%{_target_cpu}-suse-linux \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ @@ -401,6 +423,8 @@ EOF %doc %{_defaultdocdir}/readline/ %changelog +* Thu Apr 24 2008 werner@suse.de +- Add workaround for bnc#382214 * Thu Apr 10 2008 ro@suse.de - added baselibs.conf file to build xxbit packages for multilib support