aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/python/files/2.6/06_all_dbm_automagic.patch')
-rw-r--r--dev-lang/python/files/2.6/06_all_dbm_automagic.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/dev-lang/python/files/2.6/06_all_dbm_automagic.patch b/dev-lang/python/files/2.6/06_all_dbm_automagic.patch
new file mode 100644
index 0000000..9fc1031
--- /dev/null
+++ b/dev-lang/python/files/2.6/06_all_dbm_automagic.patch
@@ -0,0 +1,52 @@
+--- setup.py
++++ setup.py
+@@ -1137,16 +1137,11 @@
+
+ # The standard Unix dbm module:
+ if platform not in ['cygwin']:
+- if find_file("ndbm.h", inc_dirs, []) is not None:
+- # Some systems have -lndbm, others don't
+- if self.compiler.find_library_file(lib_dirs, 'ndbm'):
+- ndbm_libs = ['ndbm']
+- else:
+- ndbm_libs = []
+- exts.append( Extension('dbm', ['dbmmodule.c'],
+- define_macros=[('HAVE_NDBM_H',None)],
+- libraries = ndbm_libs ) )
+- elif self.compiler.find_library_file(lib_dirs, 'gdbm'):
++ # To prevent automagic dependencies check for relevant modules in
++ # disabled_module_list.
++ if (self.compiler.find_library_file(lib_dirs, 'gdbm')
++ and find_file("gdbm/ndbm.h", inc_dirs, []) is not None
++ and 'gdbm' not in disabled_module_list):
+ gdbm_libs = ['gdbm']
+ if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'):
+ gdbm_libs.append('gdbm_compat')
+@@ -1162,7 +1157,7 @@
+ libraries = gdbm_libs ) )
+ else:
+ missing.append('dbm')
+- elif db_incs is not None:
++ elif db_incs is not None and 'bsddb' not in disabled_module_list:
+ exts.append( Extension('dbm', ['dbmmodule.c'],
+ library_dirs=dblib_dir,
+ runtime_library_dirs=dblib_dir,
+@@ -1170,6 +1165,18 @@
+ define_macros=[('HAVE_BERKDB_H',None),
+ ('DB_DBM_HSEARCH',None)],
+ libraries=dblibs))
++ # Check for ndbm.h here after checking berkdb because ndbm.h is
++ # only provided by db-1*
++ elif (find_file("ndbm.h", inc_dirs, []) is not None
++ and 'bsddb' not in disabled_module_list):
++ # Some systems have -lndbm, others don't
++ if self.compiler.find_library_file(lib_dirs, 'ndbm'):
++ ndbm_libs = ['ndbm']
++ else:
++ ndbm_libs = []
++ exts.append( Extension('dbm', ['dbmmodule.c'],
++ define_macros=[('HAVE_NDBM_H',None)],
++ libraries = ndbm_libs ) )
+ else:
+ missing.append('dbm')
+