Added guile-2.0.14-r5.

This commit is contained in:
László Valkó 2023-02-08 16:37:16 +01:00
parent 09c3502e7d
commit 189d57461a
8 changed files with 342 additions and 0 deletions

View file

@ -0,0 +1,8 @@
AUX 50guile-gentoo.el 38 BLAKE2B e96c6cf48d1522d89450e11d339c76210c672377208b56951791b83c6ef22b2c872d313084e199dd5d7b533a99106a87dbc7f15b5ee6126f71bf5f2e84165ffa SHA512 5c00bcabe2d7cc03013dc7a54b2c653940c08098ca5646d7c73624cb1ca04376ae9dcf88a7166b1925c69f0c5d192d90f6bd790fdef8ed8c3b0f9d163c987da5
AUX guile-2-snarf.patch 1274 BLAKE2B e9efdd1e14560579131ecff748add4f97de730678e6f766681be72f95bf99ab36edd8bc7279701084d13f3fa762968af814760bcf9b8778c73c956c282bb3c93 SHA512 49d015b08d0bcf5d27aa43d4a595b2ccb4366dffe0f5d159162c8c7747fb9fdbe84056a737f3c81a6e39281d91109bfa4aa98c85dd0e757c17ab668a1dd46f24
AUX guile-2.0.14-configure-clang16.patch 2083 BLAKE2B db51de35520459eef3b66102a77afbcc492f2762e5629c5c63239dff9169f51104dbbadbedccfbdb3c83b051bd80ec82807f7a4e0ba1d43cc4c292b6a5d3ecc6 SHA512 40b1f6c4f2a04da26ceb0ffb6d016476b673d142ce465895c4fc241b24cb4dc0f3b0e759d51817f9cad27cea7c9cb56dc38507312f28af27daed6f362c70bb4c
AUX guile-2.0.14-darwin.patch 1026 BLAKE2B 9193732cfb74931f7bf8e9b55c5c9dd2621ef6271c8d18190e0ed94d90decde85272f271bbbe7d3c4dd0dd509e51fae3f7f0af42872a0b9ebb87396c9e69a9d2 SHA512 151d19f171656105d87336f81dd8c34273d07a3e88aa03ac5ca8d640c79ab317a90ef06097858bf627e4666fba747faea45237c73e7bc6462d19d8f0d1904d53
AUX guile-2.0.14-ia64-fix-crash-thread-context-switch.patch 2426 BLAKE2B 5b2073a3780794e9466d8e5434ab98a91a821408ab792abbfaf61d09c95e113b99746b0da850115b4534bda00b1313cef5bb9b08c90c8bf9a04c81b1eb78faa3 SHA512 082f98ac4ee2f40dd3762006bf5c43022088b2286c9a8d63ae9e234d3c8527f3afcfba8076e0c8578e7fbed257294db6ce1a4513661b89f821579dc121d449ae
DIST guile-2.0.14.tar.xz 4615196 BLAKE2B 97e26635c941309b713b632371bc9df7361d3d7d524af3d2c67275f3151dc9c51bd774155bd3c1caf6950d4e839afe8b019f553b5a7223c447bb19c8a97d608c SHA512 2cad60ab8aa77be44bc4988eaa3a2f0652637f315322abd6011c18f1800c3a461eefa15a14fd54d0d48031b093bc56dfc6cd15dc0a8260b97b40521bff793db6
EBUILD guile-2.0.14-r5.ebuild 2403 BLAKE2B 2c6cd345ea0f7402724ddcd4b74df9ea26d3ccde3e01eb9d2f56ae314fdf2bd7fff9551aab9b00cd9ec2b19c99356d556476782c3c1e60f0fd448e88d93737fe SHA512 b4e3337089b4096480733fab0e877ff5a77a8d1c13bcf20c3321d1925b2701e18cc07d0fdd45407361b0cc3c16a4e7b5d27d220577c36330a329d77bae0a2921
MISC metadata.xml 1137 BLAKE2B a7804962f0827541dd7e1d10d962700f32734d5dd4f04688c1f07838109ecf68f68d3601f86786a893c6c68c1f8d5144e254d4c82fcad53f6edc12bba9f6cc51 SHA512 5bb0ed15c972f967899c24e290550fb10bb830222dce3890413d9978870d0f00942ebfec738372418958ee99048017ebd25e8fc4c6d175027eef1448bc12384a

View file

