Hello community,

here is the log from the commit of package bash for openSUSE:Factory
checked in at Wed Mar 9 13:18:30 CET 2011.



--------
--- bash/bash.changes   2011-03-08 18:49:06.000000000 +0100
+++ /mounts/work_src_done/STABLE/bash/bash.changes      2011-03-09 
12:02:19.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Mar  9 12:00:48 CET 2011 - wer...@suse.de
+
+- Avoid siglongjmp, compare with
+  http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00070.html
+  use temprary solution from Chet
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  bash-4.2-history-myown.dif.bz2

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

Other differences:
------------------
++++++ bash.spec ++++++
--- /var/tmp/diff_new_pack.6PTvHb/_old  2011-03-09 13:07:35.000000000 +0100
+++ /var/tmp/diff_new_pack.6PTvHb/_new  2011-03-09 13:07:35.000000000 +0100
@@ -37,7 +37,7 @@
 %endif
 AutoReqProv:    on
 Version:        4.2
-Release:        1
+Release:        2
 Summary:        The GNU Bourne-Again Shell
 Url:            http://www.gnu.org/software/bash/bash.html
 Source0:        ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}.tar.bz2
@@ -49,6 +49,11 @@
 Source6:        dot.profile
 Source7:        bash-rpmlintrc
 Source8:        baselibs.conf
+# Remember unsafe method, compare with
+# http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00070.html
+# http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00071.html
+# http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00073.html
+Source9:        bash-4.2-history-myown.dif.bz2
 Patch0:         bash-%{bash_vers}.dif
 Patch1:         bash-2.03-manual.patch
 Patch2:         bash-4.0-security.patch
@@ -102,7 +107,7 @@
 Provides:       bash:%{_infodir}/bash.info.gz
 PreReq:         %install_info_prereq
 Version:        4.2
-Release:        1
+Release:        2
 AutoReqProv:    on
 %if %suse_version > 1120
 BuildArch:      noarch
@@ -138,7 +143,7 @@
 Summary:        Include Files mandatory for Development of bash loadable 
builtins
 Group:          Development/Languages/C and C++
 Version:        4.2
-Release:        1
+Release:        2
 AutoReqProv:    on
 
 %description -n bash-devel
@@ -158,7 +163,7 @@
 Summary:        Loadable bash builtins
 Group:          System/Shells
 Version:        4.2
-Release:        1
+Release:        2
 AutoReqProv:    on
 
 %description -n bash-loadables
@@ -227,7 +232,7 @@
 Group:          System/Libraries
 Provides:       bash:/%{_lib}/libreadline.so.%{rl_major}
 Version:        6.2
-Release:        1
+Release:        2
 %if %suse_version > 1020
 Recommends:     readline-doc = %{version}
 %endif
@@ -258,7 +263,7 @@
 Group:          Development/Libraries/C and C++
 Provides:       bash:%{_libdir}/libreadline.a
 Version:        6.2
-Release:        1
+Release:        2
 Requires:       libreadline6 = %{version}
 Requires:       ncurses-devel
 %if %suse_version > 1020
@@ -289,7 +294,7 @@
 Provides:       readline:%{_infodir}/readline.info.gz
 PreReq:         %install_info_prereq
 Version:        6.2
-Release:        1
+Release:        2
 AutoReqProv:    on
 %if %suse_version > 1120
 BuildArch:      noarch

++++++ bash-4.2-history-myown.dif.bz2 ++++++
--- shell.c
+++ shell.c     2011-03-08 17:25:55.160426342 +0000
@@ -261,6 +261,11 @@ static const struct {
   { (char *)0x0, Int, (int *)0x0, (char **)0x0 }
 };
 
