From 91115222ca9c63cb60b7fcf7f1cd3f632a094031 Mon Sep 17 00:00:00 2001 From: Roman Rakus Date: Wed, 11 Feb 2009 12:13:00 +0000 Subject: [PATCH] Fix handling pipelines with set -e. Resolves: #483385 --- bash-4.0-shell_pipelines_handling.patch | 21 +++++++++++++++++++++ bash.spec | 8 +++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 bash-4.0-shell_pipelines_handling.patch diff --git a/bash-4.0-shell_pipelines_handling.patch b/bash-4.0-shell_pipelines_handling.patch new file mode 100644 index 0000000..b9267b8 --- /dev/null +++ b/bash-4.0-shell_pipelines_handling.patch @@ -0,0 +1,21 @@ +diff -up bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling bash-4.0-rc1/execute_cmd.c +--- bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling 2009-02-11 12:56:13.000000000 +0100 ++++ bash-4.0-rc1/execute_cmd.c 2009-02-11 12:57:20.000000000 +0100 +@@ -756,7 +756,7 @@ execute_command_internal (command, async + the presence of a pipeline, and (until Posix changes things), a + pipeline failure should not cause the parent shell to exit on an + unsuccessful return status, even in the presence of errexit.. */ +- if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS) ++ if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) + { + last_command_exit_value = exec_result; + run_error_trap (); +@@ -764,7 +764,7 @@ execute_command_internal (command, async + + if (ignore_return == 0 && invert == 0 && + ((posixly_correct && interactive == 0 && special_builtin_failed) || +- (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS))) ++ (exit_immediately_on_error && exec_result != EXECUTION_SUCCESS))) + { + last_command_exit_value = exec_result; + run_pending_traps (); diff --git a/bash.spec b/bash.spec index 9cf4e63..06aae70 100644 --- a/bash.spec +++ b/bash.spec @@ -3,7 +3,7 @@ Version: 4.0 Name: bash Summary: The GNU Bourne Again shell version %{version} -Release: 0.3.%{?beta_tag}%{?dist} +Release: 0.4.%{?beta_tag}%{?dist} Group: System Environment/Shells License: GPLv2+ Url: http://www.gnu.org/software/bash @@ -40,6 +40,7 @@ Patch117: bash-setlocale.patch Patch118: bash-tty-tests.patch Patch119: bash-ulimit-m.patch Patch120: bash-4.0-no_debug_output.patch +Patch121: bash-4.0-shell_pipelines_handling.patch Requires(post): ncurses-libs BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -83,6 +84,7 @@ compliance over previous versions. %patch118 -p1 -b .tty_tests %patch119 -p1 -b .ulimit-m %patch120 -p1 -b .no_debug_output +%patch121 -p1 -b .pipelines_handling echo %{version} > _distribution echo %{release} > _patchlevel @@ -242,6 +244,10 @@ fi #%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt %changelog +* Wed Feb 11 2009 Roman Rakus - 4.0-0.4.rc1 +- Fix handling pipelines with `set -e' + Resolves: #483385 + * Thu Jan 29 2009 Roman Rakus - 4.0-0.3.rc1 - No more debug output Resolves: #483002