@ -0,0 +1 @@
(add-to-list 'load-path "@SITELISP@")

View file

@ -0,0 +1,47 @@
From f775ab3654357fcaad294b95efb0b1c16de1eda8 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyfox@gentoo.org>
Date: Sun, 19 Feb 2017 22:58:40 +0000
Subject: guile-snarf: skip -g* arguments to avoid build failure
* libguile/guile-snarf.in: skip -g* arguments to avoid failure on
-ggdb3.
Bug: https://bugs.gentoo.org/608190
Bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25803
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
libguile/guile-snarf.in | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/libguile/guile-snarf.in b/libguile/guile-snarf.in
index 47bbc04..22dc1d3 100644
--- a/libguile/guile-snarf.in
+++ b/libguile/guile-snarf.in
@@ -95,10 +95,22 @@ if [ x"$CPP" = x ] ; then cpp="@CPP@" ; else cpp="$CPP" ; fi
trap "rm -rf $tempdir" 0 1 2 15
+# filter out -g* flags from commandline
+# as some flags like -ggdb3 cause CPP
+
+cpp_args=""
+for arg in "$@"
+do
+ case "$arg" in
+ -g*) ;; # skip debug flag
+ *) cpp_args="$cpp_args $arg" ;;
+ esac
+done
+
if [ ! "$outfile" = "-" ] ; then
- modern_snarf "$@" > $outfile
+ modern_snarf $cpp_args > $outfile
else
- modern_snarf "$@"
+ modern_snarf $cpp_args
fi
# zonk outfile if errors occurred
--
cgit v1.0-41-gc330

View file

@ -0,0 +1,71 @@
https://src.fedoraproject.org/rpms/guile/c/7fcab121be7d2bc8e3e48d0da476127b86cec90c?branch=rawhide
These issues have already been fixed upstream via gnulib imports:
commit 7e641595cd9b45ce7339e21c20a8ab81af9278f6
Author: Andy Wingo <wingo@pobox.com>
Date: Wed Feb 15 21:41:24 2017 +0100
Update Gnulib to v0.1-1157-gb03f418.
commit a91b95cca2d397c84f8b9bbd602d40209a7092ce
Author: Andy Wingo <wingo@pobox.com>
Date: Wed Jan 20 21:52:54 2021 +0100
Update Gnulib to v0.1-4379-g2ef5a9b4b
Also bump required autoconf version to 2.64, as required by Gnulib.
--- a/m4/link.m4
+++ b/m4/link.m4
@@ -22,6 +22,7 @@ AC_DEFUN([gl_FUNC_LINK],
AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <unistd.h>
+ #include <stdio.h>
]],
[[int result = 0;
if (!link ("conftest.a", "conftest.b/"))
--- a/m4/round.m4
+++ b/m4/round.m4
@@ -57,7 +57,7 @@ int main()
* (double) (1U << ((DBL_MANT_DIG + 3) / 5))
* (double) (1U << ((DBL_MANT_DIG + 4) / 5));
volatile double x = 0.5 - 0.5 / TWO_MANT_DIG;
- exit (x < 0.5 && round (x) != 0.0);
+ return x < 0.5 && round (x) != 0.0;
}]])], [gl_cv_func_round_works=yes], [gl_cv_func_round_works=no],
[case "$host_os" in
netbsd* | aix*) gl_cv_func_round_works="guessing no";;
Avoid implicit ints in the guile_cv_localtime_cache check. It cause
the check to always fail with strict(er) C99 compilers that do not
support implicit int.
Submitted upstream:
<https://lists.gnu.org/archive/html/bug-guile/2022-12/msg00017.html>
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60022>
--- a/configure.ac
+++ b/configure.ac
@@ -1086,7 +1086,7 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
# include <stdlib.h>
#endif
extern char **environ;
-unset_TZ ()
+int unset_TZ ()
{
char **from, **to;
for (to = from = environ; (*to = *from); from++)
@@ -1095,7 +1095,7 @@ unset_TZ ()
}
char TZ_GMT0[] = "TZ=GMT0";
char TZ_PST8[] = "TZ=PST8";
-main()
+int main()
{
time_t now = time ((time_t *) 0);
int hour_GMT0, hour_unset;

View file

@ -0,0 +1,38 @@
fix compilation on Darwin
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23
https://bugs.gentoo.org/show_bug.cgi?id=612338
--- guile-2.0.14/libguile/filesys.c
+++ guile-2.0.14/libguile/filesys.c
@@ -1486,6 +1486,9 @@
mode_bits = scm_i_mode_bits (mode);
}
+#ifdef __APPLE__
+ open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
+#endif
SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
if (rv == -1)
SCM_SYSERROR;
--- guile-2.0.14/libguile/stime.c
+++ guile-2.0.14/libguile/stime.c
@@ -830,6 +830,10 @@
#ifdef HAVE_POSIX_CPUTIME
{
+#ifdef __APPLE__
+ if (clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &posix_run_time_base) == 0)
+ get_internal_run_time = get_internal_run_time_posix_timer;
+#else
clockid_t dummy;
/* Only use the _POSIX_CPUTIME clock if it's going to work across
@@ -839,6 +843,7 @@
get_internal_run_time = get_internal_run_time_posix_timer;
else
errno = 0;
+#endif
}
#endif /* HAVE_POSIX_CPUTIME */
#endif /* HAVE_CLOCKTIME */

View file

