http://bugs.gentoo.org/319421 http://svn.apache.org/viewvc/apr/apr-util/branches/1.3.x/dbm/apr_dbm_berkeleydb.c?r1=719535&r2=938146&view=patch http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/~checkout~/packages/apr-util/apr-util-db.patch?rev=1.1;content-type=text%2Fplain --- build/dbm.m4 +++ build/dbm.m4 @@ -112,7 +112,7 @@ changequote([,]) unset $cache_id AC_CHECK_HEADER([$bdb_header], [ - if test "$1" = "3" -o "$1" = "4"; then + if test "$1" = "3" -o "$1" = "4" -o "$1" = "5"; then # We generate a separate cache variable for each prefix and libname # we search under. That way, we avoid caching information that # changes if the user runs `configure' with a different set of @@ -541,6 +541,26 @@ apu_db_version=4 fi ]) +dnl +dnl APU_CHECK_DB50: is DB5.0 present? +dnl +dnl if present: sets apu_db_header, apu_db_lib, and apu_db_version +dnl +dnl +AC_DEFUN([APU_CHECK_DB50], [ + places=$1 + if test -z "$places"; then + places="std /usr/local/BerkeleyDB.5.0 /boot/home/config" + fi + APU_CHECK_BERKELEY_DB("5", "0", "-1", + "$places", + "db50/db.h db5/db.h db.h", + "db-5.0 db5-5.0 db50 db5 db" + ) + if test "$apu_have_db" = "1"; then + apu_db_version=5 + fi +]) AC_DEFUN([APU_CHECK_DB], [ requested=$1 @@ -631,6 +651,12 @@ AC_MSG_ERROR(Berkeley db4 not found) fi ;; + db50) + APU_CHECK_DB50("$check_places") + if test "$apu_db_version" != "5"; then + AC_MSG_ERROR(Berkeley db5 not found) + fi + ;; default) APU_CHECK_DB_ALL("$check_places") ;; @@ -638,36 +664,39 @@ ]) dnl -dnl APU_CHECK_DB_ALL: Try all Berkeley DB versions, from 4.8 to 1. +dnl APU_CHECK_DB_ALL: Try all Berkeley DB versions, from 5.0 to 1. dnl AC_DEFUN([APU_CHECK_DB_ALL], [ all_places=$1 - - APU_CHECK_DB48("$all_places") - if test "$apu_db_version" != "4"; then - APU_CHECK_DB47("$all_places") + + APU_CHECK_DB50("$all_places") + if test "$apu_db_version" != "5"; then + APU_CHECK_DB48("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB46("$all_places") + APU_CHECK_DB47("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB45("$all_places") + APU_CHECK_DB46("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB44("$all_places") + APU_CHECK_DB45("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB43("$all_places") + APU_CHECK_DB44("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB42("$all_places") + APU_CHECK_DB43("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB41("$all_places") + APU_CHECK_DB42("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB4("$all_places") + APU_CHECK_DB41("$all_places") if test "$apu_db_version" != "4"; then - APU_CHECK_DB3("$all_places") - if test "$apu_db_version" != "3"; then - APU_CHECK_DB2("$all_places") - if test "$apu_db_version" != "2"; then - APU_CHECK_DB1("$all_places") - if test "$apu_db_version" != "1"; then - APU_CHECK_DB185("$all_places") + APU_CHECK_DB4("$all_places") + if test "$apu_db_version" != "4"; then + APU_CHECK_DB3("$all_places") + if test "$apu_db_version" != "3"; then + APU_CHECK_DB2("$all_places") + if test "$apu_db_version" != "2"; then + APU_CHECK_DB1("$all_places") + if test "$apu_db_version" != "1"; then + APU_CHECK_DB185("$all_places") + fi fi fi fi @@ -707,7 +736,7 @@ apu_db_version=0 AC_ARG_WITH(dbm, [APR_HELP_STRING([--with-dbm=DBM], [choose the DBM type to use. - DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44,db45,db46,db47,db48}])], + DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44,db45,db46,db47,db48,db50}])], [ if test "$withval" = "yes"; then AC_MSG_ERROR([--with-dbm needs to specify a DBM type to use. @@ -914,6 +943,10 @@ apu_use_db=1 apu_default_dbm=db4 ;; + db50) + apu_use_db=1 + apu_default_dbm=db5 + ;; default) dnl ### use more sophisticated DBMs for the default? apu_default_dbm="sdbm (default)" @@ -921,7 +954,7 @@ ;; *) AC_MSG_ERROR([--with-dbm=$look_for is an unknown DBM type. - Use one of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46, db47, db48]) + Use one of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46, db47, db48, db50]) ;; esac --- dbm/apr_dbm_berkeleydb.c +++ dbm/apr_dbm_berkeleydb.c @@ -37,13 +37,13 @@ * DB_185, DB2, DB3, and DB4. */ -#if defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 4) +#if defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR >= 4) /* We will treat anything greater than 4.1 as DB4. * We can treat 4.0 as DB3. */ -#if defined(DB_VERSION_MINOR) && (DB_VERSION_MINOR >= 1) +#if DB_VERSION_MAJOR > 4 || (defined(DB_VERSION_MINOR) && (DB_VERSION_MINOR >= 1)) #define DB_VER 4 -#else +#elif DB_VERSION_MAJOR == 4 #define DB_VER 3 #endif #elif defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 3)