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