@ -0,0 +1,63 @@
From f92888853439a8ded221f3423865c78de2a96a14 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyfox@gentoo.org>
Date: Sun, 5 Nov 2017 09:30:45 +0000
Subject: ia64: Fix crash in thread context switch.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes <https://bugs.gnu.org/29151> and <https://bugs.gentoo.org/613986>.
Backtrace looks like that:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
372 t->pending_rbs_continuation->backing_store,
[Current thread is 1 (Thread 0x2000000000049340 (LWP 8190))]
(gdb) bt
#0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
#1 0x2000000000148e00 in scm_c_abort (vm=0x60000000000edea0, tag=0x6000000000795ba0, n=0, argv=0x60000fffff7f0ce0, cookie=-1) at control.c:239
#2 0x2000000000149070 in scm_at_abort (tag=0x6000000000795ba0, args=0x304) at control.c:258
(gdb) print t
$2 = (scm_i_thread *) 0x6000000000068000
(gdb) print t->pending_rbs_continuation
$3 = (scm_t_contregs *) 0xffeb
The problem here is the value of 't->pending_rbs_continuation' pointer.
It's supposed to poin to a register stack pointer or be NULL if not yet
backed up.
The problem is it is never initialized to NULL at creation time and
contained garbage on stack. Sometimes people are lucky and have zeros
on stack and guile works. But sometimes there is something and guile
crashes.
The fix is trivial: initialize 'pending_rbs_continuation = NULL'
at thread registration time (the same way other threads are registered).
Reported-by: Matt Turner
* libguile/threads.c (guilify_self_1): Initialize pending_rbs_continuation
to avoid crash on ia64.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
libguile/threads.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libguile/threads.c b/libguile/threads.c
index 9ceb5b8..770f62c 100644
--- a/libguile/threads.c
+++ b/libguile/threads.c
@@ -395,6 +395,7 @@ guilify_self_1 (struct GC_stack_base *base, int needs_unregister)
t.base = base->mem_base;
#ifdef __ia64__
t.register_backing_store_base = base->reg_base;
+ t.pending_rbs_continuation = 0;
#endif
t.continuation_root = SCM_EOL;
t.continuation_base = t.base;
--
cgit v1.0-41-gc330

View file

@ -0,0 +1,92 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit flag-o-matic autotools
DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
HOMEPAGE="https://www.gnu.org/software/guile/"
SRC_URI="mirror://gnu/guile/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
LICENSE="LGPL-3+"
IUSE="debug debug-malloc +deprecated +networking +nls +regex +threads" # upstream recommended +networking +nls
# emacs useflag removal not working
REQUIRED_USE="regex" # workaround for bug 596322
RESTRICT="strip"
RDEPEND="
>=dev-libs/boehm-gc-7.0:=[threads?]
dev-libs/gmp:=
dev-libs/libffi:=
dev-libs/libltdl:=
dev-libs/libunistring:0=
sys-devel/libtool
sys-libs/ncurses:0=
sys-libs/readline:0=
virtual/libcrypt:="
DEPEND="${RDEPEND}
virtual/pkgconfig
sys-apps/texinfo
sys-devel/gettext"
SLOT="12/22" # subslot is soname version
MAJOR="2.0"
# guile generates ELF files without use of C or machine code
# It's a false positive. bug #677600
QA_PREBUILT='*[.]go'
DOCS=( GUILE-VERSION HACKING README )
PATCHES=(
"${FILESDIR}/${PN}-2-snarf.patch"
"${FILESDIR}/${P}-darwin.patch"
"${FILESDIR}/${P}-ia64-fix-crash-thread-context-switch.patch"
"${FILESDIR}/${P}-configure-clang16.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
# see bug #178499
filter-flags -ftree-vectorize
econf \
--disable-error-on-warning \
--disable-rpath \
--disable-static \
--enable-posix \
--without-libgmp-prefix \
--without-libiconv-prefix \
--without-libintl-prefix \
--without-libltdl-prefix \
--without-libreadline-prefix \
--without-libunistring-prefix \
$(use_enable debug guile-debug) \
$(use_enable debug-malloc) \
$(use_enable deprecated) \
$(use_enable networking) \
$(use_enable nls) \
$(use_enable regex) \
$(use_with threads)
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
# From Novell
# https://bugzilla.novell.com/show_bug.cgi?id=874028#c0
dodir /usr/share/gdb/auto-load/$(get_libdir)
mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die
# necessary for registering slib, see bug 206896
keepdir /usr/share/guile/site
# Dark magic necessary for some deps
dosym libguile-2.0.so /usr/$(get_libdir)/libguile.so
}

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>scheme@gentoo.org</email>
<name>Gentoo Scheme Project</name>
</maintainer>
<longdescription lang="en">
Guile is a library designed to help programmers create flexible applications. Using Guile in an application allows programmers to write plug-ins, or modules (there are many names, but the concept is essentially the same) and users to use them to have an application fit their needs.
</longdescription>
<use>
<flag name="debug-freelist">Include garbage collector freelist debugging code</flag>
<flag name="debug-malloc">Include malloc debugging code</flag>
<flag name="deprecated">Enable deprecated features</flag>
<flag name="discouraged"> (implied by deprecated) enable merely discouraged features</flag>
<flag name="networking">Include networking interfaces</flag>
<flag name="regex"> Include regular expression interfaces</flag>
</use>
<upstream>
<remote-id type="savannah">guile</remote-id>
</upstream>
</pkgmetadata>