[packages/clisp] - custom gdbm and git berkeley-db build fixes; release 5

qboosh qboosh at pld-linux.org
Thu Jul 10 18:37:26 CEST 2025


commit 8a5dc248b5dbb719c88e2e552493c18609225da5
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Thu Jul 10 18:38:57 2025 +0200

    - custom gdbm and git berkeley-db build fixes; release 5

 clisp-bdb-git.patch | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 clisp-gdbm.patch    |  20 +++++
 clisp.spec          |  11 ++-
 3 files changed, 237 insertions(+), 2 deletions(-)
---
diff --git a/clisp.spec b/clisp.spec
index 23cafb8..507f18e 100644
--- a/clisp.spec
+++ b/clisp.spec
@@ -8,7 +8,7 @@ Summary(pl.UTF-8):	Implementacja Common Lisp (ANSI CL)
 Summary(pt_BR.UTF-8):	Implementação do Common Lisp (ANSI CL)
 Name:		clisp
 Version:	2.50
-Release:	4
+Release:	5
 License:	GPL v2
 Group:		Development/Languages
 #Source0Download: https://gitlab.com/gnu-clisp/clisp/-/tags  (2.50 is a not a tag, but branch with no release yet???)
@@ -16,6 +16,8 @@ Source0:	https://gitlab.com/gnu-clisp/clisp/-/archive/clisp-%{version}/clisp-cli
 # Source0-md5:	e1813423a98973c2a43b3690c563c024
 Patch0:		%{name}-shell.patch
 Patch1:		x32.patch
+Patch2:		%{name}-bdb-git.patch
+Patch3:		%{name}-gdbm.patch
 URL:		http://clisp.cons.org/
 BuildRequires:	automake
 BuildRequires:	db-devel
@@ -23,7 +25,7 @@ BuildRequires:	dbus-devel
 BuildRequires:	fcgi-devel
 BuildRequires:	ffcall-devel
 BuildRequires:	gettext-tools
-BuildRequires:	gdbm-devel
+BuildRequires:	gdbm-devel >= 1.15
 BuildRequires:	groff
 BuildRequires:	gtk+2-devel >= 2.0
 BuildRequires:	libglade2-devel >= 2.0
@@ -274,6 +276,8 @@ Podświetlanie składni LISP-a w Vimie.
 %setup -q -n clisp-clisp-%{version}
 %patch -P0 -p1
 %patch -P1 -p1
+%patch -P2 -p1
+%patch -P3 -p1
 
 # changing default -O to optflags causes memory fault on amd64
 # - so something is broken... code or compiler
@@ -282,6 +286,9 @@ Podświetlanie składni LISP-a w Vimie.
 #%{__perl} -pi -e "s@' -O2?([^0])@' %{rpmcflags} -fno-strict-aliasing\$1@" src/makemake.in
 
 %build
+cd modules/berkeley-db
+%{__autoconf} --include ../../src
+cd ../..
 %ifarch ppc ppc64
 ulimit -s unlimited
 %else
