apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Gustafson <bob...@rcnChicago.com>
Subject PATCH - make way for BerkeleyDB4.1
Date Sun, 29 Dec 2002 07:19:15 GMT
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
[root@hoho0 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

Mime
View raw message