diff options
author | sbd <sbd@pkgsrc.org> | 2011-10-31 06:50:53 +0000 |
---|---|---|
committer | sbd <sbd@pkgsrc.org> | 2011-10-31 06:50:53 +0000 |
commit | 5c40bfdabd6d0209fd23d0022a4fbc2af1d1a63a (patch) | |
tree | 96fb10aeb62b081653b3936ffb63cca8a29acf7c | |
parent | fb79eb46833f8ddb894b459541eb17030a6054e2 (diff) | |
download | pkgsrc-5c40bfdabd6d0209fd23d0022a4fbc2af1d1a63a.tar.gz |
Improve the gdbm_compat handling by searching any ndbm.h found for the
string 'This file is part of GDBM' and ignoring it if it dose.
Thanks to obache@ for the idea.
-rw-r--r-- | lang/python24/distinfo | 4 | ||||
-rw-r--r-- | lang/python24/patches/patch-am | 42 | ||||
-rw-r--r-- | lang/python25/distinfo | 4 | ||||
-rw-r--r-- | lang/python25/patches/patch-am | 45 | ||||
-rw-r--r-- | lang/python26/distinfo | 4 | ||||
-rw-r--r-- | lang/python26/patches/patch-am | 47 | ||||
-rw-r--r-- | lang/python31/distinfo | 4 | ||||
-rw-r--r-- | lang/python31/patches/patch-am | 71 |
8 files changed, 151 insertions, 70 deletions
diff --git a/lang/python24/distinfo b/lang/python24/distinfo index ba4e5edee73..30450c695e8 100644 --- a/lang/python24/distinfo +++ b/lang/python24/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.36 2011/10/18 21:59:17 sbd Exp $ +$NetBSD: distinfo,v 1.37 2011/10/31 06:50:53 sbd Exp $ SHA1 (Python-2.4.6.tar.bz2) = cb1972a554a458f6a26d3e047b359251865d7c96 RMD160 (Python-2.4.6.tar.bz2) = 0687989193dec2ac108142759281be7ddcf7f31e @@ -15,7 +15,7 @@ SHA1 (patch-ai) = 6435c5a7269c14d94eab6fb9777b9d059507e7b8 SHA1 (patch-aj) = e471737ade95423039661b475f2dd0fc27aa9dac SHA1 (patch-ak) = 4c6708eb29757179e6855d8fbe78cab92c5a18d5 SHA1 (patch-al) = 3bcbdcacc451c8a354ea2d9e9887e61edaabfa41 -SHA1 (patch-am) = 3db16b0d139c9ae113378aeb94a4cdf9828148ce +SHA1 (patch-am) = ffa0c2c37bdcfe121d4bb10be6c76d06b77fcca6 SHA1 (patch-an) = 0ae5b3d547c7dbe1366c5ae6c60c11516e4550b8 SHA1 (patch-ao) = 1ef48142acd8b591b11013b46048d9145f235843 SHA1 (patch-ap) = 8fbfecdb80ee851db569b64201ccd94bd3552a81 diff --git a/lang/python24/patches/patch-am b/lang/python24/patches/patch-am index e2e4671bea4..44d081f29b3 100644 --- a/lang/python24/patches/patch-am +++ b/lang/python24/patches/patch-am @@ -1,4 +1,4 @@ -$NetBSD: patch-am,v 1.7 2011/10/18 21:59:17 sbd Exp $ +$NetBSD: patch-am,v 1.8 2011/10/31 06:50:53 sbd Exp $ --- setup.py.orig 2006-10-08 17:41:25.000000000 +0000 +++ setup.py @@ -52,7 +52,7 @@ $NetBSD: patch-am,v 1.7 2011/10/18 21:59:17 sbd Exp $ if (ssl_incs is not None and ssl_libs is not None): -@@ -515,168 +517,51 @@ +@@ -515,172 +517,79 @@ # similar functionality (but slower of course) implemented in Python. # Sleepycat Berkeley DB interface. http://www.sleepycat.com @@ -261,13 +261,37 @@ $NetBSD: patch-am,v 1.7 2011/10/18 21:59:17 sbd Exp $ # The standard Unix dbm module: if platform not in ['cygwin']: -@@ -686,16 +571,21 @@ +- if find_file("ndbm.h", inc_dirs, []) is not None: ++ ++ ## Top half based on find_file ++ def find_ndbm_h(dirs): ++ ret = None ++ if sys.platform == 'darwin': ++ sysroot = macosx_sdk_root() ++ for dir in dirs: ++ f = os.path.join(dir, 'ndbm.h') ++ if sys.platform == 'darwin' and is_macosx_sdk_path(dir): ++ f = os.path.join(sysroot, dir[1:], filename) ++ if not os.path.exists(f): continue ++ ++ ret = 'True' ++ input = text_file.TextFile(f) ++ while 1: ++ line = input.readline() ++ if not line: break ++ if re.search('This file is part of GDBM', line): ++ ret = None ++ break ++ input.close() ++ break ++ return ret ++ ++ if find_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'], -+ if not self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): -+ exts.append( Extension('dbm', ['dbmmodule.c'], +@@ -689,13 +598,17 @@ + exts.append( Extension('dbm', ['dbmmodule.c'], define_macros=[('HAVE_NDBM_H',None)], libraries = ndbm_libs ) ) - elif (self.compiler.find_library_file(lib_dirs, 'gdbm') @@ -291,7 +315,7 @@ $NetBSD: patch-am,v 1.7 2011/10/18 21:59:17 sbd Exp $ library_dirs=dblib_dir, runtime_library_dirs=dblib_dir, include_dirs=db_incs, -@@ -1224,8 +1114,8 @@ +@@ -1224,8 +1137,8 @@ ext_modules=[Extension('struct', ['structmodule.c'])], # Scripts to install diff --git a/lang/python25/distinfo b/lang/python25/distinfo index e06009c62db..6708d6d3505 100644 --- a/lang/python25/distinfo +++ b/lang/python25/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.18 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: distinfo,v 1.19 2011/10/31 06:50:54 sbd Exp $ SHA1 (Python-2.5.6.tar.bz2) = 29f6dd41bf09c5e04311b367cbb7604fa016e699 RMD160 (Python-2.5.6.tar.bz2) = 92f0a955971f187a7d50c6422168202ec551bf22 @@ -15,7 +15,7 @@ SHA1 (patch-ai) = a89bee00860910f53a23b1c670d9c091846a03c1 SHA1 (patch-aj) = a75d680a6b8b1ad3c9222dcb841f4fb10db6d16d SHA1 (patch-ak) = 948362c15ad59abeef46971f9b870b70655a62c7 SHA1 (patch-al) = a4e28f73d8da2f83fcfbb5daec8d7c2c5bb4ff7f -SHA1 (patch-am) = ba4a651cc5ab930c9b2abd030d6376110b5d90fa +SHA1 (patch-am) = a6d7484812a66eb0c474085e6020357911d0a1a5 SHA1 (patch-an) = 17b4e17b3b562c29a050e9bb20447084ce82b8ab SHA1 (patch-ao) = 9bbd5561c010e0a1ab8e0a70d27a5f77fd2089d2 SHA1 (patch-ap) = b864db92761c843a91374663bd2dbcfa57b317cf diff --git a/lang/python25/patches/patch-am b/lang/python25/patches/patch-am index 323b3ade935..e8a631a9718 100644 --- a/lang/python25/patches/patch-am +++ b/lang/python25/patches/patch-am @@ -1,4 +1,4 @@ -$NetBSD: patch-am,v 1.8 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: patch-am,v 1.9 2011/10/31 06:50:54 sbd Exp $ --- setup.py.orig 2008-10-16 18:58:19.000000000 +0000 +++ setup.py @@ -41,7 +41,7 @@ $NetBSD: patch-am,v 1.8 2011/10/18 21:59:18 sbd Exp $ if (ssl_incs is not None and ssl_libs is not None): -@@ -609,269 +613,51 @@ class PyBuildExt(build_ext): +@@ -609,273 +613,79 @@ class PyBuildExt(build_ext): # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. @@ -350,14 +350,37 @@ $NetBSD: patch-am,v 1.8 2011/10/18 21:59:18 sbd Exp $ # The standard Unix dbm module: if platform not in ['cygwin']: -@@ -881,15 +667,13 @@ class PyBuildExt(build_ext): - ndbm_libs = ['ndbm'] - else: - ndbm_libs = [] -- exts.append( Extension('dbm', ['dbmmodule.c'], +- if find_file("ndbm.h", inc_dirs, []) is not None: ++ ++ ## Top half based on find_file ++ def find_ndbm_h(dirs): ++ ret = None ++ if sys.platform == 'darwin': ++ sysroot = macosx_sdk_root() ++ for dir in dirs: ++ f = os.path.join(dir, 'ndbm.h') ++ if sys.platform == 'darwin' and is_macosx_sdk_path(dir): ++ f = os.path.join(sysroot, dir[1:], filename) ++ if not os.path.exists(f): continue + -+ if not self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): -+ exts.append( Extension('dbm', ['dbmmodule.c'], ++ ret = 'True' ++ input = text_file.TextFile(f) ++ while 1: ++ line = input.readline() ++ if not line: break ++ if re.search('This file is part of GDBM', line): ++ ret = None ++ break ++ input.close() ++ break ++ return ret ++ ++ if find_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'] +@@ -884,12 +694,8 @@ class PyBuildExt(build_ext): + exts.append( Extension('dbm', ['dbmmodule.c'], define_macros=[('HAVE_NDBM_H',None)], libraries = ndbm_libs ) ) - elif (self.compiler.find_library_file(lib_dirs, 'gdbm') @@ -371,7 +394,7 @@ $NetBSD: patch-am,v 1.8 2011/10/18 21:59:18 sbd Exp $ exts.append( Extension('dbm', ['dbmmodule.c'], library_dirs=dblib_dir, runtime_library_dirs=dblib_dir, -@@ -899,9 +683,9 @@ class PyBuildExt(build_ext): +@@ -899,9 +705,9 @@ class PyBuildExt(build_ext): libraries=dblibs)) # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: @@ -384,7 +407,7 @@ $NetBSD: patch-am,v 1.8 2011/10/18 21:59:18 sbd Exp $ # Unix-only modules if platform not in ['mac', 'win32']: -@@ -1536,8 +1320,8 @@ def main(): +@@ -1536,8 +1342,8 @@ def main(): ext_modules=[Extension('_struct', ['_struct.c'])], # Scripts to install diff --git a/lang/python26/distinfo b/lang/python26/distinfo index e03bfd60bcb..907711ecdee 100644 --- a/lang/python26/distinfo +++ b/lang/python26/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.39 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: distinfo,v 1.40 2011/10/31 06:50:54 sbd Exp $ SHA1 (Python-2.6.7.tar.bz2) = 5d35eb746e85fb3deaff8518448137c9b9fb6daa RMD160 (Python-2.6.7.tar.bz2) = 513e84a7cb76ca876e3803bb03ed558bd0378063 @@ -14,7 +14,7 @@ SHA1 (patch-ad) = a997e39d16a8f0023125362b180d19ee97ab519b SHA1 (patch-ae) = a6d578b5f12eb42fbbcc11791576d2686a4807d9 SHA1 (patch-ah) = 501d220b41e578402f3400fe88e582aa2408a147 SHA1 (patch-al) = e18800d53de022e4c24055f7d03b69af2837b089 -SHA1 (patch-am) = 740d3b3b0793d7ed152438b9dacbae457dc71076 +SHA1 (patch-am) = 154b1d4fd7b5f7767dc383867390aa55d476e824 SHA1 (patch-an) = 17b4e17b3b562c29a050e9bb20447084ce82b8ab SHA1 (patch-ao) = 8c6a156b0f0c2a6d319658477fff348e6a0c3603 SHA1 (patch-ap) = d23a869a449ab9dc166cfa149913b20c9acad9cb diff --git a/lang/python26/patches/patch-am b/lang/python26/patches/patch-am index 05347373919..1327accae0a 100644 --- a/lang/python26/patches/patch-am +++ b/lang/python26/patches/patch-am @@ -1,4 +1,4 @@ -$NetBSD: patch-am,v 1.17 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: patch-am,v 1.18 2011/10/31 06:50:54 sbd Exp $ Disabled modules for normal build: bsddb @@ -261,7 +261,7 @@ support building the "nis" and "crypt" modules. # The sqlite interface sqlite_setup_debug = False # verbose debug prints from this script? -@@ -1094,31 +956,12 @@ +@@ -1094,35 +956,40 @@ # 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. @@ -298,14 +298,37 @@ support building the "nis" and "crypt" modules. # The standard Unix dbm module: if platform not in ['cygwin']: -@@ -1128,10 +971,12 @@ +- if find_file("ndbm.h", inc_dirs, []) is not None: ++ ++ ## Top half based on find_file ++ def find_ndbm_h(dirs): ++ ret = None ++ if sys.platform == 'darwin': ++ sysroot = macosx_sdk_root() ++ for dir in dirs: ++ f = os.path.join(dir, 'ndbm.h') ++ if sys.platform == 'darwin' and is_macosx_sdk_path(dir): ++ f = os.path.join(sysroot, dir[1:], filename) ++ if not os.path.exists(f): continue ++ ++ ret = 'True' ++ input = text_file.TextFile(f) ++ while 1: ++ line = input.readline() ++ if not line: break ++ if re.search('This file is part of GDBM', line): ++ ret = None ++ break ++ input.close() ++ break ++ return ret ++ ++ if find_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'], -+ # Don't use gdbm_compat! -+ if not self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): -+ exts.append( Extension('dbm', ['dbmmodule.c'], +@@ -1131,7 +998,7 @@ + exts.append( Extension('dbm', ['dbmmodule.c'], define_macros=[('HAVE_NDBM_H',None)], libraries = ndbm_libs ) ) - elif self.compiler.find_library_file(lib_dirs, 'gdbm'): @@ -313,7 +336,7 @@ support building the "nis" and "crypt" modules. gdbm_libs = ['gdbm'] if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): gdbm_libs.append('gdbm_compat') -@@ -1147,14 +990,12 @@ +@@ -1147,14 +1014,12 @@ libraries = gdbm_libs ) ) else: missing.append('dbm') @@ -331,7 +354,7 @@ support building the "nis" and "crypt" modules. else: missing.append('dbm') -@@ -1408,6 +1248,14 @@ +@@ -1408,6 +1273,14 @@ ) libraries = [] @@ -346,7 +369,7 @@ support building the "nis" and "crypt" modules. else: # Linux and other unices macros = dict( HAVE_SEM_OPEN=1, -@@ -2026,9 +1874,9 @@ +@@ -2026,9 +1899,9 @@ ext_modules=[Extension('_struct', ['_struct.c'])], # Scripts to install diff --git a/lang/python31/distinfo b/lang/python31/distinfo index 59deba0ea67..4eb6d907f0e 100644 --- a/lang/python31/distinfo +++ b/lang/python31/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.4 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: distinfo,v 1.5 2011/10/31 06:50:54 sbd Exp $ SHA1 (Python-3.1.4.tar.bz2) = 043d0240247f289205deeb0e620d799005202b3c RMD160 (Python-3.1.4.tar.bz2) = d537706808b00989a636418b6b6a06357b6bb94b @@ -7,7 +7,7 @@ SHA1 (patch-aa) = ae156c486007cfd14d378dd211108d3af4b841b1 SHA1 (patch-ab) = 7d4d6aa9239f53f1ce9ecd377890d71557c58ca4 SHA1 (patch-ah) = f93c0aab7b0d5e8e9f80433dda5ed5a22861f6b9 SHA1 (patch-al) = 48e348c64cf54756cf5b10254661ac089bec3e0a -SHA1 (patch-am) = c7861e5c3bee63efa360218a2ff4685a23b45a3e +SHA1 (patch-am) = dcc335f48a33c23275e07fa0e8f775917c770623 SHA1 (patch-an) = 933acde107b735931d26ace4eef251000b9f07ba SHA1 (patch-ao) = dca396744edc5c0f86c8912bf54347a630cd865b SHA1 (patch-au) = a2cefb240d91121315d02104416324c971af6a20 diff --git a/lang/python31/patches/patch-am b/lang/python31/patches/patch-am index 2e291d574ee..14475c61048 100644 --- a/lang/python31/patches/patch-am +++ b/lang/python31/patches/patch-am @@ -1,4 +1,4 @@ -$NetBSD: patch-am,v 1.3 2011/10/18 21:59:18 sbd Exp $ +$NetBSD: patch-am,v 1.4 2011/10/31 06:50:55 sbd Exp $ --- setup.py.orig 2011-06-11 15:48:52.000000000 +0000 +++ setup.py @@ -41,36 +41,47 @@ $NetBSD: patch-am,v 1.3 2011/10/18 21:59:18 sbd Exp $ if (ssl_incs is not None and ssl_libs is not None): -@@ -1054,13 +1058,15 @@ class PyBuildExt(build_ext): - ndbm_libs = ['ndbm'] - else: - ndbm_libs = [] -- print("building dbm using ndbm") -- dbmext = Extension('_dbm', ['_dbmmodule.c'], -+ if not self.compiler.find_library_file(lib_dirs, -+ 'gdbm'): -+ print("building dbm using ndbm") -+ dbmext = Extension('_dbm', ['_dbmmodule.c'], - define_macros=[ - ('HAVE_NDBM_H',None), - ], - libraries=ndbm_libs) -- break +@@ -1037,6 +1041,30 @@ class PyBuildExt(build_ext): + dbm_order = ['gdbm'] + # The standard Unix dbm module: + if platform not in ['cygwin']: ++ ++ ## Top half based on find_file ++ def find_ndbm_h(dirs): ++ ret = None ++ if sys.platform == 'darwin': ++ sysroot = macosx_sdk_root() ++ for dir in dirs: ++ f = os.path.join(dir, 'ndbm.h') ++ if sys.platform == 'darwin' and is_macosx_sdk_path(dir): ++ f = os.path.join(sysroot, dir[1:], filename) ++ if not os.path.exists(f): continue ++ ++ ret = 'True' ++ input = text_file.TextFile(f) ++ while 1: ++ line = input.readline() ++ if not line: break ++ if re.search('This file is part of GDBM', line): ++ ret = None + break - - elif cand == "gdbm": - if self.compiler.find_library_file(lib_dirs, 'gdbm'): -@@ -1085,7 +1091,8 @@ class PyBuildExt(build_ext): - ], - libraries = gdbm_libs) - break -- elif cand == "bdb": ++ input.close() ++ break ++ return ret + -+ if cand == "bdb" and dbmext is None: - if db_incs is not None: - print("building dbm using bdb") - dbmext = Extension('_dbm', ['_dbmmodule.c'], -@@ -1315,6 +1322,14 @@ class PyBuildExt(build_ext): + config_args = [arg.strip("'") + for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] + dbm_args = [arg for arg in config_args +@@ -1048,7 +1076,7 @@ class PyBuildExt(build_ext): + dbmext = None + for cand in dbm_order: + if cand == "ndbm": +- if find_file("ndbm.h", inc_dirs, []) is not None: ++ if find_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'] +@@ -1315,6 +1343,14 @@ class PyBuildExt(build_ext): macros = dict() libraries = [] @@ -85,7 +96,7 @@ $NetBSD: patch-am,v 1.3 2011/10/18 21:59:18 sbd Exp $ else: # Linux and other unices macros = dict() libraries = ['rt'] -@@ -1831,8 +1846,8 @@ def main(): +@@ -1831,8 +1867,8 @@ def main(): # called unless there's at least one extension module defined. ext_modules=[Extension('_struct', ['_struct.c'])], |