diff --git a/clisp-bdb-git.patch b/clisp-bdb-git.patch
new file mode 100644
index 0000000..7837acc
--- /dev/null
+++ b/clisp-bdb-git.patch
@@ -0,0 +1,208 @@
+From a08fd20fe7caaa0707af2f9505b5c0dd4abe73fa Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno at clisp.org>
+Date: Fri, 8 Nov 2024 21:18:32 +0100
+Subject: [PATCH] berkeley-db: Fix configure test.
+
+Reported by Florian Weimer in
+<https://gitlab.com/gnu-clisp/clisp/-/merge_requests/8>.
+
+* modules/berkeley-db/configure.in: Fix arguments to db.stat.
+* modules/berkeley-db/configure: Regenerated.
+---
+ modules/berkeley-db/configure    | 2 +-
+ modules/berkeley-db/configure.in | 5 +++--
+ src/ChangeLog                    | 8 ++++++++
+ 3 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/modules/berkeley-db/configure.in b/modules/berkeley-db/configure.in
+index c2b8a5d2d..1775efede 100644
+--- a/modules/berkeley-db/configure.in
++++ b/modules/berkeley-db/configure.in
+@@ -1,5 +1,6 @@
+ dnl AUTOCONF configuration for Berkeley-DB
+ dnl Copyright (C) 2003-2012 Sam Steingold <sds at gnu.org>
++dnl Copyright (C) 2024 Bruno Haible <bruno at clisp.org>
+ dnl GNU GPL2+
+ 
+ AC_PREREQ(2.57)
+@@ -35,10 +36,10 @@ fi
+ AC_CHECK_SIZEOF(db_recno_t,,[#include <stdio.h>
+ #include <db.h>])
+ 
+-dnl <http://www.sleepycat.com/docs/ref/upgrade.4.3/stat.html>
++dnl See db-5.3.28/docs/upgrading/upgrade_4_3_stat.html.
+ AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>],
+-[[DB db; db.stat(&db,NULL,0,NULL);]])],
++[[DB db; db.stat(&db,NULL,NULL,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/src/ChangeLog b/src/ChangeLog
+#index 5f15c55be..0b3d50a14 100644
+#--- a/src/ChangeLog
+#+++ b/src/ChangeLog
+#@@ -1,3 +1,11 @@
+#+2024-11-08  Bruno Haible  <bruno at clisp.org>
+#+
+#+	berkeley-db: Fix configure test.
+#+	Reported by Florian Weimer in
+#+	<https://gitlab.com/gnu-clisp/clisp/-/merge_requests/8>.
+#+	* modules/berkeley-db/configure.in: Fix arguments to db.stat.
+#+	* modules/berkeley-db/configure: Regenerated.
+#+
+# 2024-11-07  Bruno Haible  <bruno at clisp.org>
+# 
+# 	Update the GPL text.
+-- 
+GitLab
+
+From fe98f04798677f3b85f24e1a3d267e926ca031cc Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno at clisp.org>
+Date: Fri, 8 Nov 2024 22:15:40 +0100
+Subject: [PATCH] berkeley-db: Fix BDB:TXN-RECOVER on 64-bit platforms.
+
+Reported by Jerry James in
+<https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9>.
+
+* modules/berkeley-db/bdb.c (BDB:TXN-RECOVER): Change type of local
+variables.
+---
+ modules/berkeley-db/bdb.c | 6 ++++--
+ src/ChangeLog             | 8 ++++++++
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/modules/berkeley-db/bdb.c b/modules/berkeley-db/bdb.c
+index 9bbfaf641..27f086624 100644
+--- a/modules/berkeley-db/bdb.c
++++ b/modules/berkeley-db/bdb.c
+@@ -1,6 +1,7 @@
+ /*
+  * CLISP: Berkeley-DB <http://www.sleepycat.com/docs/api_c/>
+  * Copyright (C) 2003-2012 by Sam Steingold
++ * Copyright (C) 2024 Bruno Haible
+  */
+ 
+ #include "clisp.h"
+@@ -2752,8 +2753,9 @@ DEFUN(BDB:TXN-RECOVER, dbe &key FIRST :NEXT)
+   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 retnum;
++  long ii;
+   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/src/ChangeLog b/src/ChangeLog
+#index 0b3d50a14..0817fb4ab 100644
+#--- a/src/ChangeLog
+#+++ b/src/ChangeLog
+#@@ -1,3 +1,11 @@
+#+2024-11-08  Bruno Haible  <bruno at clisp.org>
+#+
+#+	berkeley-db: Fix BDB:TXN-RECOVER on 64-bit platforms.
+#+	Reported by Jerry James in
+#+	<https://gitlab.com/gnu-clisp/clisp/-/merge_requests/9>.
+#+	* modules/berkeley-db/bdb.c (BDB:TXN-RECOVER): Change type of local
+#+	variables.
+#+
+# 2024-11-08  Bruno Haible  <bruno at clisp.org>
+# 
+# 	berkeley-db: Fix configure test.
+-- 
+GitLab
+
+From 14017a35e2c1dc02b18f09b6d079eeb441bb9b92 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno at clisp.org>
+Date: Sat, 9 Nov 2024 03:09:07 +0100
+Subject: [PATCH] berkeley-db: Fix configure test.
+
+* modules/berkeley-db/configure.in: Avoid using uninitialized variables
+in test programs, especially with -Werror.
+* modules/berkeley-db/configure: Regenerated.
+---
+ modules/berkeley-db/configure    |  6 +++---
+ modules/berkeley-db/configure.in | 16 ++++++++--------
+ src/ChangeLog                    |  7 +++++++
+ 3 files changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/modules/berkeley-db/configure.in b/modules/berkeley-db/configure.in
+index 1775efede..a11c71d80 100644
+--- a/modules/berkeley-db/configure.in
++++ b/modules/berkeley-db/configure.in
+@@ -39,20 +39,20 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include <stdio.h>
+ dnl See db-5.3.28/docs/upgrading/upgrade_4_3_stat.html.
+ AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>],
+-[[DB db; db.stat(&db,NULL,NULL,0);]])],
++[[DB *db; db_create(&db,NULL,0); db->stat(db,NULL,NULL,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])
+ fi
+ 
+-dnl <http://www.sleepycat.com/docs/ref/upgrade.4.3/err.html>
++dnl See db-5.3.28/docs/upgrading/upgrade_4_3_err.html.
+ AC_CACHE_CHECK([whether DB_ENV->set_errcall() accepts DBE],
+ ac_cv_dbe_set_errcall_accept_dbe,[
+ CFLAGS_save="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>
+ void my_callback (const DB_ENV* dbe, const char *errpfx, const char *msg) {}],
+-[[DB_ENV dbe; dbe.set_errcall(&dbe,&my_callback);]])],
++[[DB_ENV *dbe; db_env_create(&dbe,0); dbe->set_errcall(dbe,&my_callback);]])],
+ ac_cv_dbe_set_errcall_accept_dbe=yes,ac_cv_dbe_set_errcall_accept_dbe=no)
+ CFLAGS=$CFLAGS_save])
+ if test "$ac_cv_dbe_set_errcall_accept_dbe" = "yes"; then
+@@ -64,25 +64,25 @@ dnl unannounced!
+ AC_CACHE_CHECK([whether DB->get_transactional() accepts just 1 argument],
+ ac_cv_db_get_transactional_1arg,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>],
+-[[DB db; db.get_transactional(&db);]])],
++[[DB *db; db_create(&db,NULL,0); db->get_transactional(db);]])],
+ ac_cv_db_get_transactional_1arg=yes,ac_cv_db_get_transactional_1arg=no)])
+ if test "$ac_cv_db_get_transactional_1arg" = "yes"; then
+ AC_DEFINE(HAVE_DB_GET_TRANSACTIONAL_1ARG,1,
+ [Define to 1 if DB->get_transactional() accepts just 1 argument])
+ fi
+ 
+-dnl http://www.sleepycat.com/docs/ref/upgrade.4.4/lockstat.html
++dnl See db-5.3.28/docs/upgrading/upgrade_4_4_lockstat.html.
+ AC_CHECK_MEMBERS([DB_LOCK_STAT.st_nconflicts, DB_LOCK_STAT.st_lock_wait,
+ DB_LOCK_STAT.st_nnowaits, DB_LOCK_STAT.st_lock_nowait],,,[#include <db.h>])
+-dnl http://www.sleepycat.com/docs/ref/upgrade.4.4/mutex.html
++dnl See db-5.3.28/docs/upgrading/upgrade_4_4_mutex.html.
+ AC_CHECK_MEMBERS([DB_ENV.mutex_set_tas_spins, DB_ENV.mutex_get_tas_spins,
+ DB_ENV.mutex_set_align, DB_ENV.mutex_get_align],,,[#include <db.h>])
+ dnl http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/if.4.4.20.html
+ dnl *DIRTY* -> DB_READ_UNCOMMITTED; DEGREE_2 -> DB_READ_COMMITTED
+ AC_CHECK_DECLS([DB_LOCK_READ_UNCOMMITTED],,,[#include <db.h>])
+ 
+-dnl http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.7/log.html
+-dnl http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.7/interdir.html
++dnl See db-5.3.28/docs/upgrading/upgrade_4_7_log.html
++dnl and db-5.3.28/docs/upgrading/upgrade_4_7_interdir.html.
+ AC_CHECK_MEMBERS([DB_ENV.log_set_config, DB_ENV.get_intermediate_dir_mode],
+ ,,[#include <db.h>])
+ 
+#diff --git a/src/ChangeLog b/src/ChangeLog
+#index 0817fb4ab..522aed77d 100644
+#--- a/src/ChangeLog
+#+++ b/src/ChangeLog
+#@@ -1,3 +1,10 @@
+#+2024-11-09  Bruno Haible  <bruno at clisp.org>
+#+
+#+	berkeley-db: Fix configure test.
+#+	* modules/berkeley-db/configure.in: Avoid using uninitialized variables
+#+	in test programs, especially with -Werror.
+#+	* modules/berkeley-db/configure: Regenerated.
+#+
+# 2024-11-08  Bruno Haible  <bruno at clisp.org>
+# 
+# 	berkeley-db: Fix BDB:TXN-RECOVER on 64-bit platforms.
+-- 
+GitLab
+
diff --git a/clisp-gdbm.patch b/clisp-gdbm.patch
new file mode 100644
index 0000000..0494657
--- /dev/null
+++ b/clisp-gdbm.patch
@@ -0,0 +1,20 @@
+--- clisp-clisp-2.50/modules/gdbm/gdbm.c.orig	2018-09-22 18:54:56.000000000 +0200
++++ clisp-clisp-2.50/modules/gdbm/gdbm.c	2025-07-10 18:11:36.563348246 +0200
+@@ -66,7 +66,7 @@ DEFCHECKER(check_gdbm_errno, prefix=GDBM
+            READER-CANT-REORGANIZE UNKNOWN-UPDATE ITEM-NOT-FOUND              \
+            REORGANIZE-FAILED CANNOT-REPLACE ILLEGAL-DATA OPT-ALREADY-SET     \
+            OPT-ILLEGAL)
+-static _Noreturn void error_gdbm (char *fatal_message) {
++static _Noreturn void error_gdbm (const char *fatal_message) {
+   end_blocking_system_call(); /* in case we are called from _gdbm_fatal() */
+   pushSTACK(`GDBM::GDBM-ERROR`);
+   pushSTACK(`:MESSAGE`);
+@@ -126,7 +126,7 @@ static object open_gdbm (object path, in
+   GDBM_FILE gdbm;
+   with_string_0(path, GLO(pathname_encoding), name, {
+       SYSCALL(gdbm = gdbm_open(name, bsize, rw, mode,
+-                               (void (*)(void))error_gdbm));
++                               error_gdbm));
+     });
+   if (gdbm == NULL) error_gdbm(NULL);
+   return allocate_fpointer(gdbm);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/clisp.git/commitdiff/8a5dc248b5dbb719c88e2e552493c18609225da5



More information about the pld-cvs-commit mailing list