In going to version 4.1, BerkeleyDB added an extra argument in the call to db-create
The symptom as I saw it first was: /bin/sh /usr/local/src/apache/httpd-2.0.43/srclib/apr/libtool --silent --mode=co mpile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_XOPEN_SOUR CE=500 -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -I/usr/local/src/apache/http d-2.0.43/srclib/apr-util/include -I/usr/local/src/apache/httpd-2.0.43/srclib/apr -util/include/private -I/usr/local/src/apache/httpd-2.0.43/srclib/apr/include -I/usr/local/BerkeleyDB.4.1/include -c apr_dbm_berkeleydb.c && touch apr_dbm_be rkeleydb.lo apr_dbm_berkeleydb.c: In function `vt_db_open': apr_dbm_berkeleydb.c:200: warning: passing arg 2 of pointer to function from inc ompatible pointer type apr_dbm_berkeleydb.c:200: warning: passing arg 4 of pointer to function makes po inter from integer without a cast apr_dbm_berkeleydb.c:200: too few arguments to function make[4]: *** [apr_dbm_berkeleydb.lo] Error 1 make[4]: Leaving directory `/usr/local/src/apache/httpd-2.0.43/srclib/apr-util/d bm' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/local/src/apache/httpd-2.0.43/srclib/apr-util/d bm' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/local/src/apache/httpd-2.0.43/srclib/apr-util' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/apache/httpd-2.0.43/srclib' make: *** [all-recursive] Error 1 [EMAIL PROTECTED] httpd-2.0.43]# The attached patch allows apr_util to make and install. It is still early in my testing, so handle with care. My system is a p2 linux (more or less RH 7.3) The configure command used was: ./configure --enable-mainainer-mode \ --enable-ssl --with-ssl=/usr/local/lib \ --enable-dav --enable-so \ --enable-deflate \ --with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.1 \ 2>&1 | tee config.out (Hmm, maintainer is misspelled - I wonder what effect that has..) Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="74747874"; name="patch.pat" Content-Transfer-Encoding: 7bit Content-Description: Unknown Document Content-Disposition: inline; filename="patch.pat" --- apr_dbm_berkeleydb.c.orig Sat Dec 7 20:38:52 2002 +++ apr_dbm_berkeleydb.c Sat Dec 7 20:41:03 2002 @@ -75,7 +75,7 @@ #if defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 4) /* At this time, there are no differences from our perspective between * DB3 and DB4. */ -#define DB_VER 3 +#define DB_VER 4 #elif defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 3) #define DB_VER 3 #elif defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 2) @@ -192,8 +192,19 @@ { int dberr; - -#if DB_VER == 3 +#if DB_VER == 4 + // crap out here RDG + DB_ENV *dbenv; + if ((dberr = db_create(&file.bdb, dbenv, 0)) == 0) { + if ((dberr = (*file.bdb->open)(file.bdb, NULL, pathname, NULL, + DB_HASH, dbmode, + apr_posix_perms2mode(perm))) != 0) { + /* close the DB handler */ + (void) (*file.bdb->close)(file.bdb, 0); + } + } + file.curs = NULL; +#elif DB_VER == 3 if ((dberr = db_create(&file.bdb, NULL, 0)) == 0) { if ((dberr = (*file.bdb->open)(file.bdb, pathname, NULL, DB_HASH, dbmode, @@ -339,7 +350,9 @@ dberr = (*f->bdb->seq)(f->bdb, &first, &data, R_FIRST); #else if ((dberr = (*f->bdb->cursor)(f->bdb, NULL, &f->curs -#if DB_VER == 3 +#if DB_VER == 4 + , 0 +#elif DB_VER == 3 , 0 #elif (DB_VERSION_MAJOR == 2) && (DB_VERSION_MINOR > 5) , 0