From 0fb0f9b958537fcf8e5f4209e5865b9d0ea80a39 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 8 May 2023 14:26:34 +0200 Subject: [PATCH 01/19] Port to C99 Related to: --- clisp-c99.patch | 36 ++++++++++++++++++++++++++++++++++++ clisp.spec | 13 +++++++++---- 2 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 clisp-c99.patch diff --git a/clisp-c99.patch b/clisp-c99.patch new file mode 100644 index 0000000..9e86315 --- /dev/null +++ b/clisp-c99.patch @@ -0,0 +1,36 @@ +berkeley-db: Avoid failure of HAVE_DB_STAT_ACCEPT_TXN test in +configure + +The last argument for db_stat is of type uint32_t, and compilers may +not allow passing NULL in its place. This causes the check to fail +in some cases where HAVE_DB_STAT_ACCEPT_TXN is expected to be defined, +leading to build failures later. + +Submitted upstream: + +diff --git modules/berkeley-db/configure modules/berkeley-db/configure +index 6f63e605b..c8734a1ca 100755 +--- modules/berkeley-db/configure ++++ modules/berkeley-db/configure +@@ -6347,7 +6347,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + int + main (void) + { +-DB db; db.stat(&db,NULL,0,NULL); ++DB db; db.stat(&db,NULL,0,0); + ; + return 0; + } +diff --git modules/berkeley-db/configure.in modules/berkeley-db/configure.in +index c2b8a5d2d..225fd91b1 100644 +--- modules/berkeley-db/configure.in ++++ modules/berkeley-db/configure.in +@@ -38,7 +38,7 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include + dnl + AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], +-[[DB db; db.stat(&db,NULL,0,NULL);]])], ++[[DB db; db.stat(&db,NULL,0,0);]])], + ac_cv_db_stat_accept_txn=yes,ac_cv_db_stat_accept_txn=no)]) + if test "$ac_cv_db_stat_accept_txn" = "yes"; then + AC_DEFINE(HAVE_DB_STAT_ACCEPT_TXN,1,[Define to 1 if DB->stat() accepts TXNid]) diff --git a/clisp.spec b/clisp.spec index d140106..b0cb2c5 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 30%{?dist} +Release: 31%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -45,9 +45,11 @@ Patch2: %{name}-register-volatile.patch # Perhaps we are racing with something else that allocates a pty. Disable # the test for now. Patch3: %{name}-pts-access.patch +Patch4: clisp-c99.patch + # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 -Patch4: %{name}-no-inline.patch +Patch100: %{name}-no-inline.patch BuildRequires: dbus-devel BuildRequires: diffutils @@ -123,9 +125,9 @@ Files necessary for linking CLISP programs. %prep %forgesetup -%autopatch -M4 -p0 +%autopatch -M99 -p0 %ifarch %{power64} -%autopatch 5 -p0 +%autopatch 100 -p0 %endif cp -p %{SOURCE1} emacs cp -p %{SOURCE2} %{SOURCE3} src/po @@ -454,6 +456,9 @@ make -C build base-mod-check %changelog +* Mon May 08 2023 Florian Weimer - 2.49.93-31 +- Port to C99 + * Tue Apr 4 2023 Jerry James - 2.49.93-30 - Update to allow non-simple strings in FORMAT and FORMATTER - Drop upstreamed ensure-6x patch From 6816da647d40c6160e197dc8f357eb06055c734a Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 18 Jul 2023 15:44:37 -0600 Subject: [PATCH 02/19] Update to fix message typos --- clisp.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/clisp.spec b/clisp.spec index b0cb2c5..8f13b64 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # Upstream has not made a new release since 2010 %global srcname clisp -%global commit 79cbafdbc6337d6dcd8f2dbad69fb7ebf7a46012 -%global date 20230212 +%global commit 66924971790e4cbee3d58f36e530caa0ad568e5f +%global date 20230718 %global forgeurl https://gitlab.com/gnu-clisp/clisp # There is a plus on the end for unreleased versions, not for released versions @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 31%{?dist} +Release: 32%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -456,6 +456,9 @@ make -C build base-mod-check %changelog +* Tue Jul 18 2023 Jerry James - 2.49.93-32 +- Update to fix message typos + * Mon May 08 2023 Florian Weimer - 2.49.93-31 - Port to C99 diff --git a/sources b/sources index c281f42..b317fdd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (clisp-79cbafdbc6337d6dcd8f2dbad69fb7ebf7a46012.tar.bz2) = 4c08409e454fb6ada0518d1e2bb872f8a0d6d519d165513e468eecb4c8d33c44f10c4c72d43cc22aa29b222d3f759c390020191aeb9318569bad48fc1f127a98 +SHA512 (clisp-66924971790e4cbee3d58f36e530caa0ad568e5f.tar.bz2) = a07051188e87cb0333b463248373289c59468e192583d7e7235ec8a74eab494b664fbd79a6c735b52d77157eb803eff2a3e1a0fa45fa4e68ccff4e637fae73ad From 5c268b6f08241fe568967ba36cd50b43b7bf46dd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 15:52:35 +0000 Subject: [PATCH 03/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 8f13b64..bddb507 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 32%{?dist} +Release: 33%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -456,6 +456,9 @@ make -C build base-mod-check %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.49.93-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 18 2023 Jerry James - 2.49.93-32 - Update to fix message typos From 758dd9dc0da8620e1a8f6ccc7333ff55ab773ec3 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 16 Aug 2023 08:28:34 -0600 Subject: [PATCH 04/19] Build without pcre support (rhbz#2128278) --- clisp.spec | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/clisp.spec b/clisp.spec index bddb507..36dc2b4 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 33%{?dist} +Release: 34%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -79,7 +79,6 @@ BuildRequires: libxcrypt-devel BuildRequires: make BuildRequires: pari-devel BuildRequires: pari-gp -BuildRequires: pcre-devel BuildRequires: libpq-devel BuildRequires: readline-devel BuildRequires: zlib-devel @@ -181,7 +180,6 @@ export LC_ALL=C.UTF-8 %endif --with-module=libsvm \ --with-module=pari \ - --with-module=pcre \ --with-module=postgresql \ --with-module=rawsock \ --with-module=zlib \ @@ -267,8 +265,6 @@ rm -f bdb.o ln -s ../berkeley-db/bdb.o bdb.o rm -f clx.o ln -s ../clx/new-clx/clx.o clx.o -rm -f cpcre.o -ln -s ../pcre/cpcre.o cpcre.o rm -f dbus.o ln -s ../dbus/dbus.o dbus.o rm -f gdbm.o @@ -343,9 +339,6 @@ make -C build base-mod-check %dir %{_libdir}/%{instdir}/pari/ %{_libdir}/%{instdir}/pari/*.fas %{_libdir}/%{instdir}/pari/preload.lisp -%dir %{_libdir}/%{instdir}/pcre/ -%{_libdir}/%{instdir}/pcre/*.fas -%{_libdir}/%{instdir}/pcre/preload.lisp %dir %{_libdir}/%{instdir}/postgresql/ %{_libdir}/%{instdir}/postgresql/*.fas %dir %{_libdir}/%{instdir}/rawsock/ @@ -430,11 +423,6 @@ make -C build base-mod-check %{_libdir}/%{instdir}/pari/pari.lisp %{_libdir}/%{instdir}/pari/*.o %{_libdir}/%{instdir}/pari/*.sh -%{_libdir}/%{instdir}/pcre/Makefile -%{_libdir}/%{instdir}/pcre/*.h -%{_libdir}/%{instdir}/pcre/pcre.lisp -%{_libdir}/%{instdir}/pcre/*.o -%{_libdir}/%{instdir}/pcre/*.sh %{_libdir}/%{instdir}/postgresql/README %{_libdir}/%{instdir}/postgresql/Makefile %{_libdir}/%{instdir}/postgresql/*.h @@ -456,6 +444,9 @@ make -C build base-mod-check %changelog +* Wed Aug 16 2023 Jerry James - 2.49.93-34 +- Build without pcre support (rhbz#2128278) + * Wed Jul 19 2023 Fedora Release Engineering - 2.49.93-33 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From dbb1df508fafd18ed1178397b954c53c0aca8f6f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 1 Dec 2023 12:44:55 -0700 Subject: [PATCH 05/19] Fix a mismatched pointer type error with GCC 14 --- clisp-bdb-mismatched-pointer.patch | 13 +++++++++++++ clisp.spec | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 clisp-bdb-mismatched-pointer.patch diff --git a/clisp-bdb-mismatched-pointer.patch b/clisp-bdb-mismatched-pointer.patch new file mode 100644 index 0000000..9cc3fe0 --- /dev/null +++ b/clisp-bdb-mismatched-pointer.patch @@ -0,0 +1,13 @@ +--- modules/berkeley-db/bdb.c.orig 2023-07-18 14:03:05.000000000 -0600 ++++ modules/berkeley-db/bdb.c 2023-12-01 12:12:30.675503890 -0700 +@@ -2752,8 +2752,8 @@ DEFUN(BDB:TXN-RECOVER, dbe &key FIRST :N + DB_ENV *dbe = (DB_ENV*)bdb_handle(popSTACK(),`BDB::DBE`,BH_VALID); + u_int32_t tx_max; + DB_PREPLIST *preplist; +- int status, ii; +- u_int32_t retnum; ++ int status; ++ long ii, retnum; + SYSCALL(dbe->get_tx_max,(dbe,&tx_max)); + preplist = (DB_PREPLIST*)clisp_malloc(tx_max * sizeof(DB_PREPLIST)); + begin_blocking_system_call(); diff --git a/clisp.spec b/clisp.spec index 36dc2b4..2ed2f04 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 34%{?dist} +Release: 35%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -45,7 +45,10 @@ Patch2: %{name}-register-volatile.patch # Perhaps we are racing with something else that allocates a pty. Disable # the test for now. Patch3: %{name}-pts-access.patch -Patch4: clisp-c99.patch +# Fix HAVE_DB_STAT_ACCEPT_TXN test in the Berkeley DB module +Patch4: %{name}-c99.patch +# Fix mismatched pointer types in the Berkeley DB module +Patch5: %{name}-bdb-mismatched-pointer.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -444,6 +447,9 @@ make -C build base-mod-check %changelog +* Fri Dec 1 2023 Jerry James - 2.49.93-35 +- Fix a mismatched pointer type error with GCC 14 + * Wed Aug 16 2023 Jerry James - 2.49.93-34 - Build without pcre support (rhbz#2128278) From 0acf606978cb386949fd054a4492b5e6a1960e18 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 16 Jan 2024 15:45:05 -0700 Subject: [PATCH 06/19] Add link to mismatched pointer PR --- clisp.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/clisp.spec b/clisp.spec index 2ed2f04..5e61825 100644 --- a/clisp.spec +++ b/clisp.spec @@ -48,6 +48,7 @@ Patch3: %{name}-pts-access.patch # Fix HAVE_DB_STAT_ACCEPT_TXN test in the Berkeley DB module Patch4: %{name}-c99.patch # Fix mismatched pointer types in the Berkeley DB module +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9 Patch5: %{name}-bdb-mismatched-pointer.patch # Work around a problem inlining a function on ppc64le From 6afa4a56b71f0d56ff668a1c1097bacd14f44ba4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 15:39:46 +0000 Subject: [PATCH 07/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 5e61825..e68c235 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 35%{?dist} +Release: 36%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -448,6 +448,9 @@ make -C build base-mod-check %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.49.93-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Dec 1 2023 Jerry James - 2.49.93-35 - Fix a mismatched pointer type error with GCC 14 From 3d02564e3169f4f1f6f8ed0c89c72861fa444639 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 07:27:43 +0000 Subject: [PATCH 08/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index e68c235..19e42b1 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 36%{?dist} +Release: 37%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -448,6 +448,9 @@ make -C build base-mod-check %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 2.49.93-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.49.93-36 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From debdecc984413d1e631ec22db7ef2e5e89cf4ced Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 19:29:07 +0000 Subject: [PATCH 09/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 19e42b1..e3bf4ff 100644 --- a/clisp.spec +++ b/clisp.spec @@ -26,7 +26,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 37%{?dist} +Release: 38%{?dist} URL: http://www.clisp.org/ Source0: %{forgesource} # Upstream dropped this file from the distribution @@ -448,6 +448,9 @@ make -C build base-mod-check %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 2.49.93-38 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 2.49.93-37 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 8e77a6688a92ce02d2ff53072be633611a980d77 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 3 Sep 2024 13:08:11 -0600 Subject: [PATCH 10/19] Update to latest git snapshot - Add patch to fix FTBFS in the new-clx code - Add patch to avoid calling the deprecated siginterrupt function - Add VCS field - Setting LC_ALL is no longer necessary --- clisp-db.patch | 14 +++++++------- clisp-new-clx.patch | 29 +++++++++++++++++++++++++++++ clisp-pts-access.patch | 8 ++++---- clisp-siginterrupt.patch | 18 ++++++++++++++++++ clisp.spec | 33 ++++++++++++++++++++------------- sources | 2 +- 6 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 clisp-new-clx.patch create mode 100644 clisp-siginterrupt.patch diff --git a/clisp-db.patch b/clisp-db.patch index aced4e2..94cc9ef 100644 --- a/clisp-db.patch +++ b/clisp-db.patch @@ -1,16 +1,16 @@ ---- modules/berkeley-db/configure.orig 2021-06-28 14:32:42.000000000 -0600 -+++ modules/berkeley-db/configure 2021-07-16 15:35:19.789568797 -0600 -@@ -6376,7 +6376,7 @@ then : - else $as_nop - +--- modules/berkeley-db/configure.orig 2024-07-04 15:55:33.000000000 -0600 ++++ modules/berkeley-db/configure 2024-07-08 14:48:08.927142156 -0600 +@@ -6272,7 +6272,7 @@ then : + else case e in #( + e) CFLAGS_save="$CFLAGS" -CFLAGS="$CFLAGS -Werror" +CFLAGS="$CFLAGS -Wno-uninitialized -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include ---- modules/berkeley-db/configure.in.orig 2021-06-28 14:32:42.000000000 -0600 -+++ modules/berkeley-db/configure.in 2021-07-16 15:35:19.786568792 -0600 +--- modules/berkeley-db/configure.in.orig 2024-07-04 15:55:33.000000000 -0600 ++++ modules/berkeley-db/configure.in 2024-07-08 14:48:08.927142156 -0600 @@ -48,7 +48,7 @@ dnl set_errcall() accepts DBE], ac_cv_dbe_set_errcall_accept_dbe,[ diff --git a/clisp-new-clx.patch b/clisp-new-clx.patch new file mode 100644 index 0000000..039e61c --- /dev/null +++ b/clisp-new-clx.patch @@ -0,0 +1,29 @@ +Fixes this error: + +In file included from genclx.c:1: +/builddir/build/BUILD/clisp-2.49.93-build/clisp-f5acef3880f1604367893ffa895210c942b37db3/build/gllib/stdio.h:71:3: error: #error "Please include config.h first." + 71 | #error "Please include config.h first." + | ^~~~~ + +--- modules/clx/new-clx/Makefile.in.orig 2024-07-12 09:22:07.000000000 -0600 ++++ modules/clx/new-clx/Makefile.in 2024-08-26 14:59:39.943911822 -0600 +@@ -35,7 +35,7 @@ resource.fas: $(srcdir)/resource.lisp cl + + clx.d: $(srcdir)/clx.f + $(CCMP2C) $(srcdir)/clx.f > genclx.c +- $(CC) $(CPPFLAGS) $(CFLAGS) $(WANTS) genclx.c -o genclx ++ $(CC) $(CPPFLAGS) $(CFLAGS) $(WANTS) -I$(CLISP_LINKKIT) genclx.c -o genclx + ./genclx -l -o clx.d > clx.d + $(RM) genclx.c + $(RM) genclx +--- utils/ccmp2c.c.orig 2024-07-12 09:22:07.000000000 -0600 ++++ utils/ccmp2c.c 2024-08-26 15:02:29.685683789 -0600 +@@ -1042,6 +1042,8 @@ main (int argc, char *argv[]) + infilename = argv[1]; + + /* Emit prologue. */ ++ printf ("#include \"clisp.h\"\n"); ++ printf ("#include \"config.h\"\n"); + printf ("#include \n"); + printf ("#include \n"); + printf ("#include \n"); diff --git a/clisp-pts-access.patch b/clisp-pts-access.patch index 15e3ee8..55d026e 100644 --- a/clisp-pts-access.patch +++ b/clisp-pts-access.patch @@ -1,15 +1,15 @@ ---- tests/streams.tst.orig 2021-06-28 14:32:42.000000000 -0600 -+++ tests/streams.tst 2022-01-28 14:04:45.685239619 -0700 +--- tests/streams.tst.orig 2024-07-04 15:55:33.000000000 -0600 ++++ tests/streams.tst 2024-07-08 14:50:23.547424881 -0600 @@ -1288,9 +1288,9 @@ T (streamp (setq s (make-stream :error))) T (or (not (search "#P" (prin1-to-string s))) (pathnamep (truename s))) T (write-line "foo" s) "foo" -(let ((*reopen-open-file* nil)) ; stdout can be a file, it will be detected! - (with-open-file (copy s :direction :output) (streamp copy))) --#.(if (member (ext:operating-system-type) '("AIX" "Haiku" "HP-UX" "Minix" "Windows") :test #'equal) 'ERROR 'T) +-#.(if (member (ext:operating-system-type) '("AIX" "Haiku" "Minix" "Windows") :test #'equal) 'ERROR 'T) +;;(let ((*reopen-open-file* nil)) ; stdout can be a file, it will be detected! +;; (with-open-file (copy s :direction :output) (streamp copy))) -+;;#.(if (member (ext:operating-system-type) '("AIX" "Haiku" "HP-UX" "Minix" "Windows") :test #'equal) 'ERROR 'T) ++;;#.(if (member (ext:operating-system-type) '("AIX" "Haiku" "Minix" "Windows") :test #'equal) 'ERROR 'T) #+clisp (progn diff --git a/clisp-siginterrupt.patch b/clisp-siginterrupt.patch new file mode 100644 index 0000000..26d0d3b --- /dev/null +++ b/clisp-siginterrupt.patch @@ -0,0 +1,18 @@ +Avoids this warning: + +../src/unixaux.d: In function ‘install_signal_handler’: +../src/unixaux.d:734:3: warning: ‘siginterrupt’ is deprecated: Use sigaction with SA_RESTART instead [-Wdeprecated-declarations] + 734 | siginterrupt(sig,0); + | ^~~~~~~~~~~~ + +--- src/unixaux.d.orig 2024-07-12 09:22:07.000000000 -0600 ++++ src/unixaux.d 2024-08-26 15:42:17.202775988 -0600 +@@ -703,7 +703,7 @@ global int wait2 (pid_t child) { + global signal_handler_t install_signal_handler (int sig, + signal_handler_t handler) { + var signal_handler_t old_handler; +- #if defined(USE_SIGACTION) ++ #if defined(HAVE_SIGACTION) + var struct sigaction old_sa; + var struct sigaction new_sa; + memset(&new_sa,0,sizeof(new_sa)); diff --git a/clisp.spec b/clisp.spec index e3bf4ff..f52a7a1 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # Upstream has not made a new release since 2010 %global srcname clisp -%global commit 66924971790e4cbee3d58f36e530caa0ad568e5f -%global date 20230718 +%global commit c735dd548ba2365804bcee9c2bdd3c291657e8ae +%global date 20240901 %global forgeurl https://gitlab.com/gnu-clisp/clisp # There is a plus on the end for unreleased versions, not for released versions @@ -10,9 +10,7 @@ # This package uses toplevel ASMs which are incompatible with LTO %global _lto_cflags %{nil} -%if ! (0%{?rhel} > 9) -%bcond_without gtk2 -%endif +%bcond gtk2 %[!(0%{?rhel} > 9)] Name: clisp Summary: ANSI Common Lisp implementation @@ -26,8 +24,9 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 38%{?dist} +Release: 39%{?dist} URL: http://www.clisp.org/ +VCS: git:%{forgeurl}.git Source0: %{forgesource} # Upstream dropped this file from the distribution Source1: https://gitlab.com/sam-s/clhs/-/raw/master/clhs.el @@ -44,16 +43,20 @@ Patch2: %{name}-register-volatile.patch # I can only guess that /dev/pts/0 may or may not be what the test expects. # Perhaps we are racing with something else that allocates a pty. Disable # the test for now. -Patch3: %{name}-pts-access.patch +Patch3: %{name}-pts-access.patch # Fix HAVE_DB_STAT_ACCEPT_TXN test in the Berkeley DB module -Patch4: %{name}-c99.patch +Patch4: %{name}-c99.patch # Fix mismatched pointer types in the Berkeley DB module # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9 -Patch5: %{name}-bdb-mismatched-pointer.patch +Patch5: %{name}-bdb-mismatched-pointer.patch +# Fix the new-clx build, which was broken by a recent gnulib update +Patch6: %{name}-new-clx.patch +# Do not call the deprecated siginterrupt function +Patch7: %{name}-siginterrupt.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 -Patch100: %{name}-no-inline.patch +Patch100: %{name}-no-inline.patch BuildRequires: dbus-devel BuildRequires: diffutils @@ -159,8 +162,6 @@ chmod a-x modules/clx/clx-manual/html/doc-index.cgi sed -i 's/9090/9096/g' tests/socket.tst %build -export LC_ALL=C.UTF-8 - # Do not need to specify base modules: i18n, readline, regexp, syscalls. # The dirkey module currently can only be built on Windows/Cygwin/MinGW. # The editor module is not in good enough shape to use. @@ -294,7 +295,6 @@ ln -s ../../src/modules.c build/base/modules.c ln -s ../../src/modules.c build/full/modules.c %check -export LC_ALL=C.UTF-8 make -C build check make -C build extracheck make -C build base-mod-check @@ -448,6 +448,13 @@ make -C build base-mod-check %changelog +* Tue Sep 3 2024 Jerry James - 2.49.93-39 +- Update to latest git snapshot +- Add patch to fix FTBFS in the new-clx code +- Add patch to avoid calling the deprecated siginterrupt function +- Add VCS field +- Setting LC_ALL is no longer necessary + * Wed Jul 17 2024 Fedora Release Engineering - 2.49.93-38 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index b317fdd..3c2116a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (clisp-66924971790e4cbee3d58f36e530caa0ad568e5f.tar.bz2) = a07051188e87cb0333b463248373289c59468e192583d7e7235ec8a74eab494b664fbd79a6c735b52d77157eb803eff2a3e1a0fa45fa4e68ccff4e637fae73ad +SHA512 (clisp-c735dd548ba2365804bcee9c2bdd3c291657e8ae.tar.bz2) = 9614a3bbf5700a8651f03ac7fb19201ad3e7114e331209e0ea718a9e0373e78aa6b51a65c656fd60d407824a7ae8272c3345e8ffe4b14f501b628c4d3ccdf7e5 From 885c36453f8f06a03a92122ab389d6f8bfa60bd1 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Sat, 5 Oct 2024 11:05:47 -0600 Subject: [PATCH 11/19] Rebuild for pari 2.17.0 --- clisp-pari.patch | 24 ++++++++++++++++++++++++ clisp.spec | 9 ++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 clisp-pari.patch diff --git a/clisp-pari.patch b/clisp-pari.patch new file mode 100644 index 0000000..8180cb6 --- /dev/null +++ b/clisp-pari.patch @@ -0,0 +1,24 @@ +--- modules/pari/pari.lisp.orig 2024-09-01 08:33:43.000000000 -0600 ++++ modules/pari/pari.lisp 2024-10-01 14:05:23.052630082 -0600 +@@ -137,8 +137,8 @@ + + (exporting:defun next-entree (e) (foreign-value (entree-next e))) + +-;; typedef unsigned char *byteptr; +-(def-c-type byteptr (c-ptr uchar)) ++;; typedef unsigned int pari_prime; ++(def-c-type pari_prime uint) + + ;; typedef ulong pari_sp; + (def-c-type pari_sp ulong) +@@ -200,8 +200,8 @@ t.e., this is the memory size for the re + ;; extern GEN primetab; + (def-c-var primetab (:type pari-gen) (:read-only t)) + +-;; extern byteptr diffptr; +-(def-c-var diffptr (:type byteptr) (:read-only t)) ++;; extern pari_prime *pari_PRIMES; ++(def-c-var pari_PRIMES (:type (c-pointer pari_prime)) (:read-only t)) + + (def-c-const MAXVARN) + ;; extern entree **varentries; diff --git a/clisp.spec b/clisp.spec index f52a7a1..acf66f4 100644 --- a/clisp.spec +++ b/clisp.spec @@ -24,7 +24,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 39%{?dist} +Release: 40%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -45,14 +45,18 @@ Patch2: %{name}-register-volatile.patch # the test for now. Patch3: %{name}-pts-access.patch # Fix HAVE_DB_STAT_ACCEPT_TXN test in the Berkeley DB module +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/8 Patch4: %{name}-c99.patch # Fix mismatched pointer types in the Berkeley DB module # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9 Patch5: %{name}-bdb-mismatched-pointer.patch # Fix the new-clx build, which was broken by a recent gnulib update +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/10 Patch6: %{name}-new-clx.patch # Do not call the deprecated siginterrupt function Patch7: %{name}-siginterrupt.patch +# Adapt to changes in pari 2.17 +Patch8: %{name}-pari.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -448,6 +452,9 @@ make -C build base-mod-check %changelog +* Sat Oct 5 2024 Jerry James - 2.49.93-40 +- Rebuild for pari 2.17.0 + * Tue Sep 3 2024 Jerry James - 2.49.93-39 - Update to latest git snapshot - Add patch to fix FTBFS in the new-clx code From ff5c8f0ebb7e189c5527f497a69136991c7cf28f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 25 Nov 2024 11:51:36 -0700 Subject: [PATCH 12/19] Version 2.49.95+ - Drop upstreamed patches: db, c99, bdb-mismatched-pointer, new-clx, pari --- clisp-bdb-mismatched-pointer.patch | 13 ----------- clisp-c99.patch | 36 ------------------------------ clisp-db.patch | 22 ------------------ clisp-new-clx.patch | 29 ------------------------ clisp-pari.patch | 24 -------------------- clisp.spec | 33 ++++++++++----------------- sources | 2 +- 7 files changed, 13 insertions(+), 146 deletions(-) delete mode 100644 clisp-bdb-mismatched-pointer.patch delete mode 100644 clisp-c99.patch delete mode 100644 clisp-db.patch delete mode 100644 clisp-new-clx.patch delete mode 100644 clisp-pari.patch diff --git a/clisp-bdb-mismatched-pointer.patch b/clisp-bdb-mismatched-pointer.patch deleted file mode 100644 index 9cc3fe0..0000000 --- a/clisp-bdb-mismatched-pointer.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- modules/berkeley-db/bdb.c.orig 2023-07-18 14:03:05.000000000 -0600 -+++ modules/berkeley-db/bdb.c 2023-12-01 12:12:30.675503890 -0700 -@@ -2752,8 +2752,8 @@ DEFUN(BDB:TXN-RECOVER, dbe &key FIRST :N - DB_ENV *dbe = (DB_ENV*)bdb_handle(popSTACK(),`BDB::DBE`,BH_VALID); - u_int32_t tx_max; - DB_PREPLIST *preplist; -- int status, ii; -- u_int32_t retnum; -+ int status; -+ long ii, retnum; - SYSCALL(dbe->get_tx_max,(dbe,&tx_max)); - preplist = (DB_PREPLIST*)clisp_malloc(tx_max * sizeof(DB_PREPLIST)); - begin_blocking_system_call(); diff --git a/clisp-c99.patch b/clisp-c99.patch deleted file mode 100644 index 9e86315..0000000 --- a/clisp-c99.patch +++ /dev/null @@ -1,36 +0,0 @@ -berkeley-db: Avoid failure of HAVE_DB_STAT_ACCEPT_TXN test in -configure - -The last argument for db_stat is of type uint32_t, and compilers may -not allow passing NULL in its place. This causes the check to fail -in some cases where HAVE_DB_STAT_ACCEPT_TXN is expected to be defined, -leading to build failures later. - -Submitted upstream: - -diff --git modules/berkeley-db/configure modules/berkeley-db/configure -index 6f63e605b..c8734a1ca 100755 ---- modules/berkeley-db/configure -+++ modules/berkeley-db/configure -@@ -6347,7 +6347,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - int - main (void) - { --DB db; db.stat(&db,NULL,0,NULL); -+DB db; db.stat(&db,NULL,0,0); - ; - return 0; - } -diff --git modules/berkeley-db/configure.in modules/berkeley-db/configure.in -index c2b8a5d2d..225fd91b1 100644 ---- modules/berkeley-db/configure.in -+++ modules/berkeley-db/configure.in -@@ -38,7 +38,7 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include - dnl - AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], --[[DB db; db.stat(&db,NULL,0,NULL);]])], -+[[DB db; db.stat(&db,NULL,0,0);]])], - ac_cv_db_stat_accept_txn=yes,ac_cv_db_stat_accept_txn=no)]) - if test "$ac_cv_db_stat_accept_txn" = "yes"; then - AC_DEFINE(HAVE_DB_STAT_ACCEPT_TXN,1,[Define to 1 if DB->stat() accepts TXNid]) diff --git a/clisp-db.patch b/clisp-db.patch deleted file mode 100644 index 94cc9ef..0000000 --- a/clisp-db.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- modules/berkeley-db/configure.orig 2024-07-04 15:55:33.000000000 -0600 -+++ modules/berkeley-db/configure 2024-07-08 14:48:08.927142156 -0600 -@@ -6272,7 +6272,7 @@ then : - else case e in #( - e) - CFLAGS_save="$CFLAGS" --CFLAGS="$CFLAGS -Werror" -+CFLAGS="$CFLAGS -Wno-uninitialized -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include ---- modules/berkeley-db/configure.in.orig 2024-07-04 15:55:33.000000000 -0600 -+++ modules/berkeley-db/configure.in 2024-07-08 14:48:08.927142156 -0600 -@@ -48,7 +48,7 @@ dnl set_errcall() accepts DBE], - ac_cv_dbe_set_errcall_accept_dbe,[ - CFLAGS_save="$CFLAGS" --CFLAGS="$CFLAGS -Werror" -+CFLAGS="$CFLAGS -Wno-uninitialized -Werror" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include - void my_callback (const DB_ENV* dbe, const char *errpfx, const char *msg) {}], - [[DB_ENV dbe; dbe.set_errcall(&dbe,&my_callback);]])], diff --git a/clisp-new-clx.patch b/clisp-new-clx.patch deleted file mode 100644 index 039e61c..0000000 --- a/clisp-new-clx.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fixes this error: - -In file included from genclx.c:1: -/builddir/build/BUILD/clisp-2.49.93-build/clisp-f5acef3880f1604367893ffa895210c942b37db3/build/gllib/stdio.h:71:3: error: #error "Please include config.h first." - 71 | #error "Please include config.h first." - | ^~~~~ - ---- modules/clx/new-clx/Makefile.in.orig 2024-07-12 09:22:07.000000000 -0600 -+++ modules/clx/new-clx/Makefile.in 2024-08-26 14:59:39.943911822 -0600 -@@ -35,7 +35,7 @@ resource.fas: $(srcdir)/resource.lisp cl - - clx.d: $(srcdir)/clx.f - $(CCMP2C) $(srcdir)/clx.f > genclx.c -- $(CC) $(CPPFLAGS) $(CFLAGS) $(WANTS) genclx.c -o genclx -+ $(CC) $(CPPFLAGS) $(CFLAGS) $(WANTS) -I$(CLISP_LINKKIT) genclx.c -o genclx - ./genclx -l -o clx.d > clx.d - $(RM) genclx.c - $(RM) genclx ---- utils/ccmp2c.c.orig 2024-07-12 09:22:07.000000000 -0600 -+++ utils/ccmp2c.c 2024-08-26 15:02:29.685683789 -0600 -@@ -1042,6 +1042,8 @@ main (int argc, char *argv[]) - infilename = argv[1]; - - /* Emit prologue. */ -+ printf ("#include \"clisp.h\"\n"); -+ printf ("#include \"config.h\"\n"); - printf ("#include \n"); - printf ("#include \n"); - printf ("#include \n"); diff --git a/clisp-pari.patch b/clisp-pari.patch deleted file mode 100644 index 8180cb6..0000000 --- a/clisp-pari.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- modules/pari/pari.lisp.orig 2024-09-01 08:33:43.000000000 -0600 -+++ modules/pari/pari.lisp 2024-10-01 14:05:23.052630082 -0600 -@@ -137,8 +137,8 @@ - - (exporting:defun next-entree (e) (foreign-value (entree-next e))) - --;; typedef unsigned char *byteptr; --(def-c-type byteptr (c-ptr uchar)) -+;; typedef unsigned int pari_prime; -+(def-c-type pari_prime uint) - - ;; typedef ulong pari_sp; - (def-c-type pari_sp ulong) -@@ -200,8 +200,8 @@ t.e., this is the memory size for the re - ;; extern GEN primetab; - (def-c-var primetab (:type pari-gen) (:read-only t)) - --;; extern byteptr diffptr; --(def-c-var diffptr (:type byteptr) (:read-only t)) -+;; extern pari_prime *pari_PRIMES; -+(def-c-var pari_PRIMES (:type (c-pointer pari_prime)) (:read-only t)) - - (def-c-const MAXVARN) - ;; extern entree **varentries; diff --git a/clisp.spec b/clisp.spec index acf66f4..3c6c2b8 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # Upstream has not made a new release since 2010 %global srcname clisp -%global commit c735dd548ba2365804bcee9c2bdd3c291657e8ae -%global date 20240901 +%global commit 9ff8aedb796fbf7c47e594bfc2357b69c8e64dc9 +%global date 20241123 %global forgeurl https://gitlab.com/gnu-clisp/clisp # There is a plus on the end for unreleased versions, not for released versions @@ -14,7 +14,7 @@ Name: clisp Summary: ANSI Common Lisp implementation -Version: 2.49.93 +Version: 2.49.95 %forgemeta @@ -24,7 +24,7 @@ Version: 2.49.93 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 40%{?dist} +Release: 1%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -33,30 +33,17 @@ Source1: https://gitlab.com/sam-s/clhs/-/raw/master/clhs.el # Updated translations Source2: http://translationproject.org/latest/clisp/sv.po Source3: http://translationproject.org/latest/clisp/de.po -# https://sourceforge.net/p/clisp/patches/35/ -Patch0: %{name}-db.patch # https://sourceforge.net/p/clisp/patches/32/ -Patch1: %{name}-format.patch +Patch0: %{name}-format.patch # The combination of register and volatile is nonsensical -Patch2: %{name}-register-volatile.patch +Patch1: %{name}-register-volatile.patch # A test that writes to /dev/pts/0 succeeds or fails apparently at random. # I can only guess that /dev/pts/0 may or may not be what the test expects. # Perhaps we are racing with something else that allocates a pty. Disable # the test for now. -Patch3: %{name}-pts-access.patch -# Fix HAVE_DB_STAT_ACCEPT_TXN test in the Berkeley DB module -# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/8 -Patch4: %{name}-c99.patch -# Fix mismatched pointer types in the Berkeley DB module -# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9 -Patch5: %{name}-bdb-mismatched-pointer.patch -# Fix the new-clx build, which was broken by a recent gnulib update -# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/10 -Patch6: %{name}-new-clx.patch +Patch2: %{name}-pts-access.patch # Do not call the deprecated siginterrupt function -Patch7: %{name}-siginterrupt.patch -# Adapt to changes in pari 2.17 -Patch8: %{name}-pari.patch +Patch3: %{name}-siginterrupt.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -452,6 +439,10 @@ make -C build base-mod-check %changelog +* Mon Nov 25 2024 Jerry James - 2.49.95-1 +- Version 2.49.95 +- Drop upstreamed patches: db, c99, bdb-mismatched-pointer, new-clx, pari + * Sat Oct 5 2024 Jerry James - 2.49.93-40 - Rebuild for pari 2.17.0 diff --git a/sources b/sources index 3c2116a..c076005 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (clisp-c735dd548ba2365804bcee9c2bdd3c291657e8ae.tar.bz2) = 9614a3bbf5700a8651f03ac7fb19201ad3e7114e331209e0ea718a9e0373e78aa6b51a65c656fd60d407824a7ae8272c3345e8ffe4b14f501b628c4d3ccdf7e5 +SHA512 (clisp-9ff8aedb796fbf7c47e594bfc2357b69c8e64dc9.tar.bz2) = 7c29ab9c8f3aad9d7b5338d8f95610e85d3d8f6738ad7cfa4e07d105d2a1f15dcf14d72c72f4e6b87e6ccfd566e1d10d44d541420dedac507a544d7ed768052f From 7bf88cd6af4e5b715efc2d1b87ea7ea7dbe96e7a Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 13 Jan 2025 14:31:13 -0700 Subject: [PATCH 13/19] Update to latest git snapshot - Move configuration steps to %conf --- clisp.spec | 12 +++++++++--- sources | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/clisp.spec b/clisp.spec index 3c6c2b8..ec637f5 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # Upstream has not made a new release since 2010 %global srcname clisp -%global commit 9ff8aedb796fbf7c47e594bfc2357b69c8e64dc9 -%global date 20241123 +%global commit c3ec11bab87cfdbeba01523ed88ac2a16b22304d +%global date 20241228 %global forgeurl https://gitlab.com/gnu-clisp/clisp # There is a plus on the end for unreleased versions, not for released versions @@ -24,7 +24,7 @@ Version: 2.49.95 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -126,6 +126,8 @@ Files necessary for linking CLISP programs. %ifarch %{power64} %autopatch 100 -p0 %endif + +%conf cp -p %{SOURCE1} emacs cp -p %{SOURCE2} %{SOURCE3} src/po @@ -439,6 +441,10 @@ make -C build base-mod-check %changelog +* Mon Jan 13 2025 Jerry James - 2.49.95-2 +- Update to latest git snapshot +- Move configuration steps to %%conf + * Mon Nov 25 2024 Jerry James - 2.49.95-1 - Version 2.49.95 - Drop upstreamed patches: db, c99, bdb-mismatched-pointer, new-clx, pari diff --git a/sources b/sources index c076005..56851c4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (clisp-9ff8aedb796fbf7c47e594bfc2357b69c8e64dc9.tar.bz2) = 7c29ab9c8f3aad9d7b5338d8f95610e85d3d8f6738ad7cfa4e07d105d2a1f15dcf14d72c72f4e6b87e6ccfd566e1d10d44d541420dedac507a544d7ed768052f +SHA512 (clisp-c3ec11bab87cfdbeba01523ed88ac2a16b22304d.tar.bz2) = f1f90de3eec144fd2d7bc9a3b482952c4c187f7ec590c41ce20447b4662961ae35290b260fa91d7399f9a4d1806ec7310ee90a77ead63a9d0f529a8627d2fa17 From 00ea9b0d97ac9958d1839e454c5fd3e611a1b1f2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 13:56:45 +0000 Subject: [PATCH 14/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index ec637f5..6e3928a 100644 --- a/clisp.spec +++ b/clisp.spec @@ -24,7 +24,7 @@ Version: 2.49.95 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -441,6 +441,9 @@ make -C build base-mod-check %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 2.49.95-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Mon Jan 13 2025 Jerry James - 2.49.95-2 - Update to latest git snapshot - Move configuration steps to %%conf From 3f3e034be0633be06f08ba6afdeb53dbcf46fe33 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 7 Feb 2025 12:26:08 -0700 Subject: [PATCH 15/19] Add patch to fix undefined behavior (rhbz#2339979) - Add two patches to fix memory leaks - Do not force -O1 --- clisp-encoding-leak.patch | 10 ++++++++ clisp-iconv-close.patch | 38 ++++++++++++++++++++++++++++ clisp-undefined-behavior.patch | 46 ++++++++++++++++++++++++++++++++++ clisp.spec | 26 +++++++++++++++---- 4 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 clisp-encoding-leak.patch create mode 100644 clisp-iconv-close.patch create mode 100644 clisp-undefined-behavior.patch diff --git a/clisp-encoding-leak.patch b/clisp-encoding-leak.patch new file mode 100644 index 0000000..f2b939a --- /dev/null +++ b/clisp-encoding-leak.patch @@ -0,0 +1,10 @@ +--- src/encoding.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/encoding.d 2025-02-04 20:28:22.743346018 -0700 +@@ -2592,6 +2592,7 @@ local maygc object encoding_from_name (c + pushSTACK(STACK_0); + } + } ++ free(name); + #else + unused const_name; unused context; + pushSTACK(unbound); /* :charset */ diff --git a/clisp-iconv-close.patch b/clisp-iconv-close.patch new file mode 100644 index 0000000..db553ad --- /dev/null +++ b/clisp-iconv-close.patch @@ -0,0 +1,38 @@ +--- src/stream.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/stream.d 2025-02-07 11:47:28.448086694 -0700 +@@ -4239,6 +4239,9 @@ global uintL iconv_wcslen (object encodi + != (size_t)(-1)) { + inptr += sizeof(chart); insize -= sizeof(chart); + } else { ++ var int saved_errno = errno; ++ iconv_close(cd); ++ errno = saved_errno; + if (errno != EILSEQ) { + ANSIC_error(); + } else { +@@ -4247,6 +4250,7 @@ global uintL iconv_wcslen (object encodi + } + } + } else { ++ iconv_close(cd); + end_system_call(); + error_unencodable(encoding,*(const chart*)inptr); + } +@@ -4317,6 +4321,9 @@ global void iconv_wcstombs (object encod + if (iconv(cd,&inptr1,&insize1,&outptr,&outsize) != (size_t)(-1)) { + inptr += sizeof(chart); insize -= sizeof(chart); + } else { ++ var int saved_errno = errno; ++ iconv_close(cd); ++ errno = saved_errno; + if (errno != EILSEQ) { + ANSIC_error(); + } else { +@@ -4325,6 +4332,7 @@ global void iconv_wcstombs (object encod + } + } + } else { ++ iconv_close(cd); + end_system_call(); + error_unencodable(encoding,*(const chart*)inptr); + } diff --git a/clisp-undefined-behavior.patch b/clisp-undefined-behavior.patch new file mode 100644 index 0000000..309c8b2 --- /dev/null +++ b/clisp-undefined-behavior.patch @@ -0,0 +1,46 @@ +See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118779 + +--- src/package.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/package.d 2025-02-07 12:00:00.646094825 -0700 +@@ -188,12 +188,12 @@ local maygc object rehash_symtab (object + first process the symbols, that sit in lists + (maybe Conses become free): */ + { +- var gcv_object_t* offset = 0; /* offset = sizeof(gcv_object_t)*index */ ++ var aint offset = 0; /* offset = sizeof(gcv_object_t)*index */ + var uintC count = oldsize; + do { + var object oldentry = /* entry with number index in oldtable */ + *(gcv_object_t*)(pointerplus(&TheSvector(STACK_2)->data[0], +- (aint)offset)); ++ offset)); + if (consp(oldentry)) /* this time process only non-empty symbol-lists */ + do { + pushSTACK(Cdr(oldentry)); /* save rest-list */ +@@ -205,22 +205,22 @@ local maygc object rehash_symtab (object + newinsert(Car(oldentry),newsize); + oldentry = popSTACK(); /* rest-list */ + } while (consp(oldentry)); +- offset++; ++ offset += sizeof(gcv_object_t); + } while (--count); + } + { /* then process symbols, that sit there collision-free: */ +- var gcv_object_t* offset = 0; /* offset = sizeof(gcv_object_t)*index */ ++ var aint offset = 0; /* offset = sizeof(gcv_object_t)*index */ + var uintC count; + dotimespC(count,oldsize, { + var object oldentry = /* entry with number index in oldtable */ + *(gcv_object_t*)(pointerplus(&TheSvector(STACK_2)->data[0], +- (aint)offset)); ++ offset)); + if (!listp(oldentry)) { /* this time process only symbols /= NIL */ + pushSTACK(oldentry); /* dummy, so that the stack is fine */ + newinsert(oldentry,newsize); /* enter into the new table */ + skipSTACK(1); + } +- offset++; ++ offset += sizeof(gcv_object_t); + }); + } + /* stack layout: tab, oldtable, free-conses, newtable. */ diff --git a/clisp.spec b/clisp.spec index 6e3928a..73f38cb 100644 --- a/clisp.spec +++ b/clisp.spec @@ -44,6 +44,14 @@ Patch1: %{name}-register-volatile.patch Patch2: %{name}-pts-access.patch # Do not call the deprecated siginterrupt function Patch3: %{name}-siginterrupt.patch +# Fix an iconv leak in stream.d +Patch4: %{name}-iconv-close.patch +# Fix a memory leak in encoding.d +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/11 +Patch5: %{name}-encoding-leak.patch +# Fix undefined behavior in rehash_symtab +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/12 +Patch6: %{name}-undefined-behavior.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -136,8 +144,11 @@ cp -p %{SOURCE2} %{SOURCE3} src/po cp -p src/build-aux/config.rpath config.rpath.orig sed -i -e 's/${wl}-rpath ${wl}/-L/g' src/build-aux/config.rpath -# Fix modules that need access to symbols in libgnu.a -sed -i 's/\(${GLLIB_A}\) \(${LIBS}\)/-Wl,--whole-archive \1 -Wl,--no-whole-archive \2 -ldl/' src/makemake.in +# Do not use -Werror, or we get build failures on every new gcc version +sed -i '/CFLAGS -Werror/d' modules/berkeley-db/configure + +# Do not override our choice of optimization flags +sed -i "/CFLAGS/s/'-O'/''/;/Z_XCFLAGS/s/' -O'//" src/makemake.in # When building modules, put -Wl,--as-needed before the libraries to link sed -i "s/CC='\${CC}'/CC='\${CC} -Wl,--as-needed'/" src/makemake.in @@ -185,9 +196,9 @@ sed -i 's/9090/9096/g' tests/socket.tst --with-ffcall \ --config \ build \ - CPPFLAGS="-I/usr/include/libsvm" \ - CFLAGS="%{build_cflags} -Wa,--noexecstack" \ - LDFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack" + CPPFLAGS='-I/usr/include/libsvm' \ + CFLAGS='%{build_cflags} -Wa,--noexecstack' \ + LDFLAGS='-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack' cd build # Workaround libtool reordering -Wl,--as-needed after all the libraries. @@ -441,6 +452,11 @@ make -C build base-mod-check %changelog +* Fri Feb 7 2025 Jerry James - 2.49.95-3 +- Add patch to fix undefined behavior (rhbz#2339979) +- Add two patches to fix memory leaks +- Do not force -O1 + * Thu Jan 16 2025 Fedora Release Engineering - 2.49.95-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 28d75acd55df9517747f47195717a06ef5053d49 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 14 Feb 2025 21:24:49 -0700 Subject: [PATCH 16/19] Add patches to fix more undefined behavior - Fix misaligned memory accesses on ppc64le - Fix mismatched readline function declarations --- clisp-ppc64le-alignment.patch | 18 +++++++ clisp-readline.patch | 75 +++++++++++++++++++++++++++++ clisp-undefined-behavior-eval.patch | 15 ++++++ clisp-undefined-behavior-io.patch | 15 ++++++ clisp-undefined-behavior-sort.patch | 23 +++++++++ clisp.spec | 20 +++++++- 6 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 clisp-ppc64le-alignment.patch create mode 100644 clisp-readline.patch create mode 100644 clisp-undefined-behavior-eval.patch create mode 100644 clisp-undefined-behavior-io.patch create mode 100644 clisp-undefined-behavior-sort.patch diff --git a/clisp-ppc64le-alignment.patch b/clisp-ppc64le-alignment.patch new file mode 100644 index 0000000..b186bb5 --- /dev/null +++ b/clisp-ppc64le-alignment.patch @@ -0,0 +1,18 @@ +Fixes UBSAN errors such as: + +../src/spvw_typealloc.d:146:450: runtime error: member access within misaligned address 0x17000000009c for type 'struct s8string_', which requires 8 byte alignment +0x17000000009c: note: pointer points here + 53 45 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ^ + +--- src/lispbibl.d.orig 2025-02-07 19:25:44.207789666 -0700 ++++ src/lispbibl.d 2025-02-10 11:38:31.029348227 -0700 +@@ -6006,7 +6006,7 @@ typedef signed_int_with_n_bits(intVsize) + #if defined(I80386) || defined(POWERPC) || defined(ARM) || defined(S390) + #define varobject_alignment 4 + #endif +-#if defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(DECALPHA) || defined(IA64) || defined(AMD64) || defined(ARM64) || defined(RISCV64) || defined(LOONGARCH64) ++#if defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(DECALPHA) || defined(IA64) || defined(AMD64) || defined(ARM64) || defined(RISCV64) || defined(LOONGARCH64) || defined(POWERPC64) + #define varobject_alignment 8 + #endif + #if (!defined(TYPECODES) || defined(GENERATIONAL_GC)) && (varobject_alignment < 4) diff --git a/clisp-readline.patch b/clisp-readline.patch new file mode 100644 index 0000000..942e67c --- /dev/null +++ b/clisp-readline.patch @@ -0,0 +1,75 @@ +--- modules/readline/readline.lisp.orig 2024-12-28 00:47:59.000000000 -0700 ++++ modules/readline/readline.lisp 2025-02-10 15:17:06.296266455 -0700 +@@ -126,7 +126,7 @@ name in ~/.inputrc. This is preferred wa + (:documentation "Get keymap with given name (e.g., emacs, vi)") + (:arguments (name c-string)) (:return-type keymap)) + +-(def-call-out get-keymap-name (:name "rl_get_keymap_by_name") ; untested ++(def-call-out get-keymap-name (:name "rl_get_keymap_name") ; untested + (:arguments (keymap keymap)) (:return-type c-string)) + + ;;; Binding Keys +@@ -255,7 +255,7 @@ name in ~/.inputrc. This is preferred wa + ;;; Redisplay + + (def-call-out redisplay (:name "rl_redisplay") +- (:arguments) (:return-type int)) ++ (:arguments) (:return-type nil)) + + (def-call-out forced-update-display (:name "rl_forced_update_display") + (:arguments) (:return-type int)) +@@ -308,7 +308,7 @@ name in ~/.inputrc. This is preferred wa + + (def-call-out copy-text (:name "rl_copy_text") ; untested + (:arguments (start int) (end int)) +- (:return-type int)) ++ (:return-type c-string :malloc-free)) + + (def-call-out kill-text (:name "rl_kill_text") ; untested + (:arguments (start int) (end int)) +@@ -316,7 +316,7 @@ name in ~/.inputrc. This is preferred wa + + (def-call-out push-macro-input (:name "rl_push_macro_input") + (:arguments (macro c-string)) +- (:return-type int)) ++ (:return-type nil)) + + ;;; Character input + +@@ -362,7 +362,7 @@ name in ~/.inputrc. This is preferred wa + + (def-call-out extend-line-buffer (:name "rl_extend_line_buffer") ; untested + (:arguments (len int)) +- (:return-type int)) ++ (:return-type nil)) + + (def-call-out ding (:name "rl_ding") + (:arguments) (:return-type int)) +@@ -404,7 +404,7 @@ name in ~/.inputrc. This is preferred wa + (:return-type int)) + + (def-call-out clear-history (:name "rl_clear_history") ; untested +- (:arguments) (:return-type int)) ++ (:arguments) (:return-type nil)) + + (def-call-out get-termcap (:name "rl_get_termcap") ; untested + (:arguments (cap c-string)) +@@ -647,10 +647,16 @@ and the completion character will be ins + (:documentation "reading multiple-key command")) + (def-c-const state-vicmdonce (:name "RL_STATE_VICMDONCE") ; 0x400000 + (:documentation "entered vi command mode at least once")) +-(def-c-const state-redisplaying (:name "RL_STATE_REDISPLAYING") ; 0x800000 ++(def-c-const state-charsearch (:name "RL_STATE_CHARSEARCH") ; 0x800000 ++ (:documentation "vi mode char search")) ++(def-c-const state-redisplaying (:name "RL_STATE_REDISPLAYING") ; 0x1000000 + (:documentation "updating terminal display")) +-(def-c-const state-done (:name "RL_STATE_DONE") ; 0x1000000 ++(def-c-const state-done (:name "RL_STATE_DONE") ; 0x2000000 + (:documentation "done; accepted line")) ++(def-c-const state-timeout (:name "RL_STATE_TIMEOUT") ; 0x4000000 ++ (:documentation "done; timed out")) ++(def-c-const state-eof (:name "RL_STATE_EOF") ; 0x8000000 ++ (:documentation "done; got eof on read")) + + (def-c-const readerr ; (-2) + (:documentation " Input error; can be returned by (*rl_getc_function) diff --git a/clisp-undefined-behavior-eval.patch b/clisp-undefined-behavior-eval.patch new file mode 100644 index 0000000..2e6b8e0 --- /dev/null +++ b/clisp-undefined-behavior-eval.patch @@ -0,0 +1,15 @@ +Fixes this UBSAN error: + +../src/eval.d:5808:11: runtime error: variable length array bound evaluates to non-positive value 0 + +--- src/eval.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/eval.d 2025-02-10 09:39:02.285198247 -0700 +@@ -5805,7 +5805,7 @@ local /*maygc*/ Values interpret_bytecod + var uintL private_SP_length = + (uintL)(((Codevec)codeptr)->ccv_spdepth_1) + + jmpbufsize * (uintL)(((Codevec)codeptr)->ccv_spdepth_jmpbufsize); +- var DYNAMIC_ARRAY(private_SP_space,SPint,private_SP_length); ++ var DYNAMIC_ARRAY(private_SP_space,SPint,private_SP_length+1); + var SPint* private_SP = &private_SP_space[private_SP_length]; + #undef SP_ + #undef _SP_ diff --git a/clisp-undefined-behavior-io.patch b/clisp-undefined-behavior-io.patch new file mode 100644 index 0000000..7a9e72b --- /dev/null +++ b/clisp-undefined-behavior-io.patch @@ -0,0 +1,15 @@ +Fixes this UBSAN error: + +runtime error: variable length array bound evaluates to non-positive value 0 + +--- src/io.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/io.d 2025-02-10 09:50:29.262067759 -0700 +@@ -8158,7 +8158,7 @@ local maygc void pr_array (const gcv_obj + LEVEL_CHECK; + { /* determine rank and fetch dimensions and sub-product: */ + var uintL r = (uintL)Iarray_rank(obj); /* rank */ +- var DYNAMIC_ARRAY(dims_sizes,array_dim_size_t,r); /* dynamically allocated array */ ++ var DYNAMIC_ARRAY(dims_sizes,array_dim_size_t,r?r:1); /* dynamically allocated array */ + iarray_dims_sizes(obj,dims_sizes); /* fill */ + var uintL depth = r; /* depth of recursion */ + var pr_array_locals_t locals; /* local variables */ diff --git a/clisp-undefined-behavior-sort.patch b/clisp-undefined-behavior-sort.patch new file mode 100644 index 0000000..8408d13 --- /dev/null +++ b/clisp-undefined-behavior-sort.patch @@ -0,0 +1,23 @@ +Fixes this USBAN error: + +../src/sort.d:42:18: runtime error: applying non-zero offset 18446744073709551584 to null pointer + +--- src/sort.d.orig 2024-12-28 00:47:59.000000000 -0700 ++++ src/sort.d 2025-02-10 09:33:00.121016044 -0700 +@@ -39,7 +39,7 @@ + /* sort(v,n); sorts the array v[0]..v[n-1] in ascending order. */ + local void SORT(SORTID,sort) (SORT_ELEMENT* v, uintL n) + { +- var SORT_ELEMENT* w = &v[-1]; ++ var SORT_ELEMENT* w; + /* w[1]..w[n] point to the same elements as v[0]..v[n-1] . + We collect the numbers 1,...,n to a balanced binary subtree, + so that k has the children 2*k and 2*k+1. +@@ -70,6 +70,7 @@ local void SORT(SORTID,sort) (SORT_ELEME + } + if (n<=1) /* nothing to do? */ + return; ++ w = &v[-1]; + { /* Because of 2*(floor(n/2)+1) > n, + w[floor(n/2)+1]..w[n] is already sorted. */ + var uintL r; diff --git a/clisp.spec b/clisp.spec index 73f38cb..7a5d99b 100644 --- a/clisp.spec +++ b/clisp.spec @@ -45,13 +45,24 @@ Patch2: %{name}-pts-access.patch # Do not call the deprecated siginterrupt function Patch3: %{name}-siginterrupt.patch # Fix an iconv leak in stream.d -Patch4: %{name}-iconv-close.patch +Patch4: %{name}-iconv-close.patch # Fix a memory leak in encoding.d # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/11 Patch5: %{name}-encoding-leak.patch # Fix undefined behavior in rehash_symtab # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/12 -Patch6: %{name}-undefined-behavior.patch +Patch6: %{name}-undefined-behavior.patch +# Fix undefined behavior in SORT +Patch7: %{name}-undefined-behavior-sort.patch +# Fix undefined behavior in interpret_bytecode_ +Patch8: %{name}-undefined-behavior-eval.patch +# Fix undefined behavior in pr_array +Patch9: %{name}-undefined-behavior-io.patch +# Fix misaligned memory accesses on ppc64le +Patch10: %{name}-ppc64le-alignment.patch +# Fix some mismatched readline function declarations +# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/13 +Patch11: %{name}-readline.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -452,6 +463,11 @@ make -C build base-mod-check %changelog +* Fri Feb 14 2025 Jerry James - 2.49.95-3 +- Add patches to fix more undefined behavior +- Fix misaligned memory accesses on ppc64le +- Fix mismatched readline function declarations + * Fri Feb 7 2025 Jerry James - 2.49.95-3 - Add patch to fix undefined behavior (rhbz#2339979) - Add two patches to fix memory leaks From 2f58da3a26fc9de52fdf2509095edd528f0e43de Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 2 Jun 2025 11:01:50 -0600 Subject: [PATCH 17/19] Update to latest git snapshot - Drop one upstreamed patch to fix undefined behavior --- clisp-undefined-behavior.patch | 46 ---------------------------------- clisp.spec | 23 +++++++++-------- sources | 2 +- 3 files changed, 13 insertions(+), 58 deletions(-) delete mode 100644 clisp-undefined-behavior.patch diff --git a/clisp-undefined-behavior.patch b/clisp-undefined-behavior.patch deleted file mode 100644 index 309c8b2..0000000 --- a/clisp-undefined-behavior.patch +++ /dev/null @@ -1,46 +0,0 @@ -See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118779 - ---- src/package.d.orig 2024-12-28 00:47:59.000000000 -0700 -+++ src/package.d 2025-02-07 12:00:00.646094825 -0700 -@@ -188,12 +188,12 @@ local maygc object rehash_symtab (object - first process the symbols, that sit in lists - (maybe Conses become free): */ - { -- var gcv_object_t* offset = 0; /* offset = sizeof(gcv_object_t)*index */ -+ var aint offset = 0; /* offset = sizeof(gcv_object_t)*index */ - var uintC count = oldsize; - do { - var object oldentry = /* entry with number index in oldtable */ - *(gcv_object_t*)(pointerplus(&TheSvector(STACK_2)->data[0], -- (aint)offset)); -+ offset)); - if (consp(oldentry)) /* this time process only non-empty symbol-lists */ - do { - pushSTACK(Cdr(oldentry)); /* save rest-list */ -@@ -205,22 +205,22 @@ local maygc object rehash_symtab (object - newinsert(Car(oldentry),newsize); - oldentry = popSTACK(); /* rest-list */ - } while (consp(oldentry)); -- offset++; -+ offset += sizeof(gcv_object_t); - } while (--count); - } - { /* then process symbols, that sit there collision-free: */ -- var gcv_object_t* offset = 0; /* offset = sizeof(gcv_object_t)*index */ -+ var aint offset = 0; /* offset = sizeof(gcv_object_t)*index */ - var uintC count; - dotimespC(count,oldsize, { - var object oldentry = /* entry with number index in oldtable */ - *(gcv_object_t*)(pointerplus(&TheSvector(STACK_2)->data[0], -- (aint)offset)); -+ offset)); - if (!listp(oldentry)) { /* this time process only symbols /= NIL */ - pushSTACK(oldentry); /* dummy, so that the stack is fine */ - newinsert(oldentry,newsize); /* enter into the new table */ - skipSTACK(1); - } -- offset++; -+ offset += sizeof(gcv_object_t); - }); - } - /* stack layout: tab, oldtable, free-conses, newtable. */ diff --git a/clisp.spec b/clisp.spec index 7a5d99b..3f4aa0f 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # Upstream has not made a new release since 2010 %global srcname clisp -%global commit c3ec11bab87cfdbeba01523ed88ac2a16b22304d -%global date 20241228 +%global commit f66220939ea7d36fd085384afa4a0ec44597d499 +%global date 20250504 %global forgeurl https://gitlab.com/gnu-clisp/clisp # There is a plus on the end for unreleased versions, not for released versions @@ -24,7 +24,7 @@ Version: 2.49.95 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -49,20 +49,17 @@ Patch4: %{name}-iconv-close.patch # Fix a memory leak in encoding.d # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/11 Patch5: %{name}-encoding-leak.patch -# Fix undefined behavior in rehash_symtab -# https://gitlab.com/gnu-clisp/clisp/-/merge_requests/12 -Patch6: %{name}-undefined-behavior.patch # Fix undefined behavior in SORT -Patch7: %{name}-undefined-behavior-sort.patch +Patch6: %{name}-undefined-behavior-sort.patch # Fix undefined behavior in interpret_bytecode_ -Patch8: %{name}-undefined-behavior-eval.patch +Patch7: %{name}-undefined-behavior-eval.patch # Fix undefined behavior in pr_array -Patch9: %{name}-undefined-behavior-io.patch +Patch8: %{name}-undefined-behavior-io.patch # Fix misaligned memory accesses on ppc64le -Patch10: %{name}-ppc64le-alignment.patch +Patch9: %{name}-ppc64le-alignment.patch # Fix some mismatched readline function declarations # https://gitlab.com/gnu-clisp/clisp/-/merge_requests/13 -Patch11: %{name}-readline.patch +Patch10: %{name}-readline.patch # Work around a problem inlining a function on ppc64le # See https://bugzilla.redhat.com/show_bug.cgi?id=2049371 @@ -463,6 +460,10 @@ make -C build base-mod-check %changelog +* Mon Jun 02 2025 Jerry James - 2.49.95-4 +- Update to latest git snapshot +- Drop one upstreamed patch to fix undefined behavior + * Fri Feb 14 2025 Jerry James - 2.49.95-3 - Add patches to fix more undefined behavior - Fix misaligned memory accesses on ppc64le diff --git a/sources b/sources index 56851c4..43b7795 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (clisp-c3ec11bab87cfdbeba01523ed88ac2a16b22304d.tar.bz2) = f1f90de3eec144fd2d7bc9a3b482952c4c187f7ec590c41ce20447b4662961ae35290b260fa91d7399f9a4d1806ec7310ee90a77ead63a9d0f529a8627d2fa17 +SHA512 (clisp-f66220939ea7d36fd085384afa4a0ec44597d499.tar.bz2) = 16d6ccba500d60fe36c20b5bd1d6c9403567996020cef406e42813a302a86d94dc0d5e36aae434b5b846d39ec37d6db2b50565a69d24291b973724bcc0874bd0 From f1acbe937138c482bbe580d0cec1fdc6a40d292f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 18:24:22 +0000 Subject: [PATCH 18/19] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 3f4aa0f..4dc6b9b 100644 --- a/clisp.spec +++ b/clisp.spec @@ -24,7 +24,7 @@ Version: 2.49.95 # - src/socket.d and modules/clx/mit-clx/doc.lisp are HPND # - src/xthread.d and modules/asdf/asdf.lisp are X11 License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-or-later) AND LGPL-2.1-or-later AND HPND AND X11 -Release: 4%{?dist} +Release: 5%{?dist} URL: http://www.clisp.org/ VCS: git:%{forgeurl}.git Source0: %{forgesource} @@ -460,6 +460,9 @@ make -C build base-mod-check %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 2.49.95-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Mon Jun 02 2025 Jerry James - 2.49.95-4 - Update to latest git snapshot - Drop one upstreamed patch to fix undefined behavior From 24dca17a22105a25c185380e1c4af7a40d37b39f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Sun, 11 Jan 2026 18:59:06 -0700 Subject: [PATCH 19/19] Reflow the description text - Minor spec file cleanups --- clisp.spec | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/clisp.spec b/clisp.spec index 4dc6b9b..94e352d 100644 --- a/clisp.spec +++ b/clisp.spec @@ -95,6 +95,7 @@ BuildRequires: pari-devel BuildRequires: pari-gp BuildRequires: libpq-devel BuildRequires: readline-devel +BuildRequires: vim-filesystem BuildRequires: zlib-devel Requires: emacs-filesystem @@ -105,25 +106,24 @@ Requires: vim-filesystem Provides: bundled(gnulib) %description -ANSI Common Lisp is a high-level, general-purpose programming -language. GNU CLISP is a Common Lisp implementation by Bruno Haible -of Karlsruhe University and Michael Stoll of Munich University, both -in Germany. It mostly supports the Lisp described in the ANSI Common -Lisp standard. It runs on most Unix workstations (GNU/Linux, FreeBSD, -NetBSD, OpenBSD, Solaris, Tru64, HP-UX, BeOS, NeXTstep, IRIX, AIX and -others) and on other systems (Windows NT/2000/XP, Windows 95/98/ME) -and needs only 4 MiB of RAM. +ANSI Common Lisp is a high-level, general-purpose programming language. GNU +CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe University +and Michael Stoll of Munich University, both in Germany. It mostly supports +the Lisp described in the ANSI Common Lisp standard. It runs on most Unix +workstations (GNU/Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX, +BeOS, NeXTstep, IRIX, AIX and others) and on other systems (Windows NT/2000/XP, +Windows 95/98/ME) and needs only 4 MiB of RAM. -It is Free Software and may be distributed under the terms of GNU GPL, -while it is possible to distribute commercial proprietary applications -compiled with GNU CLISP. +It is Free Software and may be distributed under the terms of GNU GPL, while +it is possible to distribute commercial proprietary applications compiled with +GNU CLISP. -The user interface comes in English, German, French, Spanish, Dutch, -Russian and Danish, and can be changed at run time. GNU CLISP -includes an interpreter, a compiler, a debugger, CLOS, MOP, a foreign -language interface, sockets, i18n, fast bignums and more. An X11 -interface is available through CLX, Garnet, CLUE/CLIO. GNU CLISP runs -Maxima, ACL2 and many other Common Lisp packages. +The user interface comes in English, German, French, Spanish, Dutch, Russian +and Danish, and can be changed at run time. GNU CLISP includes an +interpreter, a compiler, a debugger, CLOS, MOP, a foreign language interface, +sockets, i18n, fast bignums and more. An X11 interface is available through +CLX, Garnet, CLUE/CLIO. GNU CLISP runs Maxima, ACL2 and many other Common +Lisp packages. %package devel @@ -229,7 +229,7 @@ find %{buildroot}%{_libdir} -name '*.dvi' -exec rm -f {} \+ cat %{name}low.lang >> %{name}.lang # Compile the Emacs interface -pushd %{buildroot}%{_datadir}/emacs/site-lisp +pushd %{buildroot}%{_emacs_sitelispdir} %{_emacs_bytecompile} *.el popd @@ -362,8 +362,8 @@ make -C build base-mod-check %{_libdir}/%{instdir}/rawsock/preload.lisp %dir %{_libdir}/%{instdir}/zlib/ %{_libdir}/%{instdir}/zlib/*.fas -%{_datadir}/emacs/site-lisp/* -%{_datadir}/vim/vimfiles/after/syntax/* +%{_emacs_sitelispdir}/* +%{vimfiles_root}/after/syntax/* %files devel %doc modules/clx/clx-manual @@ -463,7 +463,7 @@ make -C build base-mod-check * Wed Jul 23 2025 Fedora Release Engineering - 2.49.95-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild -* Mon Jun 02 2025 Jerry James - 2.49.95-4 +* Mon Jun 02 2025 Jerry James - 2.49.95-4 - Update to latest git snapshot - Drop one upstreamed patch to fix undefined behavior