Package: clisp
Version: 2.44.1-4
Severity: normal
Tags: patch
Usertags: origin-ubuntu intrepid ubuntu-patch

Hi,

clisp FTBFS with bdb4.7:

gcc   -g -O2 -Igllib -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit 
-Wreturn-type -Wmissing-declarations -Wno-sign-compare -O -DUNICODE 
-DDYNAMIC_FFI -DDYNAMIC_MODULES -I. -fPIC -I.. -c 
bdb.m.c -o bdb.o
bdb.c: In function 'C_subr_bdb_dbe_set_options':
bdb.c:703: error: 'DB_DIRECT_LOG' undeclared (first use in this function)
bdb.c:703: error: (Each undeclared identifier is reported only once
bdb.c:703: error: for each function it appears in.)
bdb.c:709: error: 'DB_LOG_AUTOREMOVE' undeclared (first use in this function)
bdb.c: In function 'dbe_get_flags_list':
bdb.c:939: error: 'DB_LOG_AUTOREMOVE' undeclared (first use in this function)
bdb.c:943: error: 'DB_DIRECT_LOG' undeclared (first use in this function)
bdb.c: In function 'C_subr_bdb_dbe_get_options':
bdb.c:1104: error: 'DB_LOG_AUTOREMOVE' undeclared (first use in this function)
bdb.c:1110: error: 'DB_DIRECT_LOG' undeclared (first use in this function)
make[2]: *** [bdb.o] Error 1
make[2]: Leaving directory 
`/build/buildd/clisp-2.44.1/debian/build/berkeley-db'
make[1]: *** [berkeley-db] Error 2
make[1]: Leaving directory `/build/buildd/clisp-2.44.1/debian/build'
make: *** [build-stamp] Error 2

The problem is that the flags DB_DIRECT_LOG and DB_LOG_AUTOREMOVE are 
obsoleted in bdb 4.7, see:

http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.7/log.html

I patched it in Ubuntu with the attached patch which seems to work (clisp 
builds and passes all the tests in berkeley-db/test.tst)

I hope this can be useful for you too,

Cesare
Index: clisp-2.44.1/modules/berkeley-db/bdb.c
===================================================================
--- clisp-2.44.1.orig/modules/berkeley-db/bdb.c	2008-08-10 21:19:09.000000000 +0200
+++ clisp-2.44.1/modules/berkeley-db/bdb.c	2008-08-10 21:20:02.000000000 +0200
@@ -700,13 +700,13 @@
     set_flags(popSTACK(),&flags_on,&flags_off,DB_NOPANIC);
     set_flags(popSTACK(),&flags_on,&flags_off,DB_NOMMAP);
     set_flags(popSTACK(),&flags_on,&flags_off,DB_NOLOCKING);
-    set_flags(popSTACK(),&flags_on,&flags_off,DB_DIRECT_LOG);
+    set_flags(popSTACK(),&flags_on,&flags_off,DB_LOG_DIRECT);
 #  if defined(DB_LOG_INMEMORY)
     set_flags(popSTACK(),&flags_on,&flags_off,DB_LOG_INMEMORY);
 #  else
     skipSTACK(1);               /* skip :LOG-INMEMORY */
 #  endif
-    set_flags(popSTACK(),&flags_on,&flags_off,DB_LOG_AUTOREMOVE);
+    set_flags(popSTACK(),&flags_on,&flags_off,DB_LOG_AUTO_REMOVE);
 #  if defined(DB_DSYNC_LOG)
     set_flags(popSTACK(),&flags_on,&flags_off,DB_DSYNC_LOG);
 #  else
@@ -936,11 +936,11 @@
 #if defined(DB_LOG_INMEMORY)
   if (flags & DB_LOG_INMEMORY) { pushSTACK(`:LOG-INMEMORY`); count++; }
 #endif
-  if (flags & DB_LOG_AUTOREMOVE) { pushSTACK(`:LOG-AUTOREMOVE`); count++; }
+  if (flags & DB_LOG_AUTO_REMOVE) { pushSTACK(`:LOG-AUTOREMOVE`); count++; }
 #if defined(DB_DSYNC_LOG)
   if (flags & DB_DSYNC_LOG) { pushSTACK(`:DSYNC-LOG`); count++; }
 #endif
-  if (flags & DB_DIRECT_LOG) { pushSTACK(`:DIRECT-LOG`); count++; }
+  if (flags & DB_LOG_DIRECT) { pushSTACK(`:DIRECT-LOG`); count++; }
   if (flags & DB_CDB_ALLDB) { pushSTACK(`:CDB-ALLDB`); count++; }
   if (flags & DB_AUTO_COMMIT) { pushSTACK(`:AUTO-COMMIT`); count++; }
   SYSCALL(dbe->get_encrypt_flags,(dbe,&flags));
@@ -1101,13 +1101,13 @@
     VALUES_IF(dbe_get_flags_num(dbe) & DB_LOG_INMEMORY);
 #endif
   } else if (eq(what,`:LOG-AUTOREMOVE`)) {
-    VALUES_IF(dbe_get_flags_num(dbe) & DB_LOG_AUTOREMOVE);
+    VALUES_IF(dbe_get_flags_num(dbe) & DB_LOG_AUTO_REMOVE);
 #if defined(DB_DSYNC_LOG)
   } else if (eq(what,`:DSYNC-LOG`)) {
     VALUES_IF(dbe_get_flags_num(dbe) & DB_DSYNC_LOG);
 #endif
   } else if (eq(what,`:DIRECT-LOG`)) {
-    VALUES_IF(dbe_get_flags_num(dbe) & DB_DIRECT_LOG);
+    VALUES_IF(dbe_get_flags_num(dbe) & DB_LOG_DIRECT);
   } else if (eq(what,`:CDB-ALLDB`)) {
     VALUES_IF(dbe_get_flags_num(dbe) & DB_CDB_ALLDB);
   } else if (eq(what,`:AUTO-COMMIT`)) {
_______________________________________________
pkg-common-lisp-devel mailing list
pkg-common-lisp-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-common-lisp-devel

Reply via email to