[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
79/149: gnu: diffutils: Fix signal processing.
From: |
guix-commits |
Subject: |
79/149: gnu: diffutils: Fix signal processing. |
Date: |
Tue, 26 Oct 2021 23:52:24 -0400 (EDT) |
apteryx pushed a commit to branch core-updates-frozen-batched-changes
in repository guix.
commit 78a9cd2e219ca9080c2402c77ff3d248bd9ce918
Author: Thiago Jung Bauermann <bauermann@kolabnow.com>
AuthorDate: Thu Sep 9 11:41:14 2021 -0300
gnu: diffutils: Fix signal processing.
diffutils has a race condition in its signal processing code which is easy
to
trigger on powerpc64le-linux. More often than not, it causes the ‘colors’
test to fail and therefore the build of the package fails as well.
Add the patch proposed in Debian bug 922552 which fixes the problem.
* gnu/packages/patches/diffutils-fix-signal-processing.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (diffutils)[source]: Use it.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
---
gnu/local.mk | 1 +
gnu/packages/base.scm | 3 +-
.../patches/diffutils-fix-signal-processing.patch | 58 ++++++++++++++++++++++
3 files changed, 61 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index c895307..1b31cf1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1000,6 +1000,7 @@ dist_patch_DATA =
\
%D%/packages/patches/desmume-gcc7-fixes.patch \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
%D%/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch
\
+ %D%/packages/patches/diffutils-fix-signal-processing.patch \
%D%/packages/patches/diffutils-gets-undeclared.patch \
%D%/packages/patches/disarchive-cross-compilation.patch \
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 992357f..a6a4bc0 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -274,7 +274,8 @@ differences.")
(sha256
(base32
"09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk"))
- (patches (search-patches "coreutils-gnulib-tests.patch"))))
+ (patches (search-patches "coreutils-gnulib-tests.patch"
+
"diffutils-fix-signal-processing.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl))
(synopsis "Comparing and merging files")
diff --git a/gnu/packages/patches/diffutils-fix-signal-processing.patch
b/gnu/packages/patches/diffutils-fix-signal-processing.patch
new file mode 100644
index 0000000..134dd3f
--- /dev/null
+++ b/gnu/packages/patches/diffutils-fix-signal-processing.patch
@@ -0,0 +1,58 @@
+Author: Frédéric Bonnard <frediz@debian.org>
+
+Obtained from:
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922552#19
+
+Fixes bug reported upstream at:
+
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34519
+
+diff --git a/src/diff.c b/src/diff.c
+index e2eb32437353..b574e8282dc9 100644
+--- a/src/diff.c
++++ b/src/diff.c
+@@ -1451,6 +1451,8 @@ compare_files (struct comparison const *parent,
+ }
+ }
+
++ final_process_signals ();
++
+ /* Now the comparison has been done, if no error prevented it,
+ and STATUS is the value this function will return. */
+
+diff --git a/src/diff.h b/src/diff.h
+index 03daaa4a0530..e177fe600a25 100644
+--- a/src/diff.h
++++ b/src/diff.h
+@@ -390,6 +390,7 @@ extern enum changes analyze_hunk (struct change *, lin *,
lin *, lin *, lin *);
+ extern void begin_output (void);
+ extern void debug_script (struct change *);
+ extern void fatal (char const *) __attribute__((noreturn));
++extern void final_process_signals (void);
+ extern void finish_output (void);
+ extern void message (char const *, char const *, char const *);
+ extern void message5 (char const *, char const *, char const *,
+diff --git a/src/util.c b/src/util.c
+index 4f4d9bb285eb..56d292de2927 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -237,6 +237,18 @@ process_signals (void)
+ }
+ }
+
++/* Process remaining signals once before exit */
++void
++final_process_signals (void)
++{
++ static int last = 1;
++
++ if (last) {
++ process_signals ();
++ last = 0;
++ }
++}
++
+ static void
+ install_signal_handlers (void)
+ {
- 137/149: build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase., (continued)
- 137/149: build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase., guix-commits, 2021/10/26
- 132/149: gnu: webkitgtk: Add a debug output., guix-commits, 2021/10/26
- 139/149: gnu: gdk-pixbuf: Add a search path for the loaders cache file., guix-commits, 2021/10/26
- 141/149: gnu: librsvg: Preserve the loaders.cache file., guix-commits, 2021/10/26
- 142/149: gnu: gawk: Use regular bash to cope with test suite failures., guix-commits, 2021/10/26
- 144/149: gnu: cdparanoia: Disable parallel build., guix-commits, 2021/10/26
- 148/149: gnu: jsoncpp: Apply patch to regular package., guix-commits, 2021/10/26
- 149/149: nix: libstore: Do not remove unused links when deleting specific items., guix-commits, 2021/10/26
- 69/149: gnu: tensorflow: Enable parallel build (at least partially)., guix-commits, 2021/10/26
- 74/149: gnu: python-keras: Skip a flaky test., guix-commits, 2021/10/26
- 79/149: gnu: diffutils: Fix signal processing.,
guix-commits <=
- 82/149: gnu: curl: Honor #:tests?., guix-commits, 2021/10/26
- 83/149: gnu: gcc-5: Fix powerpc64le-linux build, guix-commits, 2021/10/26
- 87/149: gnu: gdb: Normalize indentation., guix-commits, 2021/10/26
- 54/149: gnu: abseil-cpp: Remove googletest patch., guix-commits, 2021/10/26
- 59/149: Revert gstreamer update to 1.19.2., guix-commits, 2021/10/26
- 76/149: gnu: glibc: Look for the current timezone in /etc/localtime., guix-commits, 2021/10/26
- 71/149: gnu: dbus-c++: Fix build., guix-commits, 2021/10/26
- 91/149: gnu: rust: Bootstrap rust from 1.39.0 and optimize build time., guix-commits, 2021/10/26
- 93/149: gnu: Build all Rust packages using the latest rustc., guix-commits, 2021/10/26
- 95/149: gnu: Move a few Python packages to (gnu packages python-build)., guix-commits, 2021/10/26