summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2007-10-06 08:23:10 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2007-10-06 08:23:10 (GMT)
commite43bd62b87b450bbd37e25629c6c3e8b1c75beae (patch)
treefc20e46f99690f7d9924765de9ad1b27c4b0c0c2
parent9e780cc4e7466fdaf657633eabbc69974949be32 (diff)
downloadcpython-e43bd62b87b450bbd37e25629c6c3e8b1c75beae.zip
cpython-e43bd62b87b450bbd37e25629c6c3e8b1c75beae.tar.gz
cpython-e43bd62b87b450bbd37e25629c6c3e8b1c75beae.tar.bz2
Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
-rw-r--r--setup.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/setup.py b/setup.py
index de655fe..e441d06 100644
--- a/setup.py
+++ b/setup.py
@@ -630,16 +630,15 @@ class PyBuildExt(build_ext):
# implementation independent wrapper for these; dumbdbm.py provides
# similar functionality (but slower of course) implemented in Python.
- # Sleepycat^WOracle Berkeley DB interface. http://www.sleepycat.com
+ # Sleepycat^WOracle Berkeley DB interface.
+ # http://www.oracle.com/database/berkeley-db/db/index.html
#
# This requires the Sleepycat^WOracle DB code. The supported versions
- # are set below. Visit http://www.sleepycat.com/ to download
+ # are set below. Visit the URL above to download
# a release. Most open source OSes come with one or more
# versions of BerkeleyDB already installed.
- # XXX(gps) - Do not allow BerkeleyDB 4.6.x until Oracle fixes
- # the DB_HASH lockup bug that is present in 4.6.19.
- max_db_ver = (4, 5)
+ max_db_ver = (4, 6)
min_db_ver = (3, 3)
db_setup_debug = False # verbose debug prints from this script?
@@ -710,6 +709,15 @@ class PyBuildExt(build_ext):
db_minor = int(m.group(1))
db_ver = (db_major, db_minor)
+ # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug
+ if db_ver == (4, 6):
+ m = re.search(r"#define\WDB_VERSION_PATCH\W(\d+)", f)
+ db_patch = int(m.group(1))
+ if db_patch < 21:
+ print("db.h:", db_ver, "patch", db_patch,
+ "being ignored (4.6.x must be >= 4.6.21)")
+ continue
+
if ( (db_ver not in db_ver_inc_map) and
(db_ver <= max_db_ver and db_ver >= min_db_ver) ):
# save the include directory with the db.h version