aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/guile.scm16
-rw-r--r--gnu/packages/patches/guile-finalization-crash.patch61
4 files changed, 12 insertions, 70 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a88a0102f6..bd4522162b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -980,7 +980,6 @@ dist_patch_DATA = \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
%D%/packages/patches/guile-default-utf8.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
- %D%/packages/patches/guile-finalization-crash.patch \
%D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-relocatable.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3079114492..51a74302e4 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -211,10 +211,10 @@ and provides a \"top-like\" mode (monitoring).")
`(("pkg-config" ,pkg-config)
;; This is the Guile we use as a cross-compiler...
- ("guile" ,guile-2.2/bug-fix)))
+ ("guile" ,guile-2.2.7)))
(inputs
;; ... and this is the one that appears in shebangs when cross-compiling.
- `(("guile" ,guile-2.2/bug-fix) ;for <https://bugs.gnu.org/37757>
+ `(("guile" ,guile-2.2.7) ;for <https://bugs.gnu.org/37757>
;; The 'shepherd' command uses Readline when used interactively. It's
;; an unusual use case though, so we don't propagate it.
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a5466f8672..9c83f3339b 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -250,17 +250,21 @@ without requiring the source code to be rewritten.")
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/2.2/site-ccache")))))))
-(define-public guile-2.2/bug-fix
- ;; This variant contains a bug fix for a relatively rare crash that could
+(define-public guile-2.2.7
+ ;; This version contains a bug fix for a relatively rare crash that could
;; affect shepherd as PID 1: <https://bugs.gnu.org/37757>.
(package
(inherit guile-2.2)
- (version (string-append (package-version guile-2.2) "-1"))
+ (version "2.2.7")
(source (origin
(inherit (package-source guile-2.2))
- (patches
- (append (search-patches "guile-finalization-crash.patch")
- (origin-patches (package-source guile-2.2))))))))
+ (uri (string-append "mirror://gnu/guile/guile-" version
+ ".tar.xz"))
+ (sha256
+ (base32
+ "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"))))))
+
+(define-deprecated guile-2.2/bug-fix guile-2.2.7)
(define-public guile-2.2/fixed
;; A package of Guile 2.2 that's rarely changed. It is the one used
diff --git a/gnu/packages/patches/guile-finalization-crash.patch b/gnu/packages/patches/guile-finalization-crash.patch
deleted file mode 100644
index 098249e49f..0000000000
--- a/gnu/packages/patches/guile-finalization-crash.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-commit edf5aea7ac852db2356ef36cba4a119eb0c81ea9
-Author: Ludovic Courtès <ludo@gnu.org>
-Date: Mon Dec 9 14:44:59 2019 +0100
-
- Fix non-deterministic crash in 'finalization_thread_proc'.
-
- Fixes <https://bugs.gnu.org/37757>.
- Reported by Jesse Gibbons <jgibbons2357@gmail.com>.
-
- * libguile/finalizers.c (finalization_thread_proc): Do not enter the
- "switch (data.byte)" condition when data.n <= 0.
-
-diff --git a/libguile/finalizers.c b/libguile/finalizers.c
-index c5d69e8e3..94a6e6b0a 100644
---- a/libguile/finalizers.c
-+++ b/libguile/finalizers.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2012, 2013, 2014 Free Software Foundation, Inc.
-+/* Copyright (C) 2012, 2013, 2014, 2019 Free Software Foundation, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
-@@ -211,21 +211,26 @@ finalization_thread_proc (void *unused)
-
- scm_without_guile (read_finalization_pipe_data, &data);
-
-- if (data.n <= 0 && data.err != EINTR)
-+ if (data.n <= 0)
- {
-- perror ("error in finalization thread");
-- return NULL;
-+ if (data.err != EINTR)
-+ {
-+ perror ("error in finalization thread");
-+ return NULL;
-+ }
- }
--
-- switch (data.byte)
-+ else
- {
-- case 0:
-- scm_run_finalizers ();
-- break;
-- case 1:
-- return NULL;
-- default:
-- abort ();
-+ switch (data.byte)
-+ {
-+ case 0:
-+ scm_run_finalizers ();
-+ break;
-+ case 1:
-+ return NULL;
-+ default:
-+ abort ();
-+ }
- }
- }
- }