+#if defined (HAVE_POSIX_SIGSETJMP)
+volatile procenv_t terminating_now;
+volatile sig_atomic_t jump_with_sig;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
 /* These are extern so execute_simple_command can set them, and then
    longjmp back to main to execute a shell script, instead of calling
    main () again and resulting in indefinite, possibly fatal, stack
@@ -379,6 +384,39 @@ main (argc, argv, env)
   if (code)
     exit (2);
 
+#if defined (HAVE_POSIX_SIGSETJMP)
+  /* Catch signals here */
+  if (sigsetjmp (terminating_now, 1))
+    {
+      int sig = jump_with_sig;
+
+      /* I don't believe this condition ever tests true. */
+      if (sig == SIGINT && signal_is_trapped (SIGINT))
+       run_interrupt_trap ();
+
+# if defined (HISTORY)
+      if (interactive_shell && sig != SIGABRT)
+       maybe_save_shell_history ();
+# endif /* HISTORY */
+
+# if defined (JOB_CONTROL)
+      if (sig == SIGHUP && (interactive || (subshell_environment & 
(SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
+       hangup_all_jobs ();
+      end_job_control ();
+# endif /* JOB_CONTROL */
+
+# if defined (PROCESS_SUBSTITUTION)
+      unlink_fifo_list ();
+# endif /* PROCESS_SUBSTITUTION */
+
+      run_exit_trap ();
+      set_signal_handler (sig, SIG_DFL);
+      kill (getpid (), sig);
+      _exit(0);
+    }
+  jump_with_sig = 0;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
   xtrace_init ();
 
 #if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined 
(DISABLE_MALLOC_WRAPPERS)
--- sig.c
+++ sig.c       2011-03-08 17:26:31.627928783 +0000
@@ -503,7 +503,7 @@ termsig_sighandler (sig)
   /* XXX - should this also trigger when interrupt_immediately is set? */
   if (terminate_immediately)
     {
-#if defined (HISTORY)
+#if defined (HISTORY) && ! defined (HAVE_POSIX_SIGSETJMP)
       /* XXX - will inhibit history file being written */
       history_lines_this_session = 0;
 #endif
@@ -514,6 +514,11 @@ termsig_sighandler (sig)
   SIGRETURN (0);
 }
 
+#if defined (HAVE_POSIX_SIGSETJMP)
+extern volatile procenv_t terminating_now;
+extern volatile sig_atomic_t jump_with_sig;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
 void
 termsig_handler (sig)
      int sig;
@@ -528,32 +533,39 @@ termsig_handler (sig)
   handling_termsig = 1;
   terminating_signal = 0;      /* keep macro from re-testing true. */
 
+#if ! defined (HAVE_POSIX_SIGSETJMP)
   /* I don't believe this condition ever tests true. */
   if (sig == SIGINT && signal_is_trapped (SIGINT))
     run_interrupt_trap ();
 
-#if defined (HISTORY)
+# if defined (HISTORY)
   if (interactive_shell && sig != SIGABRT)
     maybe_save_shell_history ();
-#endif /* HISTORY */
+# endif /* HISTORY */
 
-#if defined (JOB_CONTROL)
+# if defined (JOB_CONTROL)
   if (sig == SIGHUP && (interactive || (subshell_environment & 
(SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
     hangup_all_jobs ();
   end_job_control ();
-#endif /* JOB_CONTROL */
+# endif /* JOB_CONTROL */
 
-#if defined (PROCESS_SUBSTITUTION)
+# if defined (PROCESS_SUBSTITUTION)
   unlink_fifo_list ();
-#endif /* PROCESS_SUBSTITUTION */
+# endif /* PROCESS_SUBSTITUTION */
+#endif /* ! HAVE_POSIX_SIGSETJMP */
 
   /* Reset execution context */
   loop_level = continuing = breaking = funcnest = 0;
   executing_list = comsub_ignore_return = return_catch_flag = 0;
 
+#if defined (HAVE_POSIX_SIGSETJMP)
+  jump_with_sig = sig;
+  siglongjmp(terminating_now, 1);
+#else /* ! HAVE_POSIX_SIGSETJMP */
   run_exit_trap ();
   set_signal_handler (sig, SIG_DFL);
   kill (getpid (), sig);
+#endif /* ! HAVE_POSIX_SIGSETJMP */
 }
 
 /* What we really do when SIGINT occurs. */
++++++ bash-4.2-history.dif ++++++
--- /var/tmp/diff_new_pack.6PTvHb/_old  2011-03-09 13:07:35.000000000 +0100
+++ /var/tmp/diff_new_pack.6PTvHb/_new  2011-03-09 13:07:35.000000000 +0100
@@ -1,123 +1,34 @@
---- shell.c
-+++ shell.c    2011-03-08 17:25:55.160426342 +0000
-@@ -261,6 +261,11 @@ static const struct {
-   { (char *)0x0, Int, (int *)0x0, (char **)0x0 }
- };
- 
-+#if defined (HAVE_POSIX_SIGSETJMP)
-+volatile procenv_t terminating_now;
-+volatile sig_atomic_t jump_with_sig;
-+#endif /* HAVE_POSIX_SIGSETJMP */
-+
- /* These are extern so execute_simple_command can set them, and then
-    longjmp back to main to execute a shell script, instead of calling
-    main () again and resulting in indefinite, possibly fatal, stack
-@@ -379,6 +384,39 @@ main (argc, argv, env)
-   if (code)
-     exit (2);
- 
-+#if defined (HAVE_POSIX_SIGSETJMP)
-+  /* Catch signals here */
-+  if (sigsetjmp (terminating_now, 1))
-+    {
-+      int sig = jump_with_sig;
-+
-+      /* I don't believe this condition ever tests true. */
-+      if (sig == SIGINT && signal_is_trapped (SIGINT))
-+      run_interrupt_trap ();
-+
-+# if defined (HISTORY)
-+      if (interactive_shell && sig != SIGABRT)
-+      maybe_save_shell_history ();
-+# endif /* HISTORY */
-+
-+# if defined (JOB_CONTROL)
-+      if (sig == SIGHUP && (interactive || (subshell_environment & 
(SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
-+      hangup_all_jobs ();
-+      end_job_control ();
-+# endif /* JOB_CONTROL */
-+
-+# if defined (PROCESS_SUBSTITUTION)
-+      unlink_fifo_list ();
-+# endif /* PROCESS_SUBSTITUTION */
-+
-+      run_exit_trap ();
-+      set_signal_handler (sig, SIG_DFL);
-+      kill (getpid (), sig);
-+      _exit(0);
-+    }
-+  jump_with_sig = 0;
-+#endif /* HAVE_POSIX_SIGSETJMP */
-+
-   xtrace_init ();
- 
- #if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined 
(DISABLE_MALLOC_WRAPPERS)
---- sig.c
-+++ sig.c      2011-03-08 17:26:31.627928783 +0000
-@@ -503,7 +503,7 @@ termsig_sighandler (sig)
-   /* XXX - should this also trigger when interrupt_immediately is set? */
-   if (terminate_immediately)
-     {
--#if defined (HISTORY)
-+#if defined (HISTORY) && ! defined (HAVE_POSIX_SIGSETJMP)
-       /* XXX - will inhibit history file being written */
-       history_lines_this_session = 0;
- #endif
-@@ -514,6 +514,11 @@ termsig_sighandler (sig)
-   SIGRETURN (0);
- }
- 
-+#if defined (HAVE_POSIX_SIGSETJMP)
-+extern volatile procenv_t terminating_now;
-+extern volatile sig_atomic_t jump_with_sig;
-+#endif /* HAVE_POSIX_SIGSETJMP */
-+
- void
- termsig_handler (sig)
-      int sig;
-@@ -528,32 +533,39 @@ termsig_handler (sig)
-   handling_termsig = 1;
-   terminating_signal = 0;     /* keep macro from re-testing true. */
- 
-+#if ! defined (HAVE_POSIX_SIGSETJMP)
-   /* I don't believe this condition ever tests true. */
-   if (sig == SIGINT && signal_is_trapped (SIGINT))
-     run_interrupt_trap ();
- 
--#if defined (HISTORY)
-+# if defined (HISTORY)
-   if (interactive_shell && sig != SIGABRT)
-     maybe_save_shell_history ();
--#endif /* HISTORY */
-+# endif /* HISTORY */
- 
--#if defined (JOB_CONTROL)
-+# if defined (JOB_CONTROL)
-   if (sig == SIGHUP && (interactive || (subshell_environment & 
(SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
-     hangup_all_jobs ();
-   end_job_control ();
--#endif /* JOB_CONTROL */
-+# endif /* JOB_CONTROL */
- 
--#if defined (PROCESS_SUBSTITUTION)
-+# if defined (PROCESS_SUBSTITUTION)
-   unlink_fifo_list ();
--#endif /* PROCESS_SUBSTITUTION */
-+# endif /* PROCESS_SUBSTITUTION */
-+#endif /* ! HAVE_POSIX_SIGSETJMP */
- 
-   /* Reset execution context */
-   loop_level = continuing = breaking = funcnest = 0;
-   executing_list = comsub_ignore_return = return_catch_flag = 0;
- 
-+#if defined (HAVE_POSIX_SIGSETJMP)
-+  jump_with_sig = sig;
-+  siglongjmp(terminating_now, 1);
-+#else /* ! HAVE_POSIX_SIGSETJMP */
-   run_exit_trap ();
-   set_signal_handler (sig, SIG_DFL);
-   kill (getpid (), sig);
-+#endif /* ! HAVE_POSIX_SIGSETJMP */
- }
- 
- /* What we really do when SIGINT occurs. */
+*** ../bash-4.2-patched/sig.c  Tue Nov 23 08:21:22 2010
+--- sig.c      Tue Mar  8 21:28:32 2011
+***************
+*** 47,50 ****
+--- 47,51 ----
+  #if defined (READLINE)
+  #  include "bashline.h"
++ #  include <readline/readline.h>
+  #endif
+  
+***************
+*** 63,66 ****
+--- 64,68 ----
+  extern int history_lines_this_session;
+  #endif
++ extern int no_line_editing;
+  
+  extern void initialize_siglist ();
+***************
+*** 506,510 ****
+  #if defined (HISTORY)
+        /* XXX - will inhibit history file being written */
+!       history_lines_this_session = 0;
+  #endif
+        terminate_immediately = 0;
+--- 508,515 ----
+  #if defined (HISTORY)
+        /* XXX - will inhibit history file being written */
+! #  if defined (READLINE)
+!       if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && 
sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
+! #  endif
+!         history_lines_this_session = 0;
+  #endif
+        terminate_immediately = 0;


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



Remember to have fun...

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to