From 8ab060b68b3d01ae8546741b77f3df779a8dc61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 7 Mar 2020 21:42:34 +0100 Subject: [PATCH] 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. --- gnu/local.mk | 1 - gnu/packages/admin.scm | 4 +- gnu/packages/guile.scm | 16 +++-- .../patches/guile-finalization-crash.patch | 61 ------------------- 4 files changed, 12 insertions(+), 70 deletions(-) delete mode 100644 gnu/packages/patches/guile-finalization-crash.patch 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 + `(("guile" ,guile-2.2.7) ;for ;; 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: . (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 -Date: Mon Dec 9 14:44:59 2019 +0100 - - Fix non-deterministic crash in 'finalization_thread_proc'. - - Fixes . - Reported by Jesse Gibbons . - - * 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 (); -+ } - } - } - }