Commit e43bd62b authored by Gregory P. Smith's avatar Gregory P. Smith

Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module

parent 9e780cc4
...@@ -630,16 +630,15 @@ class PyBuildExt(build_ext): ...@@ -630,16 +630,15 @@ class PyBuildExt(build_ext):
# implementation independent wrapper for these; dumbdbm.py provides # implementation independent wrapper for these; dumbdbm.py provides
# similar functionality (but slower of course) implemented in Python. # 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 # 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 # a release. Most open source OSes come with one or more
# versions of BerkeleyDB already installed. # versions of BerkeleyDB already installed.
# XXX(gps) - Do not allow BerkeleyDB 4.6.x until Oracle fixes max_db_ver = (4, 6)
# the DB_HASH lockup bug that is present in 4.6.19.
max_db_ver = (4, 5)
min_db_ver = (3, 3) min_db_ver = (3, 3)
db_setup_debug = False # verbose debug prints from this script? db_setup_debug = False # verbose debug prints from this script?
...@@ -710,6 +709,15 @@ class PyBuildExt(build_ext): ...@@ -710,6 +709,15 @@ class PyBuildExt(build_ext):
db_minor = int(m.group(1)) db_minor = int(m.group(1))
db_ver = (db_major, db_minor) 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 if ( (db_ver not in db_ver_inc_map) and
(db_ver <= max_db_ver and db_ver >= min_db_ver) ): (db_ver <= max_db_ver and db_ver >= min_db_ver) ):
# save the include directory with the db.h version # save the include directory with the db.h version
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment