| @@ -1,51 +1,49 @@ | | | @@ -1,51 +1,49 @@ |
1 | $NetBSD: patch-am,v 1.21 2014/03/27 05:15:00 obache Exp $ | | 1 | $NetBSD: patch-am,v 1.22 2014/03/27 05:36:10 obache Exp $ |
2 | | | 2 | |
3 | Disabled modules for normal build: | | 3 | Disabled modules for normal build: |
4 | bsddb | | 4 | bsddb |
5 | curses | | 5 | curses |
6 | curses_panel | | 6 | curses_panel |
7 | elementtree | | 7 | elementtree |
8 | sqlite3 | | 8 | sqlite3 |
9 | tkinter | | 9 | tkinter |
10 | gdbm | | 10 | gdbm |
11 | pyexpat | | 11 | pyexpat |
12 | readline | | 12 | readline |
13 | {linux,oss,sun}audiodev | | 13 | {linux,oss,sun}audiodev |
14 | spwd | | 14 | spwd |
15 | Those have separate packages where needed. | | 15 | Those have separate packages where needed. |
16 | | | 16 | |
17 | Only check the BUILDLINK_DIR for libraries etc, do not pick up random | | 17 | Only check the BUILDLINK_DIR for libraries etc, do not pick up random |
18 | headers and libraries from the system. | | 18 | headers and libraries from the system. |
19 | | | 19 | |
20 | Build the _ssl module with pkgsrc choiced OpenSSL. | | | |
21 | | | | |
22 | Build the 1.85 compat module all the time against the BDB version of choice. | | 20 | Build the 1.85 compat module all the time against the BDB version of choice. |
23 | | | 21 | |
24 | Add in Debian multiarch support (retrofitted from Python 2.7.2) to | | 22 | Add in Debian multiarch support (retrofitted from Python 2.7.2) to |
25 | support building the "nis" and "crypt" modules. | | 23 | support building the "nis" and "crypt" modules. |
26 | | | 24 | |
27 | --- setup.py.orig 2013-10-29 15:04:39.000000000 +0000 | | 25 | --- setup.py 2010-07-18 00:31:09.000000000 +1200 |
28 | +++ setup.py | | 26 | +++ setup.py 2011-09-23 01:51:17.757519638 +1200 |
29 | @@ -18,7 +18,7 @@ from distutils.command.install_lib impor | | 27 | @@ -18,7 +18,7 @@ |
30 | from distutils.spawn import find_executable | | 28 | from distutils.spawn import find_executable |
31 | | | 29 | |
32 | # This global variable is used to hold the list of modules to be disabled. | | 30 | # This global variable is used to hold the list of modules to be disabled. |
33 | -disabled_module_list = [] | | 31 | -disabled_module_list = [] |
34 | +disabled_module_list = ["_bsddb", "_curses", "_curses_panel", "_elementtree", "_sqlite3", "_tkinter", "gdbm", "pyexpat", "readline", "linuxaudiodev", "ossaudiodev", "spwd", "sunaudiodev"] | | 32 | +disabled_module_list = ["_bsddb", "_curses", "_curses_panel", "_elementtree", "_sqlite3", "_tkinter", "gdbm", "pyexpat", "readline", "linuxaudiodev", "ossaudiodev", "spwd", "sunaudiodev"] |
35 | | | 33 | |
36 | def add_dir_to_list(dirlist, dir): | | 34 | def add_dir_to_list(dirlist, dir): |
37 | """Add the directory 'dir' to the list 'dirlist' (at the front) if | | 35 | """Add the directory 'dir' to the list 'dirlist' (at the front) if |
38 | @@ -354,10 +354,40 @@ class PyBuildExt(build_ext): | | 36 | @@ -354,10 +354,40 @@ |
39 | return platform | | 37 | return platform |
40 | return sys.platform | | 38 | return sys.platform |
41 | | | 39 | |
42 | + def add_multiarch_paths(self): | | 40 | + def add_multiarch_paths(self): |
43 | + # Debian/Ubuntu multiarch support. | | 41 | + # Debian/Ubuntu multiarch support. |
44 | + # https://wiki.ubuntu.com/MultiarchSpec | | 42 | + # https://wiki.ubuntu.com/MultiarchSpec |
45 | + if not find_executable('dpkg-architecture'): | | 43 | + if not find_executable('dpkg-architecture'): |
46 | + return | | 44 | + return |
47 | + tmpfile = os.path.join(self.build_temp, 'multiarch') | | 45 | + tmpfile = os.path.join(self.build_temp, 'multiarch') |
48 | + if not os.path.exists(self.build_temp): | | 46 | + if not os.path.exists(self.build_temp): |
49 | + os.makedirs(self.build_temp) | | 47 | + os.makedirs(self.build_temp) |
50 | + ret = os.system( | | 48 | + ret = os.system( |
51 | + 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % | | 49 | + 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % |
| @@ -69,60 +67,38 @@ support building the "nis" and "crypt" m | | | @@ -69,60 +67,38 @@ support building the "nis" and "crypt" m |
69 | + if os.environ.has_key('BUILDLINK_DIR'): | | 67 | + if os.environ.has_key('BUILDLINK_DIR'): |
70 | + dir = os.environ['BUILDLINK_DIR'] | | 68 | + dir = os.environ['BUILDLINK_DIR'] |
71 | + libdir = dir + '/lib' | | 69 | + libdir = dir + '/lib' |
72 | + incdir = dir + '/include' | | 70 | + incdir = dir + '/include' |
73 | + if libdir not in self.compiler.library_dirs: | | 71 | + if libdir not in self.compiler.library_dirs: |
74 | + self.compiler.library_dirs.insert(0, libdir) | | 72 | + self.compiler.library_dirs.insert(0, libdir) |
75 | + if incdir not in self.compiler.include_dirs: | | 73 | + if incdir not in self.compiler.include_dirs: |
76 | + self.compiler.include_dirs.insert(0, incdir) | | 74 | + self.compiler.include_dirs.insert(0, incdir) |
77 | + | | 75 | + |
78 | + self.add_multiarch_paths() | | 76 | + self.add_multiarch_paths() |
79 | | | 77 | |
80 | # Add paths specified in the environment variables LDFLAGS and | | 78 | # Add paths specified in the environment variables LDFLAGS and |
81 | # CPPFLAGS for header and library files. | | 79 | # CPPFLAGS for header and library files. |
82 | @@ -691,10 +721,9 @@ class PyBuildExt(build_ext): | | 80 | @@ -703,9 +733,7 @@ |
83 | depends = ['socketmodule.h']) ) | | | |
84 | # Detect SSL support for the socket module (via _ssl) | | | |
85 | search_for_ssl_incs_in = [ | | | |
86 | - '/usr/local/ssl/include', | | | |
87 | - '/usr/contrib/ssl/include/' | | | |
88 | + '@SSLBASE@/include' | | | |
89 | ] | | | |
90 | - ssl_incs = find_file('openssl/ssl.h', inc_dirs, | | | |
91 | + ssl_incs = find_file('openssl/ssl.h', [], | | | |
92 | search_for_ssl_incs_in | | | |
93 | ) | | | |
94 | if ssl_incs is not None: | | | |
95 | @@ -703,9 +732,7 @@ class PyBuildExt(build_ext): | | | |
96 | if krb5_h: | | 81 | if krb5_h: |
97 | ssl_incs += krb5_h | | 82 | ssl_incs += krb5_h |
98 | ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, | | 83 | ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, |
99 | - ['/usr/local/ssl/lib', | | 84 | - ['/usr/local/ssl/lib', |
100 | - '/usr/contrib/ssl/lib/' | | 85 | - '/usr/contrib/ssl/lib/' |
101 | - ] ) | | 86 | - ] ) |
102 | + [] ) | | 87 | + [] ) |
103 | | | 88 | |
104 | if (ssl_incs is not None and | | 89 | if (ssl_incs is not None and |
105 | ssl_libs is not None): | | 90 | ssl_libs is not None): |
106 | @@ -724,7 +751,7 @@ class PyBuildExt(build_ext): | | 91 | @@ -815,172 +843,6 @@ |
107 | | | | |
108 | # look for the openssl version header on the compiler search path. | | | |
109 | opensslv_h = find_file('openssl/opensslv.h', [], | | | |
110 | - inc_dirs + search_for_ssl_incs_in) | | | |
111 | + search_for_ssl_incs_in) | | | |
112 | if opensslv_h: | | | |
113 | name = os.path.join(opensslv_h[0], 'openssl/opensslv.h') | | | |
114 | if sys.platform == 'darwin' and is_macosx_sdk_path(name): | | | |
115 | @@ -815,172 +842,6 @@ class PyBuildExt(build_ext): | | | |
116 | else: | | 92 | else: |
117 | raise ValueError("unknown major BerkeleyDB version", major) | | 93 | raise ValueError("unknown major BerkeleyDB version", major) |
118 | | | 94 | |
119 | - # construct a list of paths to look for the header file in on | | 95 | - # construct a list of paths to look for the header file in on |
120 | - # top of the normal inc_dirs. | | 96 | - # top of the normal inc_dirs. |
121 | - db_inc_paths = [ | | 97 | - db_inc_paths = [ |
122 | - '/usr/include/db4', | | 98 | - '/usr/include/db4', |
123 | - '/usr/local/include/db4', | | 99 | - '/usr/local/include/db4', |
124 | - '/opt/sfw/include/db4', | | 100 | - '/opt/sfw/include/db4', |
125 | - '/usr/include/db3', | | 101 | - '/usr/include/db3', |
126 | - '/usr/local/include/db3', | | 102 | - '/usr/local/include/db3', |
127 | - '/opt/sfw/include/db3', | | 103 | - '/opt/sfw/include/db3', |
128 | - # Fink defaults (http://fink.sourceforge.net/) | | 104 | - # Fink defaults (http://fink.sourceforge.net/) |
| @@ -275,27 +251,27 @@ support building the "nis" and "crypt" m | | | @@ -275,27 +251,27 @@ support building the "nis" and "crypt" m |
275 | - runtime_library_dirs=dblib_dir, | | 251 | - runtime_library_dirs=dblib_dir, |
276 | - include_dirs=db_incs, | | 252 | - include_dirs=db_incs, |
277 | - libraries=dblibs)) | | 253 | - libraries=dblibs)) |
278 | - else: | | 254 | - else: |
279 | - if db_setup_debug: print "db: no appropriate library found" | | 255 | - if db_setup_debug: print "db: no appropriate library found" |
280 | - db_incs = None | | 256 | - db_incs = None |
281 | - dblibs = [] | | 257 | - dblibs = [] |
282 | - dblib_dir = None | | 258 | - dblib_dir = None |
283 | - missing.append('_bsddb') | | 259 | - missing.append('_bsddb') |
284 | - | | 260 | - |
285 | # The sqlite interface | | 261 | # The sqlite interface |
286 | sqlite_setup_debug = False # verbose debug prints from this script? | | 262 | sqlite_setup_debug = False # verbose debug prints from this script? |
287 | | | 263 | |
288 | @@ -1094,35 +955,40 @@ class PyBuildExt(build_ext): | | 264 | @@ -1094,35 +956,40 @@ |
289 | # we do not build this one. Otherwise this build will pick up | | 265 | # we do not build this one. Otherwise this build will pick up |
290 | # the more recent berkeleydb's db.h file first in the include path | | 266 | # the more recent berkeleydb's db.h file first in the include path |
291 | # when attempting to compile and it will fail. | | 267 | # when attempting to compile and it will fail. |
292 | - f = "/usr/include/db.h" | | 268 | - f = "/usr/include/db.h" |
293 | - | | 269 | - |
294 | - if sys.platform == 'darwin': | | 270 | - if sys.platform == 'darwin': |
295 | - if is_macosx_sdk_path(f): | | 271 | - if is_macosx_sdk_path(f): |
296 | - sysroot = macosx_sdk_root() | | 272 | - sysroot = macosx_sdk_root() |
297 | - f = os.path.join(sysroot, f[1:]) | | 273 | - f = os.path.join(sysroot, f[1:]) |
298 | - | | 274 | - |
299 | - if os.path.exists(f) and not db_incs: | | 275 | - if os.path.exists(f) and not db_incs: |
300 | - data = open(f).read() | | 276 | - data = open(f).read() |
301 | - m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) | | 277 | - m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) |
| @@ -341,68 +317,68 @@ support building the "nis" and "crypt" m | | | @@ -341,68 +317,68 @@ support building the "nis" and "crypt" m |
341 | + line = input.readline() | | 317 | + line = input.readline() |
342 | + if not line: break | | 318 | + if not line: break |
343 | + if re.search('This file is part of GDBM', line): | | 319 | + if re.search('This file is part of GDBM', line): |
344 | + ret = None | | 320 | + ret = None |
345 | + break | | 321 | + break |
346 | + input.close() | | 322 | + input.close() |
347 | + break | | 323 | + break |
348 | + return ret | | 324 | + return ret |
349 | + | | 325 | + |
350 | + if find_ndbm_h(inc_dirs) is not None: | | 326 | + if find_ndbm_h(inc_dirs) is not None: |
351 | # Some systems have -lndbm, others don't | | 327 | # Some systems have -lndbm, others don't |
352 | if self.compiler.find_library_file(lib_dirs, 'ndbm'): | | 328 | if self.compiler.find_library_file(lib_dirs, 'ndbm'): |
353 | ndbm_libs = ['ndbm'] | | 329 | ndbm_libs = ['ndbm'] |
354 | @@ -1131,7 +997,7 @@ class PyBuildExt(build_ext): | | 330 | @@ -1131,7 +998,7 @@ |
355 | exts.append( Extension('dbm', ['dbmmodule.c'], | | 331 | exts.append( Extension('dbm', ['dbmmodule.c'], |
356 | define_macros=[('HAVE_NDBM_H',None)], | | 332 | define_macros=[('HAVE_NDBM_H',None)], |
357 | libraries = ndbm_libs ) ) | | 333 | libraries = ndbm_libs ) ) |
358 | - elif self.compiler.find_library_file(lib_dirs, 'gdbm'): | | 334 | - elif self.compiler.find_library_file(lib_dirs, 'gdbm'): |
359 | + elif 1==0 and self.compiler.find_library_file(lib_dirs, 'gdbm'): | | 335 | + elif 1==0 and self.compiler.find_library_file(lib_dirs, 'gdbm'): |
360 | gdbm_libs = ['gdbm'] | | 336 | gdbm_libs = ['gdbm'] |
361 | if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): | | 337 | if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): |
362 | gdbm_libs.append('gdbm_compat') | | 338 | gdbm_libs.append('gdbm_compat') |
363 | @@ -1147,14 +1013,12 @@ class PyBuildExt(build_ext): | | 339 | @@ -1147,14 +1014,12 @@ |
364 | libraries = gdbm_libs ) ) | | 340 | libraries = gdbm_libs ) ) |
365 | else: | | 341 | else: |
366 | missing.append('dbm') | | 342 | missing.append('dbm') |
367 | - elif db_incs is not None: | | 343 | - elif db_incs is not None: |
368 | + | | 344 | + |
369 | + if not module_enabled(exts, 'dbm'): | | 345 | + if not module_enabled(exts, 'dbm'): |
370 | exts.append( Extension('dbm', ['dbmmodule.c'], | | 346 | exts.append( Extension('dbm', ['dbmmodule.c'], |
371 | - library_dirs=dblib_dir, | | 347 | - library_dirs=dblib_dir, |
372 | - runtime_library_dirs=dblib_dir, | | 348 | - runtime_library_dirs=dblib_dir, |
373 | - include_dirs=db_incs, | | 349 | - include_dirs=db_incs, |
374 | define_macros=[('HAVE_BERKDB_H',None), | | 350 | define_macros=[('HAVE_BERKDB_H',None), |
375 | ('DB_DBM_HSEARCH',None)], | | 351 | ('DB_DBM_HSEARCH',None)], |
376 | - libraries=dblibs)) | | 352 | - libraries=dblibs)) |
377 | + libraries=["db"])) | | 353 | + libraries=["db"])) |
378 | else: | | 354 | else: |
379 | missing.append('dbm') | | 355 | missing.append('dbm') |
380 | | | 356 | |
381 | @@ -1408,6 +1272,14 @@ class PyBuildExt(build_ext): | | 357 | @@ -1408,6 +1273,14 @@ |
382 | ) | | 358 | ) |
383 | libraries = [] | | 359 | libraries = [] |
384 | | | 360 | |
385 | + elif platform.startswith('dragonfly'): | | 361 | + elif platform.startswith('dragonfly'): |
386 | + macros = dict( | | 362 | + macros = dict( |
387 | + HAVE_SEM_OPEN=0, | | 363 | + HAVE_SEM_OPEN=0, |
388 | + HAVE_SEM_TIMEDWAIT=0, | | 364 | + HAVE_SEM_TIMEDWAIT=0, |
389 | + HAVE_FD_TRANSFER=1, | | 365 | + HAVE_FD_TRANSFER=1, |
390 | + ) | | 366 | + ) |
391 | + libraries = [] | | 367 | + libraries = [] |
392 | + | | 368 | + |
393 | else: # Linux and other unices | | 369 | else: # Linux and other unices |
394 | macros = dict( | | 370 | macros = dict( |
395 | HAVE_SEM_OPEN=1, | | 371 | HAVE_SEM_OPEN=1, |
396 | @@ -2026,9 +1898,9 @@ def main(): | | 372 | @@ -2026,9 +1899,9 @@ |
397 | ext_modules=[Extension('_struct', ['_struct.c'])], | | 373 | ext_modules=[Extension('_struct', ['_struct.c'])], |
398 | | | 374 | |
399 | # Scripts to install | | 375 | # Scripts to install |
400 | - scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', | | 376 | - scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', |
401 | - 'Tools/scripts/2to3', | | 377 | - 'Tools/scripts/2to3', |
402 | - 'Lib/smtpd.py'] | | 378 | - 'Lib/smtpd.py'] |
403 | + scripts = ['Tools/scripts/pydoc2.6', | | 379 | + scripts = ['Tools/scripts/pydoc2.6', |
404 | + 'Tools/scripts/2to3-2.6', | | 380 | + 'Tools/scripts/2to3-2.6', |
405 | + 'Tools/scripts/smtpd2.6.py'] | | 381 | + 'Tools/scripts/smtpd2.6.py'] |
406 | ) | | 382 | ) |
407 | | | 383 | |
408 | # --install-platlib | | 384 | # --install-platlib |