From: Gregory P. Smith Date: Fri, 24 Aug 2007 05:38:31 +0000 (+0000) Subject: On systems with both the ancient bsddb 1.85 library and a recent BerkeleyDB 4.x X-Git-Tag: v2.5.2c1~211 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79af4affd95dffb38f422327825ec3c1e2d957df;p=python On systems with both the ancient bsddb 1.85 library and a recent BerkeleyDB 4.x library installed both were detected so both modules were enabled. But the include path causes the recent BerkeleyDB's db.h file to be included causing the bsddb185 compile to fail. This disables building bsddb185 when both are present. --- diff --git a/setup.py b/setup.py index 6f60a9a95d..a983b3be25 100644 --- a/setup.py +++ b/setup.py @@ -837,8 +837,13 @@ class PyBuildExt(build_ext): # accidentally building this module with a later version of the # underlying db library. May BSD-ish Unixes incorporate db 1.85 # symbols into libc and place the include file in /usr/include. + # + # If the better bsddb library can be built (db_incs is defined) + # we do not build this one. Otherwise this build will pick up + # the more recent berkeleydb's db.h file first in the include path + # when attempting to compile and it will fail. f = "/usr/include/db.h" - if os.path.exists(f): + if os.path.exists(f) and not db_incs: data = open(f).read() m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) if m is not None: