Hi,
Attached is the beginning of a patch to get htdig to compile against
libdb4.3. It should be possible to port the version of the beta upstream
htdig (3.2.0b6) to the one in unstable (3.1.6). Since both libdb and
htlib changed their API, a bit of adaptation is necessary.
I did not yet try the resulting package, so please do not apply the
patch blindly.
Adriaan
diff -ur htdig/debian/htdig-3.1.6/debian/control htdig-3.1.6/debian/control
--- htdig/debian/htdig-3.1.6/debian/control 2006-07-20 22:16:49.000000000 +0200
+++ htdig-3.1.6/debian/control 2006-07-19 11:41:57.000000000 +0200
@@ -2,7 +2,7 @@
Section: web
Priority: optional
Maintainer: Robert Ribnitz <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>= 4.1.16), libdb2-dev, zlib1g-dev (>= 1:1.2.1)
+Build-Depends: debhelper (>= 4.1.16), libdb4.3-dev, zlib1g-dev (>= 1:1.2.1)
Standards-Version: 3.6.1
Package: htdig
diff -ur htdig/debian/htdig-3.1.6/htlib/DB2_db.cc htdig-3.1.6/htlib/DB2_db.cc
--- htdig/debian/htdig-3.1.6/htlib/DB2_db.cc 2002-02-01 00:47:17.000000000 +0100
+++ htdig-3.1.6/htlib/DB2_db.cc 2006-07-19 14:39:04.000000000 +0200
@@ -107,18 +107,21 @@
//
// Initialize the database environment.
//
- dbenv = db_init((char *)NULL);
- memset(&dbinfo, 0, sizeof(dbinfo));
-// dbinfo.db_cachesize = CACHE_SIZE_IN_KB * 1024; // Cachesize: 64K.
- dbinfo.db_pagesize = 1024; // Page size: 1K.
-
+ db_env_create(&dbenv, 0);
+// dbenv = db_init((char *)NULL);
+// if((dbenv = db_init((char *)NULL)) == 0) return NOTOK;
+
+// if(CDB_db_create((&dbp, dbenv, 0) != 0) return NOTOK;
+
//
// Create the database.
//
if (access(filename, F_OK) == 0)
- errno = db_open(filename, DB_BTREE, 0, 0, dbenv, &dbinfo, &dbp);
+ //errno = db_open(filename, DB_BTREE, 0, 0, dbenv, &dbinfo, &dbp);
+ errno = dbp->open(dbp, NULL, filename, NULL, DB_BTREE, 0, mode);
else
- errno = db_open(filename, DB_BTREE, DB_CREATE, mode, dbenv, &dbinfo, &dbp);
+ //errno = db_open(filename, DB_BTREE, DB_CREATE, mode, dbenv, &dbinfo, &dbp);
+ errno = dbp->open(dbp, NULL, filename, NULL, DB_BTREE, DB_CREATE, mode);
if (errno == 0)
{
//
@@ -150,16 +153,18 @@
//
// Initialize the database environment.
//
- dbenv = db_init((char *)NULL);
- memset(&dbinfo, 0, sizeof(dbinfo));
+ db_env_create(&dbenv, 0);
+// dbenv = db_init((char *)NULL);
+// memset(&dbinfo, 0, sizeof(dbinfo));
// dbinfo.db_cachesize = CACHE_SIZE_IN_KB * 1024; // Cachesize: 64K.
- dbinfo.db_pagesize = 1024; // Page size: 1K.
+// dbinfo.db_pagesize = 1024; // Page size: 1K.
//
// Open the database.
//
- if ((errno = db_open(filename, DB_BTREE, DB_RDONLY, 0, dbenv,
- &dbinfo, &dbp)) == 0)
+// if ((errno = db_open(filename, DB_BTREE, DB_RDONLY, 0, dbenv,
+// &dbinfo, &dbp)) == 0)
+ if ((errno = dbp->open(dbp, NULL, filename, NULL, DB_BTREE, DB_RDONLY, 0)) == 0)
{
//
// Acquire a cursor for the database.
@@ -194,7 +199,7 @@
//
(void)(dbcp->c_close)(dbcp);
(void)(dbp->close)(dbp, 0);
- (void) db_appexit(dbenv);
+ //(void) db_appexit(dbenv);
}
isOpen = 0;
return OK;
@@ -438,13 +443,13 @@
}
// dbenv->db_errfile = stderr;
dbenv->db_errpfx = progname;
- dbenv->db_errcall = &Error;
+ //dbenv->db_errcall = &Error;
- if ((errno = db_appinit(home, NULL, dbenv, DB_CREATE)) != 0)
- {
- fprintf(stderr, "%s: db_appinit: %s\n", progname, strerror(errno));
- exit (1);
- }
+// if ((errno = db_appinit(home, NULL, dbenv, DB_CREATE)) != 0)
+// {
+// fprintf(stderr, "%s: db_appinit: %s\n", progname, strerror(errno));
+// exit (1);
+// }
return (dbenv);
}
diff -ur htdig/debian/htdig-3.1.6/htlib/DB2_db.h htdig-3.1.6/htlib/DB2_db.h
--- htdig/debian/htdig-3.1.6/htlib/DB2_db.h 2006-07-20 22:16:49.000000000 +0200
+++ htdig-3.1.6/htlib/DB2_db.h 2006-07-19 14:21:57.000000000 +0200
@@ -53,7 +53,7 @@
DBC *dbcp; // cursor
DBT skey;
DB_ENV *dbenv; // database enviroment
- DB_INFO dbinfo;
+// DB_INFO dbinfo;
String lkey;
int seqrc;
diff -ur htdig/debian/htdig-3.1.6/Makefile.config.in htdig-3.1.6/Makefile.config.in
--- htdig/debian/htdig-3.1.6/Makefile.config.in 2006-07-20 22:16:49.000000000 +0200
+++ htdig-3.1.6/Makefile.config.in 2006-07-19 14:44:44.000000000 +0200
@@ -27,7 +27,7 @@
LIBDIRS= -L../htlib -L../htcommon -L/usr/lib
INCS= -I$(top_srcdir)/htlib -I$(top_srcdir)/htcommon \
-I../include
-DB2LIB= $(shell if [ -f /lib/libdb.so.3 ]; then echo -ldb; else echo -ldb2; fi)
+DB2LIB= -ldb-4
HTLIBS= ../htcommon/libcommon.a \
../htlib/libht.a \
$(DB2LIB)