gnu: guile: Add 2.2.7.

* gnu/packages/guile.scm (guile-2.2.7): New variable.
(guile-2.2/bug-fix): Redefine as a deprecated alias for GUILE-2.2.7.
* gnu/packages/admin.scm (shepherd)[native-inputs, inputs]: Use GUILE-2.2.7.
* gnu/packages/patches/guile-finalization-crash.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Remove it.
This commit is contained in:
Ludovic Courtès 2020-03-07 21:42:34 +01:00
parent 2519e4cba8
commit 8ab060b68b
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
4 changed files with 12 additions and 70 deletions

View file

@ -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 \

View file

@ -211,10 +211,10 @@ (define-public shepherd
`(("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.

View file

@ -250,17 +250,21 @@ (define-public guile-2.2
(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

View file

@ -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 ();
+ }
}
}
}