From ad515a0516e4c6614c6595e3e6af85e1ca96fc6f Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Mon, 21 Feb 2022 11:18:30 +0100 Subject: [PATCH] Don't error out when command receives SIGINT Resolves: #2056462 --- BZ-2056462-do-not-error-out-on-SIGINT.patch | 61 +++++++++++++++++++++ scl-utils.spec | 6 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 BZ-2056462-do-not-error-out-on-SIGINT.patch diff --git a/BZ-2056462-do-not-error-out-on-SIGINT.patch b/BZ-2056462-do-not-error-out-on-SIGINT.patch new file mode 100644 index 0000000..3a076eb --- /dev/null +++ b/BZ-2056462-do-not-error-out-on-SIGINT.patch @@ -0,0 +1,61 @@ +From 9147d3b66e0a263c2eb427b7892b34c925363854 Mon Sep 17 00:00:00 2001 +From: Michal Domonkos +Date: Thu, 17 Feb 2022 17:36:00 +0100 +Subject: [PATCH] Don't error out when command receives SIGINT + +Interrupting a running command isn't really an execution problem so +don't print an error or return a non-zero exit status. + +This is also how it worked in versions older than 2.0. + +Resolves: rhbz#1967686 +--- + src/fallback.c | 3 +++ + src/scllib.c | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/src/fallback.c b/src/fallback.c +index 4b9c8fd..c907a34 100644 +--- a/src/fallback.c ++++ b/src/fallback.c +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #include "scllib.h" + #include "sclmalloc.h" +@@ -229,6 +230,8 @@ scl_rc fallback_run_command(char * const colnames[], const char *cmd, bool exec) + xasprintf(&bash_cmd, "/bin/bash %s", tmp); + status = system(bash_cmd); + if (status == -1 || !WIFEXITED(status)) { ++ if (WIFSIGNALED(status) && WTERMSIG(status) == SIGINT) ++ goto exit; + debug("Problem with executing command \"%s\"\n", bash_cmd); + ret = ERUN; + goto exit; +diff --git a/src/scllib.c b/src/scllib.c +index a182194..2ba8df8 100644 +--- a/src/scllib.c ++++ b/src/scllib.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + + #include "config.h" + #include "errors.h" +@@ -341,6 +342,8 @@ scl_rc run_command(char * const colnames[], const char *cmd, bool exec) + + status = system(cmd); + if (status == -1 || !WIFEXITED(status)) { ++ if (WIFSIGNALED(status) && WTERMSIG(status) == SIGINT) ++ goto exit; + debug("Problem with executing program \"%s\"\n", cmd); + ret = ERUN; + goto exit; +-- +2.35.1 + diff --git a/scl-utils.spec b/scl-utils.spec index 411f541..4566158 100644 --- a/scl-utils.spec +++ b/scl-utils.spec @@ -4,7 +4,7 @@ Name: scl-utils Epoch: 1 Version: 2.0.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Utilities for alternative packaging License: GPLv2+ @@ -18,6 +18,7 @@ BuildRequires: libcmocka libcmocka-devel environment-modules Requires: %{_bindir}/modulecmd Patch1: 0003-Scl-utils-layout-patch-from-fedora-famillecollet.com.patch +Patch2: BZ-2056462-do-not-error-out-on-SIGINT.patch %description Run-time utility for alternative packaging. @@ -80,6 +81,9 @@ make check %{_rpmconfigdir}/brp-scl-python-bytecompile %changelog +* Mon Feb 21 2022 Michal Domonkos - 1:2.0.3-3 +- Don't error out when command receives SIGINT (#2056462) + * Tue Aug 10 2021 Mohan Boddu - 1:2.0.3-2 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688