From 88f669a757402eb7cb513ef80ea1137089f810ac Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Tue, 24 Jan 2006 10:02:02 +0000 Subject: backport of commit 42169 adds support for compiling against BerkeleyDB 4.4.x --- Modules/_bsddb.c | 18 ++++++++++++++++-- setup.py | 8 +++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index ab10e76..0ef797c 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -97,7 +97,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.3.0" +#define PY_BSDDB_VERSION "4.3.0.1" static char *rcs_id = "$Id$"; @@ -4099,8 +4099,13 @@ DBEnv_lock_stat(DBEnvObject* self, PyObject* args) #endif MAKE_ENTRY(nrequests); MAKE_ENTRY(nreleases); - MAKE_ENTRY(nnowaits); +#if (DBVER < 44) + MAKE_ENTRY(nnowaits); /* these were renamed in 4.4 */ MAKE_ENTRY(nconflicts); +#else + MAKE_ENTRY(lock_nowait); + MAKE_ENTRY(lock_wait); +#endif MAKE_ENTRY(ndeadlocks); MAKE_ENTRY(regsize); MAKE_ENTRY(region_wait); @@ -4936,7 +4941,11 @@ DL_EXPORT(void) init_bsddb(void) ADD_INT(d, DB_LOCK_IREAD); ADD_INT(d, DB_LOCK_IWR); #if (DBVER >= 33) +#if (DBVER < 44) ADD_INT(d, DB_LOCK_DIRTY); +#else + ADD_INT(d, DB_LOCK_READ_UNCOMMITTED); /* renamed in 4.4 */ +#endif ADD_INT(d, DB_LOCK_WWRITE); #endif @@ -5038,6 +5047,11 @@ DL_EXPORT(void) init_bsddb(void) ADD_INT(d, DB_MULTIPLE_KEY); #endif +#if (DBVER >= 44) + ADD_INT(d, DB_READ_UNCOMMITTED); /* replaces DB_DIRTY_READ in 4.4 */ + ADD_INT(d, DB_READ_COMMITTED); +#endif + #if (DBVER >= 33) ADD_INT(d, DB_DONOTINDEX); #endif diff --git a/setup.py b/setup.py index 9b62905..476b43d 100644 --- a/setup.py +++ b/setup.py @@ -485,12 +485,12 @@ class PyBuildExt(build_ext): # Sleepycat Berkeley DB interface. http://www.sleepycat.com # # This requires the Sleepycat DB code. The earliest supported version - # of that library is 3.2, the latest supported version is 4.3. A list + # of that library is 3.2, the latest supported version is 4.4. A list # of available releases can be found at # # http://www.sleepycat.com/update/index.html - max_db_ver = (4, 3) + max_db_ver = (4, 4) min_db_ver = (3, 2) db_setup_debug = False # verbose debug prints from this script? @@ -507,17 +507,19 @@ class PyBuildExt(build_ext): '/sw/include/db3', ] # 4.x minor number specific paths - for x in (0,1,2,3): + for x in (0,1,2,3,4): db_inc_paths.append('/usr/include/db4%d' % x) db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) db_inc_paths.append('/usr/local/include/db4%d' % x) db_inc_paths.append('/pkg/db-4.%d/include' % x) + db_inc_paths.append('/opt/db-4.%d/include' % x) # 3.x minor number specific paths for x in (2,3): db_inc_paths.append('/usr/include/db3%d' % x) db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) db_inc_paths.append('/usr/local/include/db3%d' % x) db_inc_paths.append('/pkg/db-3.%d/include' % x) + db_inc_paths.append('/opt/db-3.%d/include' % x) db_ver_inc_map = {} -- cgit v0.12