diff options
author | Michał Górny <mgorny@gentoo.org> | 2019-12-29 12:56:03 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2019-12-29 12:56:32 +0100 |
commit | 6d0796d2302019591f3c59f0c5d5d40ae06a636d (patch) | |
tree | e2c269e2e304e350f00959ceac62ea7b27ae75fa | |
parent | dev-lang/python: Remove unnecessary +x (diff) | |
download | python-6d0796d2302019591f3c59f0c5d5d40ae06a636d.tar.gz python-6d0796d2302019591f3c59f0c5d5d40ae06a636d.tar.bz2 python-6d0796d2302019591f3c59f0c5d5d40ae06a636d.zip |
dev-lang/python: Drop old
All the old versions (2.6, 3.2 and 3.3) no longer build with new openssl
and glibc. Somebody would have to backport even more patches.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
57 files changed, 0 insertions, 5632 deletions
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 618d9be..e0d52ba 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -1,6 +1,3 @@ -DIST Python-2.6.9.tar.xz 9333664 BLAKE2B 097b670701a3751e764f345725297b317efbc44c1e6bfe177bd012fa2263b3d27d84bff8627bc1d999b71c888fddcc3145a88926bd6f25f2227c289b4b56a4c9 SHA512 bcd9286b6af3bfa2017f0b32c6c0f9b934224ece496d2d897ab3a61a936d306a5f61a580c060ce501034a614da374d17831a9c9be9f947b01d977b56437c023b -DIST Python-3.2.6.tar.xz 9243292 BLAKE2B b657f55521612c89923dc013adb00fd7ee742c13926623e4a268e85a6b43f04163279e77f2239d28d1b3d6d81298c23abb74b1ba1e1509f29522e7fea0661957 SHA512 514b46029dd5b07f2d287a1f00c6716970197186a38e3f2e1ec60c2292cf03a2dc45165ba9c217e5219c7cb6d96a09f790f5b3bdcc8d11db53f927297fe4ddc9 -DIST Python-3.3.5.tar.xz 12116308 BLAKE2B fda7d2b2fdaa27d775e337af3df8e4ebe5d0bdf50a68aa15c06fc450dd3478748af79ee7f58a7a5d8d06e2724b4d947ecbab7614d0958b43579409cdecf0da7b SHA512 562ebd85291f29ff18d37f05682763fc45aa9d070688006f4ef5c89392a48022357c3ca9ee1d795e9e863bdef413e6bab77b8d65581d374a76dbe7cacec65550 DIST Python-3.4.10.tar.xz 14559088 BLAKE2B ea1e333f04c286fe715c1ce97ade37c6a768e58a2e34da2ec51613a76c87a2e704f67d9ae8fd92a95366ab1814295028d7948e49b071d7e457b388176186c2e8 SHA512 d5d27d68049b61f135e21b12a800dbd4fc521d6935de178de6e2e88a989cda511d3c8fead90d14e38d2db0e528a74b22674e0da01c51ff4fad7d335ec6c3dbbc DIST Python-3.5.9.tar.xz 15388876 BLAKE2B 6086ed2350b6dce3203360f24c2fddf77df65a5815d6da019809796b30c2f43440a9e349c7defd0187cfc3a50a387352dfa63594c2ec513dd6bf585e7c34ec51 SHA512 58127793adef42ed57ae4d56338268866e14c2d084f09f57f26fc6b1c9454e70cc6d3dffc638f8d56f182acc0884021a4dbb578f312dd6fc01995fa85e31377e DIST python-gentoo-patches-3.4.10.tar.xz 21340 BLAKE2B c2ca41fc4bc81ae6be9426d772b1ffc09a4b2e2c021905886a92d85476871e6c3b51ca30c60eeede93ff8cd90628809cd8c6fb00041d16c1595ce1ba8369dac8 SHA512 27ee476c080a0d1c012ef5d3d8325db6e697e1c3d9611f0337668f3660a50e50e6529bd0fd8b3b5b6030c9be8f8a86d95fa59bc27085ce7d18a7e0b50afe9f4b diff --git a/dev-lang/python/files/2.6/.gitattributes b/dev-lang/python/files/2.6/.gitattributes deleted file mode 100644 index 5e5a56d..0000000 --- a/dev-lang/python/files/2.6/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -Makefile export-ignore diff --git a/dev-lang/python/files/2.6/01_all_static_library_location.patch b/dev-lang/python/files/2.6/01_all_static_library_location.patch deleted file mode 100644 index 83231c9..0000000 --- a/dev-lang/python/files/2.6/01_all_static_library_location.patch +++ /dev/null @@ -1,68 +0,0 @@ -Install libpythonX.Y.a in /usr/lib instead of /usr/lib/pythonX.Y/config. -https://bugs.gentoo.org/show_bug.cgi?id=252372 -http://bugs.python.org/issue6103 - ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -788,6 +788,19 @@ - fi; \ - else true; \ - fi -+ @if test -f $(LIBRARY) && test $(LIBRARY) != $(LDLIBRARY); then \ -+ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -+ if test "$(SO)" = .dll; then \ -+ $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBDIR); \ -+ else \ -+ $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBDIR); \ -+ $(RANLIB) $(DESTDIR)$(LIBDIR)/$(LIBRARY); \ -+ fi; \ -+ else \ -+ echo "Skipped install of $(LIBRARY) - use make frameworkinstall"; \ -+ fi; \ -+ else true; \ -+ fi - - # Install the manual page - maninstall: -@@ -946,18 +959,6 @@ - else true; \ - fi; \ - done -- @if test -d $(LIBRARY); then :; else \ -- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -- if test "$(SO)" = .dll; then \ -- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ -- else \ -- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- fi; \ -- else \ -- echo Skip install of $(LIBRARY) - use make frameworkinstall; \ -- fi; \ -- fi - $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c - $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in ---- Misc/python-config.in -+++ Misc/python-config.in -@@ -45,9 +45,4 @@ - elif opt in ('--libs', '--ldflags'): - libs = getvar('LIBS').split() + getvar('SYSLIBS').split() - libs.append('-lpython'+pyver) -- # add the prefix/lib/pythonX.Y/config dir, but only if there is no -- # shared library in prefix/lib/. -- if opt == '--ldflags' and not getvar('Py_ENABLE_SHARED'): -- libs.insert(0, '-L' + getvar('LIBPL')) - print ' '.join(libs) -- ---- Modules/makesetup -+++ Modules/makesetup -@@ -89,7 +89,7 @@ - then - ExtraLibDir=. - else -- ExtraLibDir='$(LIBPL)' -+ ExtraLibDir='$(LIBDIR)' - fi - ExtraLibs="-L$ExtraLibDir -lpython\$(VERSION)";; - esac diff --git a/dev-lang/python/files/2.6/02_all_disable_modules_and_ssl.patch b/dev-lang/python/files/2.6/02_all_disable_modules_and_ssl.patch deleted file mode 100644 index c5de56d..0000000 --- a/dev-lang/python/files/2.6/02_all_disable_modules_and_ssl.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- setup.py -+++ setup.py -@@ -18,7 +18,18 @@ - from distutils.spawn import find_executable - - # This global variable is used to hold the list of modules to be disabled. --disabled_module_list = [] -+pdm_env = "PYTHON_DISABLE_MODULES" -+if pdm_env in os.environ: -+ disabled_module_list = os.environ[pdm_env].split() -+else: -+ disabled_module_list = [] -+ -+pds_env = "PYTHON_DISABLE_SSL" -+if pds_env in os.environ: -+ disable_ssl = os.environ[pds_env] -+else: -+ disable_ssl = 0 -+ - - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (at the front) if -@@ -355,6 +366,7 @@ - return sys.platform - - def detect_modules(self): -+ global disable_ssl - # Ensure that /usr/local is always used - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') -@@ -697,7 +709,7 @@ - ssl_incs = find_file('openssl/ssl.h', inc_dirs, - search_for_ssl_incs_in - ) -- if ssl_incs is not None: -+ if ssl_incs is not None and not disable_ssl: - krb5_h = find_file('krb5.h', inc_dirs, - ['/usr/kerberos/include']) - if krb5_h: -@@ -708,7 +720,8 @@ - ] ) - - if (ssl_incs is not None and -- ssl_libs is not None): -+ ssl_libs is not None and -+ not disable_ssl): - exts.append( Extension('_ssl', ['_ssl.c'], - include_dirs = ssl_incs, - library_dirs = ssl_libs, -@@ -742,6 +755,7 @@ - - if (ssl_incs is not None and - ssl_libs is not None and -+ not disable_ssl and - openssl_ver >= 0x00907000): - # The _hashlib module wraps optimized implementations - # of hash functions from the OpenSSL library. -@@ -752,20 +766,22 @@ - # these aren't strictly missing since they are unneeded. - #missing.extend(['_sha', '_md5']) - else: -- # The _sha module implements the SHA1 hash algorithm. -- exts.append( Extension('_sha', ['shamodule.c']) ) -- # The _md5 module implements the RSA Data Security, Inc. MD5 -- # Message-Digest Algorithm, described in RFC 1321. The -- # necessary files md5.c and md5.h are included here. -- exts.append( Extension('_md5', -- sources = ['md5module.c', 'md5.c'], -- depends = ['md5.h']) ) - missing.append('_hashlib') - -- if (openssl_ver < 0x00908000): -- # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash -- exts.append( Extension('_sha256', ['sha256module.c']) ) -- exts.append( Extension('_sha512', ['sha512module.c']) ) -+ ### Build these unconditionally so emerge won't fail -+ ### when openssl is dropped/broken etc. -+ # The _sha module implements the SHA1 hash algorithm. -+ exts.append( Extension('_sha', ['shamodule.c']) ) -+ # The _md5 module implements the RSA Data Security, Inc. MD5 -+ # Message-Digest Algorithm, described in RFC 1321. The -+ # necessary files md5.c and md5.h are included here. -+ exts.append( Extension('_md5', -+ sources = ['md5module.c', 'md5.c'], -+ depends = ['md5.h']) ) -+ -+ exts.append( Extension('_sha256', ['sha256module.c']) ) -+ exts.append( Extension('_sha512', ['sha512module.c']) ) -+ ### - - # Modules that provide persistent dictionary-like semantics. You will - # probably want to arrange for at least one of them to be available on diff --git a/dev-lang/python/files/2.6/03_all_add_portage_search_path.patch b/dev-lang/python/files/2.6/03_all_add_portage_search_path.patch deleted file mode 100644 index 029284c..0000000 --- a/dev-lang/python/files/2.6/03_all_add_portage_search_path.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- Lib/site.py -+++ Lib/site.py -@@ -269,6 +269,7 @@ - "python" + sys.version[:3], - "site-packages")) - sitedirs.append(os.path.join(prefix, "lib", "site-python")) -+ sitedirs.append(os.path.join(prefix, "lib", "portage", "pym")) - else: - sitedirs.append(prefix) - sitedirs.append(os.path.join(prefix, "lib", "site-packages")) diff --git a/dev-lang/python/files/2.6/04_all_libdir.patch b/dev-lang/python/files/2.6/04_all_libdir.patch deleted file mode 100644 index af61191..0000000 --- a/dev-lang/python/files/2.6/04_all_libdir.patch +++ /dev/null @@ -1,119 +0,0 @@ ---- Lib/distutils/command/install.py -+++ Lib/distutils/command/install.py -@@ -41,8 +41,8 @@ - - INSTALL_SCHEMES = { - 'unix_prefix': { -- 'purelib': '$base/lib/python$py_version_short/site-packages', -- 'platlib': '$platbase/lib/python$py_version_short/site-packages', -+ 'purelib': '$base/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', -+ 'platlib': '$platbase/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', - 'headers': '$base/include/python$py_version_short/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -120,7 +120,8 @@ - - if os.name == "posix": - libpython = os.path.join(prefix, -- "lib", "python" + get_python_version()) -+ "@@GENTOO_LIBDIR@@", -+ "python" + get_python_version()) - if standard_lib: - return libpython - else: ---- Lib/site.py -+++ Lib/site.py -@@ -265,11 +265,11 @@ - if sys.platform in ('os2emx', 'riscos'): - sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) - elif os.sep == '/': -- sitedirs.append(os.path.join(prefix, "lib", -+ sitedirs.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", - "python" + sys.version[:3], - "site-packages")) -- sitedirs.append(os.path.join(prefix, "lib", "site-python")) -- sitedirs.append(os.path.join(prefix, "lib", "portage", "pym")) -+ sitedirs.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", "site-python")) -+ sitedirs.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", "portage", "pym")) - else: - sitedirs.append(prefix) - sitedirs.append(os.path.join(prefix, "lib", "site-packages")) ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -91,7 +91,7 @@ - MANDIR= @mandir@ - INCLUDEDIR= @includedir@ - CONFINCLUDEDIR= $(exec_prefix)/include --SCRIPTDIR= $(prefix)/lib -+SCRIPTDIR= $(prefix)/@@GENTOO_LIBDIR@@ - - # Detailed destination directories - BINLIBDEST= $(LIBDIR)/python$(VERSION) ---- Modules/getpath.c -+++ Modules/getpath.c -@@ -129,7 +129,7 @@ - static char exec_prefix[MAXPATHLEN+1]; - static char progpath[MAXPATHLEN+1]; - static char *module_search_path = NULL; --static char lib_python[] = "lib/python" VERSION; -+static char lib_python[] = "@@GENTOO_LIBDIR@@/python" VERSION; - - static void - reduce(char *dir) -@@ -524,7 +524,7 @@ - } - else - strncpy(zip_path, PREFIX, MAXPATHLEN); -- joinpath(zip_path, "lib/python00.zip"); -+ joinpath(zip_path, "@@GENTOO_LIBDIR@@/python00.zip"); - bufsz = strlen(zip_path); /* Replace "00" with version */ - zip_path[bufsz - 6] = VERSION[0]; - zip_path[bufsz - 5] = VERSION[2]; -@@ -534,7 +534,7 @@ - fprintf(stderr, - "Could not find platform dependent libraries <exec_prefix>\n"); - strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); -- joinpath(exec_prefix, "lib/lib-dynload"); -+ joinpath(exec_prefix, "@@GENTOO_LIBDIR@@/lib-dynload"); - } - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ - ---- Modules/Setup.dist -+++ Modules/Setup.dist -@@ -460,7 +460,7 @@ - # Andrew Kuchling's zlib module. - # This require zlib 1.1.3 (or later). - # See http://www.gzip.org/zlib/ --#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz -+#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/@@GENTOO_LIBDIR@@ -lz - - # Interface to the Expat XML parser - # ---- setup.py -+++ setup.py -@@ -420,8 +420,7 @@ - # if a file is found in one of those directories, it can - # be assumed that no additional -I,-L directives are needed. - lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -+ '/@@GENTOO_LIBDIR@@', '/usr/@@GENTOO_LIBDIR@@', - ] - inc_dirs = self.compiler.include_dirs + ['/usr/include'] - exts = [] -@@ -674,11 +673,11 @@ - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + -- ['/usr/lib/termcap'], -+ ['/usr/@@GENTOO_LIBDIR@@/termcap'], - 'termcap'): - readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=['/usr/@@GENTOO_LIBDIR@@/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) - else: diff --git a/dev-lang/python/files/2.6/05_all_verbose_building_of_extensions.patch b/dev-lang/python/files/2.6/05_all_verbose_building_of_extensions.patch deleted file mode 100644 index de852be..0000000 --- a/dev-lang/python/files/2.6/05_all_verbose_building_of_extensions.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -395,7 +395,6 @@ - # Build the shared modules - sharedmods: $(BUILDPYTHON) - @case $$MAKEFLAGS in \ -- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ - *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ - esac - 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 deleted file mode 100644 index 9fc1031..0000000 --- a/dev-lang/python/files/2.6/06_all_dbm_automagic.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- 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') - diff --git a/dev-lang/python/files/2.6/07_all_internal_expat.patch b/dev-lang/python/files/2.6/07_all_internal_expat.patch deleted file mode 100644 index 3ffdae2..0000000 --- a/dev-lang/python/files/2.6/07_all_internal_expat.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- setup.py -+++ setup.py -@@ -1326,18 +1326,15 @@ - # - # More information on Expat can be found at www.libexpat.org. - # -- expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat') -- define_macros = [ -- ('HAVE_EXPAT_CONFIG_H', '1'), -- ] -+ # Use system expat -+ expatinc = '/usr/include' -+ define_macros = [] - - exts.append(Extension('pyexpat', - define_macros = define_macros, - include_dirs = [expatinc], -+ libraries = ['expat'], - sources = ['pyexpat.c', -- 'expat/xmlparse.c', -- 'expat/xmlrole.c', -- 'expat/xmltok.c', - ], - )) - -@@ -1349,6 +1346,7 @@ - exts.append(Extension('_elementtree', - define_macros = define_macros, - include_dirs = [expatinc], -+ libraries = ['expat'], - sources = ['_elementtree.c'], - )) - else: diff --git a/dev-lang/python/files/2.6/08_all_non-zero_exit_status_on_failure.patch b/dev-lang/python/files/2.6/08_all_non-zero_exit_status_on_failure.patch deleted file mode 100644 index 8d0ebe8..0000000 --- a/dev-lang/python/files/2.6/08_all_non-zero_exit_status_on_failure.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=281968 -http://bugs.python.org/issue6731 - ---- setup.py -+++ setup.py -@@ -31,6 +31,8 @@ - disable_ssl = 0 - - -+exit_status = 0 -+ - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (at the front) if - 1) 'dir' is not already in 'dirlist' -@@ -279,6 +281,8 @@ - print - - if self.failed: -+ global exit_status -+ exit_status = 1 - failed = self.failed[:] - print - print "Failed to build these modules:" -@@ -2050,6 +2054,7 @@ - 'Tools/scripts/2to3', - 'Lib/smtpd.py'] - ) -+ sys.exit(exit_status) - - # --install-platlib - if __name__ == '__main__': diff --git a/dev-lang/python/files/2.6/09_all_use_external_libffi.patch b/dev-lang/python/files/2.6/09_all_use_external_libffi.patch deleted file mode 100644 index 0c54246..0000000 --- a/dev-lang/python/files/2.6/09_all_use_external_libffi.patch +++ /dev/null @@ -1,51 +0,0 @@ -http://bugs.python.org/issue6943 -http://hg.python.org/cpython/rev/f02881332342 -http://hg.python.org/cpython/rev/6d9be1a97c17 - ---- configure.in -+++ configure.in -@@ -2046,11 +2046,20 @@ - ], - [AC_MSG_RESULT(no)]) - -+AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -+ - # Check for use of the system libffi library - AC_MSG_CHECKING(for --with-system-ffi) - AC_ARG_WITH(system_ffi, - AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library)) - -+if test "$with_system_ffi" = "yes" && test -n "$PKG_CONFIG"; then -+ LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`" -+else -+ LIBFFI_INCLUDEDIR="" -+fi -+AC_SUBST(LIBFFI_INCLUDEDIR) -+ - AC_MSG_RESULT($with_system_ffi) - - # Determine if signalmodule should be used. ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -202,6 +202,8 @@ - GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar - - -+LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@ -+ - ########################################################################## - # Parser - PGEN= Parser/pgen$(EXE) ---- setup.py -+++ setup.py -@@ -1929,7 +1929,9 @@ - # in /usr/include/ffi - inc_dirs.append('/usr/include/ffi') - -- ffi_inc = find_file('ffi.h', [], inc_dirs) -+ ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] -+ if not ffi_inc: -+ ffi_inc = find_file('ffi.h', [], inc_dirs) - if ffi_inc is not None: - ffi_h = ffi_inc[0] + '/ffi.h' - fp = open(ffi_h) diff --git a/dev-lang/python/files/2.6/10_all_sys.platform_linux2.patch b/dev-lang/python/files/2.6/10_all_sys.platform_linux2.patch deleted file mode 100644 index 40e4080..0000000 --- a/dev-lang/python/files/2.6/10_all_sys.platform_linux2.patch +++ /dev/null @@ -1,13 +0,0 @@ -http://bugs.python.org/issue12326 -http://hg.python.org/cpython/rev/c816479f6aaf - ---- configure.in -+++ configure.in -@@ -260,6 +260,7 @@ - MACHDEP="$ac_md_system$ac_md_release" - - case $MACHDEP in -+ linux*) MACHDEP="linux2";; - cygwin*) MACHDEP="cygwin";; - darwin*) MACHDEP="darwin";; - atheos*) MACHDEP="atheos";; diff --git a/dev-lang/python/files/2.6/11_all_regenerate_platform-specific_modules.patch b/dev-lang/python/files/2.6/11_all_regenerate_platform-specific_modules.patch deleted file mode 100644 index 425e149..0000000 --- a/dev-lang/python/files/2.6/11_all_regenerate_platform-specific_modules.patch +++ /dev/null @@ -1,110 +0,0 @@ -http://bugs.python.org/issue12619 - ---- Lib/plat-aix4/regen -+++ Lib/plat-aix4/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h ---- Lib/plat-linux2/regen -+++ Lib/plat-linux2/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h /usr/include/linux/cdrom.h ---- Lib/plat-sunos5/regen -+++ Lib/plat-sunos5/regen -@@ -5,5 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h -- -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h ---- Lib/plat-unixware7/regen -+++ Lib/plat-unixware7/regen -@@ -5,5 +5,5 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/netinet/in.h --h2py /usr/include/sys/stropts.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py /usr/include/sys/stropts.h ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -355,7 +355,7 @@ - - # Default target - all: build_all --build_all: $(BUILDPYTHON) oldsharedmods sharedmods -+build_all: $(BUILDPYTHON) oldsharedmods sharedmods platformspecificmods - - # Compile a binary with gcc profile guided optimization. - profile-opt: -@@ -400,6 +400,26 @@ - *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ - esac - -+# Build the platform-specific modules -+platformspecificmods: $(BUILDPYTHON) sharedmods -+ @PLATDIR=$(PLATDIR); \ -+ if test ! -f $(srcdir)/Lib/$(PLATDIR)/regen; then \ -+ $(INSTALL) -d $(srcdir)/Lib/$(PLATDIR); \ -+ if test -f $(srcdir)/Lib/$${PLATDIR%?}/regen; then \ -+ cp $(srcdir)/Lib/$${PLATDIR%?}/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ else \ -+ cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ fi \ -+ fi -+ @EXE="$(BUILDEXE)"; export EXE; \ -+ PATH="`pwd`:$$PATH"; export PATH; \ -+ PYTHONPATH="`pwd`/Lib"; export PYTHONPATH; \ -+ cd $(srcdir)/Lib/$(PLATDIR); \ -+ $(RUNSHARED) ./regen || exit 1; \ -+ for module in *.py; do \ -+ $(RUNSHARED) $(BUILDPYTHON) -c "import py_compile; py_compile.compile('$$module', cfile='/dev/null', doraise=True)" || exit 1; \ -+ done -+ - # Build static library - # avoid long command lines, same as LIBRARY_OBJS - $(LIBRARY): $(LIBRARY_OBJS) -@@ -845,7 +865,7 @@ - multiprocessing multiprocessing/dummy \ - lib-old \ - curses pydoc_data $(MACHDEPS) --libinstall: build_all $(srcdir)/Lib/$(PLATDIR) -+libinstall: build_all - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ - if test ! -d $(DESTDIR)$$i; then \ -@@ -920,16 +940,6 @@ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" - --# Create the PLATDIR source directory, if one wasn't distributed.. --$(srcdir)/Lib/$(PLATDIR): -- mkdir $(srcdir)/Lib/$(PLATDIR) -- cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen -- export PATH; PATH="`pwd`:$$PATH"; \ -- export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ -- export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ -- export EXE; EXE="$(BUILDEXE)"; \ -- cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen -- - # Install the include files - INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) - inclinstall: -@@ -1212,7 +1222,7 @@ - Python/thread.o: @THREADHEADERS@ - - # Declare targets that aren't real files --.PHONY: all build_all sharedmods oldsharedmods test quicktest memtest -+.PHONY: all build_all sharedmods oldsharedmods platformspecificmods test quicktest memtest - .PHONY: install altinstall oldsharedinstall bininstall altbininstall - .PHONY: maninstall libinstall inclinstall libainstall sharedinstall - .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure diff --git a/dev-lang/python/files/2.6/21_all_distutils_c++.patch b/dev-lang/python/files/2.6/21_all_distutils_c++.patch deleted file mode 100644 index 7e1e89a..0000000 --- a/dev-lang/python/files/2.6/21_all_distutils_c++.patch +++ /dev/null @@ -1,426 +0,0 @@ -http://bugs.python.org/issue1222585 - ---- configure.in -+++ configure.in -@@ -1723,6 +1723,7 @@ - # Set info about shared libraries. - AC_SUBST(SO) - AC_SUBST(LDSHARED) -+AC_SUBST(LDCXXSHARED) - AC_SUBST(BLDSHARED) - AC_SUBST(CCSHARED) - AC_SUBST(LINKFORSHARED) -@@ -1775,36 +1776,47 @@ - IRIX/5*) LDSHARED="ld -shared";; - IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";; - SunOS/5*) -- if test "$GCC" = "yes" -- then LDSHARED='$(CC) -shared' -- else LDSHARED='$(CC) -G'; -+ if test "$GCC" = "yes" ; then -+ LDSHARED='$(CC) -shared' -+ LDCXXSHARED='$(CXX) -shared' -+ else -+ LDSHARED='$(CC) -G' -+ LDCXXSHARED='$(CXX) -G' - fi ;; - hp*|HP*) -- if test "$GCC" = "yes" -- then LDSHARED='$(CC) -shared' -- else LDSHARED='ld -b'; -+ if test "$GCC" = "yes" ; then -+ LDSHARED='$(CC) -shared' -+ LDCXXSHARED='$(CXX) -shared' -+ else -+ LDSHARED='ld -b' - fi ;; - OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";; - Darwin/1.3*) - LDSHARED='$(CC) $(LDFLAGS) -bundle' -+ LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle' - if test "$enable_framework" ; then - # Link against the framework. All externals should be defined. - BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' -+ LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - else - # No framework. Ignore undefined symbols, assuming they come from Python - LDSHARED="$LDSHARED -undefined suppress" -+ LDCXXSHARED="$LDCXXSHARED -undefined suppress" - fi ;; - Darwin/1.4*|Darwin/5.*|Darwin/6.*) - LDSHARED='$(CC) $(LDFLAGS) -bundle' -+ LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle' - if test "$enable_framework" ; then - # Link against the framework. All externals should be defined. - BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' -+ LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - else - # No framework, use the Python app as bundle-loader - BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)' - LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' -+ LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' - fi ;; - Darwin/*) - # Use -undefined dynamic_lookup whenever possible (10.3 and later). -@@ -1816,26 +1828,35 @@ - LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}" - fi - LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup' -+ LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle -undefined dynamic_lookup' - BLDSHARED="$LDSHARED" - else - LDSHARED='$(CC) $(LDFLAGS) -bundle' -+ LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle' - if test "$enable_framework" ; then - # Link against the framework. All externals should be defined. - BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' -+ LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' - else - # No framework, use the Python app as bundle-loader - BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)' - LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' -+ LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)' - fi - fi - ;; -- Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';; -- BSD/OS*/4*) LDSHARED="gcc -shared";; -+ Linux*|GNU*|QNX*) -+ LDSHARED='$(CC) -shared' -+ LDCXXSHARED='$(CXX) -shared';; -+ BSD/OS*/4*) -+ LDSHARED="gcc -shared" -+ LDCXXSHARED="g++ -shared";; - FreeBSD*) - if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]] - then - LDSHARED='$(CC) -shared ${LDFLAGS}' -+ LDCXXSHARED='$(CXX) -shared ${LDFLAGS}' - else - LDSHARED="ld -Bshareable ${LDFLAGS}" - fi;; -@@ -1843,6 +1864,7 @@ - if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]] - then - LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}' -+ LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}' - else - case `uname -r` in - [[01]].* | 2.[[0-7]] | 2.[[0-7]].*) -@@ -1850,23 +1872,36 @@ - ;; - *) - LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}' -+ LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}' - ;; - esac - fi;; -- NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";; -+ NetBSD*|DragonFly*) -+ LDSHARED="cc -shared ${LDFLAGS}" -+ LDCXXSHARED="c++ -shared ${LDFLAGS}";; - OpenUNIX*|UnixWare*) -- if test "$GCC" = "yes" -- then LDSHARED='$(CC) -shared' -- else LDSHARED='$(CC) -G' -+ if test "$GCC" = "yes" ; then -+ LDSHARED='$(CC) -shared' -+ LDCXXSHARED='$(CXX) -shared' -+ else -+ LDSHARED='$(CC) -G' -+ LDCXXSHARED='$(CXX) -G' - fi;; -- SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';; -+ SCO_SV*) -+ LDSHARED='$(CC) -Wl,-G,-Bexport' -+ LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';; - Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";; -- CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";; -- atheos*) LDSHARED="gcc -shared";; -+ CYGWIN*) -+ LDSHARED="gcc -shared -Wl,--enable-auto-image-base" -+ LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";; -+ atheos*) -+ LDSHARED="gcc -shared" -+ LDCXXSHARED="g++ -shared";; - *) LDSHARED="ld";; - esac - fi - AC_MSG_RESULT($LDSHARED) -+LDCXXSHARED=${LDCXXSHARED-$LDSHARED} - BLDSHARED=${BLDSHARED-$LDSHARED} - # CCSHARED are the C *flags* used to create objects to go into a shared - # library (module) -- this is only needed for a few systems ---- Lib/distutils/cygwinccompiler.py -+++ Lib/distutils/cygwinccompiler.py -@@ -132,9 +132,13 @@ - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -160,8 +164,12 @@ - raise CompileError, msg - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - -@@ -322,10 +330,15 @@ - self.set_executables(compiler='gcc -mno-cygwin -O -Wall', - compiler_so='gcc -mno-cygwin -mdll -O -Wall', - compiler_cxx='g++ -mno-cygwin -O -Wall', -+ compiler_so_cxx='g++ -mno-cygwin -mdll -O -Wall', - linker_exe='gcc -mno-cygwin', - linker_so='%s -mno-cygwin %s %s' - % (self.linker_dll, shared_option, -- entry_point)) -+ entry_point), -+ linker_exe_cxx='g++ -mno-cygwin', -+ linker_so_cxx='%s -mno-cygwin %s %s' -+ % (self.linker_dll, shared_option, -+ entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) - # (-mthreads: Support thread-safe exception handling on `Mingw32') ---- Lib/distutils/emxccompiler.py -+++ Lib/distutils/emxccompiler.py -@@ -65,8 +65,12 @@ - # XXX optimization, warnings etc. should be customizable. - self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - linker_exe='gcc -Zomf -Zmt -Zcrtdll', -- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') -+ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll', -+ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll', -+ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll') - - # want the gcc library statically linked (so that we don't have - # to distribute a version dependent on the compiler we have) -@@ -83,8 +87,12 @@ - raise CompileError, msg - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -167,9 +167,12 @@ - varies across Unices and is stored in Python's Makefile. - """ - if compiler.compiler_type == "unix": -- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext) = \ -- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SO') -+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext) = \ -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', -+ 'LDCXXSHARED', 'SO') -+ -+ cflags = '' -+ cxxflags = '' - - if 'CC' in os.environ: - cc = os.environ['CC'] -@@ -177,28 +180,40 @@ - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = opt + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, -- linker_exe=cc) -+ linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx) - - compiler.shared_lib_extension = so_ext - -@@ -546,7 +561,7 @@ - for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', - # a number of derived variables. These need to be - # patched up as well. -- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): -+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - flags = _config_vars[key] - flags = re.sub('-arch\s+\w+\s', ' ', flags) - flags = re.sub('-isysroot [^ \t]*', ' ', flags) -@@ -565,7 +580,7 @@ - for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', - # a number of derived variables. These need to be - # patched up as well. -- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): -+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _config_vars[key] - flags = re.sub('-arch\s+\w+\s', ' ', flags) -@@ -589,7 +604,7 @@ - for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', - # a number of derived variables. These need to be - # patched up as well. -- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): -+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _config_vars[key] - flags = re.sub('-isysroot\s+\S+(\s|$)', ' ', flags) ---- Lib/distutils/unixccompiler.py -+++ Lib/distutils/unixccompiler.py -@@ -114,14 +114,17 @@ - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -171,11 +174,18 @@ - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _darwin_compiler_fixup(compiler_so, cc_args + extra_postargs) -+ compiler_so_cxx = _darwin_compiler_fixup(compiler_so_cxx, cc_args + -+ extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError, msg: - raise CompileError, msg - -@@ -232,23 +242,16 @@ - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i = i + 1 -- -- linker[i] = self.compiler_cxx[i] -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] -+ else: -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _darwin_compiler_fixup(linker, ld_args) ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -104,6 +104,7 @@ - SO= @SO@ - LDSHARED= @LDSHARED@ - BLDSHARED= @BLDSHARED@ -+LDCXXSHARED= @LDCXXSHARED@ - DESTSHARED= $(BINLIBDEST)/lib-dynload - - # Executable suffix (.exe on Windows and Mac OS X) -@@ -397,7 +398,7 @@ - # Build the shared modules - sharedmods: $(BUILDPYTHON) - @case $$MAKEFLAGS in \ -- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ -+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' CFLAGS='$(CFLAGS)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ - esac - - # Build the platform-specific modules diff --git a/dev-lang/python/files/2.6/22_all_turkish_locale.patch b/dev-lang/python/files/2.6/22_all_turkish_locale.patch deleted file mode 100644 index 1321c3c..0000000 --- a/dev-lang/python/files/2.6/22_all_turkish_locale.patch +++ /dev/null @@ -1,128 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=250075 -http://bugs.python.org/issue1813 - ---- Lib/decimal.py -+++ Lib/decimal.py -@@ -153,6 +153,13 @@ - ROUND_HALF_DOWN = 'ROUND_HALF_DOWN' - ROUND_05UP = 'ROUND_05UP' - -+import string -+ -+def ascii_upper(s): -+ trans_table = string.maketrans(string.ascii_lowercase, string.ascii_uppercase) -+ return s.translate(trans_table) -+ -+ - # Errors - - class DecimalException(ArithmeticError): -@@ -3645,7 +3652,7 @@ - if name.startswith('_round_')] - for name in rounding_functions: - # name is like _round_half_even, goes to the global ROUND_HALF_EVEN value. -- globalname = name[1:].upper() -+ globalname = ascii_upper(name[1:]) - val = globals()[globalname] - Decimal._pick_rounding_function[val] = name - ---- Lib/email/__init__.py -+++ Lib/email/__init__.py -@@ -109,15 +109,19 @@ - 'Text', - ] - -+import string -+lower_map = string.maketrans(string.ascii_uppercase, string.ascii_lowercase) -+ -+ - for _name in _LOWERNAMES: -- importer = LazyImporter(_name.lower()) -+ importer = LazyImporter(_name.translate(lower_map)) - sys.modules['email.' + _name] = importer - setattr(sys.modules['email'], _name, importer) - - - import email.mime - for _name in _MIMENAMES: -- importer = LazyImporter('mime.' + _name.lower()) -+ importer = LazyImporter('mime.' + _name.translate(lower_map)) - sys.modules['email.MIME' + _name] = importer - setattr(sys.modules['email'], 'MIME' + _name, importer) - setattr(sys.modules['email.mime'], _name, importer) ---- Lib/locale.py -+++ Lib/locale.py -@@ -313,6 +313,14 @@ - # overridden below) - _setlocale = setlocale - -+# Avoid relying on the locale-dependent .lower() method -+# (see bug #1813). -+_ascii_lower_map = ''.join( -+ chr(x + 32 if x >= ord('A') and x <= ord('Z') else x) -+ for x in range(256) -+) -+ -+ - def normalize(localename): - - """ Returns a normalized locale code for the given locale -@@ -330,7 +338,7 @@ - - """ - # Normalize the locale name and extract the encoding -- fullname = localename.lower() -+ fullname = localename.encode('ascii').translate(_ascii_lower_map) - if ':' in fullname: - # ':' is sometimes used as encoding delimiter. - fullname = fullname.replace(':', '.') ---- Lib/test/test_codecs.py -+++ Lib/test/test_codecs.py -@@ -1,5 +1,6 @@ - from test import test_support - import unittest -+import locale - import codecs - import sys, StringIO, _testcapi - -@@ -1133,6 +1134,16 @@ - self.assertRaises(LookupError, codecs.lookup, "__spam__") - self.assertRaises(LookupError, codecs.lookup, " ") - -+ def test_lookup_with_locale(self): -+ # Bug #1813: when normalizing codec name, lowercasing must be locale -+ # agnostic, otherwise the looked up codec name might end up wrong. -+ try: -+ locale.setlocale(locale.LC_CTYPE, 'tr') -+ except locale.Error: -+ # SKIPped test -+ return -+ codecs.lookup('ISO8859_1') -+ - def test_getencoder(self): - self.assertRaises(TypeError, codecs.getencoder) - self.assertRaises(LookupError, codecs.getencoder, "__spam__") ---- Python/codecs.c -+++ Python/codecs.c -@@ -45,6 +45,12 @@ - return -1; - } - -+/* isupper() forced into the ASCII locale */ -+#define ascii_isupper(x) (((x) >= 0x41) && ((x) <= 0x5A)) -+/* tolower() forced into the ASCII locale */ -+#define ascii_tolower(x) (ascii_isupper(x) ? ((x) + 0x20) : (x)) -+ -+ - /* Convert a string to a normalized Python string: all characters are - converted to lower case, spaces are replaced with underscores. */ - -@@ -70,7 +76,7 @@ - if (ch == ' ') - ch = '-'; - else -- ch = tolower(Py_CHARMASK(ch)); -+ ch = ascii_tolower(Py_CHARMASK(ch)); - p[i] = ch; - } - return v; diff --git a/dev-lang/python/files/2.6/23_all_arm_OABI.patch b/dev-lang/python/files/2.6/23_all_arm_OABI.patch deleted file mode 100644 index e373281..0000000 --- a/dev-lang/python/files/2.6/23_all_arm_OABI.patch +++ /dev/null @@ -1,185 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=266703 -http://bugs.python.org/issue1762561 - ---- Objects/floatobject.c -+++ Objects/floatobject.c -@@ -1691,9 +1691,18 @@ - /* this is for the benefit of the pack/unpack routines below */ - - typedef enum { -- unknown_format, ieee_big_endian_format, ieee_little_endian_format -+ unknown_format, -+ ieee_big_endian_format, -+ ieee_little_endian_format, -+ ieee_arm_mixed_endian_format - } float_format_type; - -+/* byte order of a C double for each of the recognised IEEE formats */ -+ -+static const unsigned char BIG_ENDIAN_BYTEORDER[8] = {7,6,5,4,3,2,1,0}; -+static const unsigned char LITTLE_ENDIAN_BYTEORDER[8] = {0,1,2,3,4,5,6,7}; -+static const unsigned char ARM_MIXED_ENDIAN_BYTEORDER[8] = {4,5,6,7,0,1,2,3}; -+ - static float_format_type double_format, float_format; - static float_format_type detected_double_format, detected_float_format; - -@@ -1730,6 +1739,8 @@ - return PyString_FromString("IEEE, little-endian"); - case ieee_big_endian_format: - return PyString_FromString("IEEE, big-endian"); -+ case ieee_arm_mixed_endian_format: -+ return PyString_FromString("IEEE, ARM mixed-endian"); - default: - Py_FatalError("insane float_format or double_format"); - return NULL; -@@ -1743,8 +1754,9 @@ - "used in Python's test suite.\n" - "\n" - "typestr must be 'double' or 'float'. This function returns whichever of\n" --"'unknown', 'IEEE, big-endian' or 'IEEE, little-endian' best describes the\n" --"format of floating point numbers used by the C type named by typestr."); -+"'unknown', 'IEEE, big-endian', 'IEEE, little-endian' or\n" -+"'IEEE, ARM mixed-endian' best describes the format of floating-point\n" -+"numbers used by the C type named by typestr."); - - static PyObject * - float_setformat(PyTypeObject *v, PyObject* args) -@@ -1782,11 +1794,15 @@ - else if (strcmp(format, "IEEE, big-endian") == 0) { - f = ieee_big_endian_format; - } -+ else if (strcmp(format, "IEEE, ARM mixed-endian") == 0 && -+ p == &double_format) { -+ f = ieee_arm_mixed_endian_format; -+ } - else { - PyErr_SetString(PyExc_ValueError, - "__setformat__() argument 2 must be " -- "'unknown', 'IEEE, little-endian' or " -- "'IEEE, big-endian'"); -+ "'unknown', 'IEEE, little-endian', " -+ "'IEEE, big-endian' or 'IEEE, ARM mixed-endian'"); - return NULL; - - } -@@ -1809,8 +1825,10 @@ - "used in Python's test suite.\n" - "\n" - "typestr must be 'double' or 'float'. fmt must be one of 'unknown',\n" --"'IEEE, big-endian' or 'IEEE, little-endian', and in addition can only be\n" --"one of the latter two if it appears to match the underlying C reality.\n" -+"'IEEE, big-endian', 'IEEE, little-endian' or 'IEEE, ARM mixed-endian'\n" -+"and in addition can only be one of the last three if it appears to\n" -+"match the underlying C reality. Note that the ARM mixed-endian\n" -+"format can only be set for the 'double' type, not for 'float'.\n" - "\n" - "Overrides the automatic determination of C-level floating point type.\n" - "This affects how floats are converted to and from binary strings."); -@@ -2005,7 +2023,11 @@ - Note that if we're on some whacked-out platform which uses - IEEE formats but isn't strictly little-endian or big- - endian, we will fall back to the portable shifts & masks -- method. */ -+ method. -+ -+ Addendum: We also attempt to detect the mixed-endian IEEE format -+ used by the ARM old ABI (OABI) and also used by the FPA -+ floating-point unit on some older ARM processors. */ - - #if SIZEOF_DOUBLE == 8 - { -@@ -2014,6 +2036,8 @@ - detected_double_format = ieee_big_endian_format; - else if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0) - detected_double_format = ieee_little_endian_format; -+ else if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0) -+ detected_double_format = ieee_arm_mixed_endian_format; - else - detected_double_format = unknown_format; - } -@@ -2353,17 +2377,31 @@ - } - else { - const char *s = (char*)&x; -- int i, incr = 1; -+ int i; -+ const unsigned char *byteorder; - -- if ((double_format == ieee_little_endian_format && !le) -- || (double_format == ieee_big_endian_format && le)) { -- p += 7; -- incr = -1; -+ switch (double_format) { -+ case ieee_little_endian_format: -+ byteorder = LITTLE_ENDIAN_BYTEORDER; -+ break; -+ case ieee_big_endian_format: -+ byteorder = BIG_ENDIAN_BYTEORDER; -+ break; -+ case ieee_arm_mixed_endian_format: -+ byteorder = ARM_MIXED_ENDIAN_BYTEORDER; -+ break; -+ default: -+ Py_FatalError("insane float_format or double_format"); -+ return -1; - } - -- for (i = 0; i < 8; i++) { -- *p = *s++; -- p += incr; -+ if (le) { -+ for (i = 0; i < 8; i++) -+ p[byteorder[i]] = *s++; -+ } -+ else { -+ for (i = 0; i < 8; i++) -+ p[7-byteorder[i]] = *s++; - } - return 0; - } -@@ -2522,22 +2560,33 @@ - } - else { - double x; -+ char *s = (char*)&x; -+ const unsigned char *byteorder; -+ int i; -+ -+ switch (double_format) { -+ case ieee_little_endian_format: -+ byteorder = LITTLE_ENDIAN_BYTEORDER; -+ break; -+ case ieee_big_endian_format: -+ byteorder = BIG_ENDIAN_BYTEORDER; -+ break; -+ case ieee_arm_mixed_endian_format: -+ byteorder = ARM_MIXED_ENDIAN_BYTEORDER; -+ break; -+ default: -+ Py_FatalError("insane float_format or double_format"); -+ return -1.0; -+ } - -- if ((double_format == ieee_little_endian_format && !le) -- || (double_format == ieee_big_endian_format && le)) { -- char buf[8]; -- char *d = &buf[7]; -- int i; -- -- for (i = 0; i < 8; i++) { -- *d-- = *p++; -- } -- memcpy(&x, buf, 8); -+ if (le) { -+ for (i=0; i<8; i++) -+ *s++ = p[byteorder[i]]; - } - else { -- memcpy(&x, p, 8); -+ for (i=0; i<8; i++) -+ *s++ = p[7-byteorder[i]]; - } -- - return x; - } - } diff --git a/dev-lang/python/files/2.6/24_all_ctypes_mmap_wx.patch b/dev-lang/python/files/2.6/24_all_ctypes_mmap_wx.patch deleted file mode 100644 index 918d97c..0000000 --- a/dev-lang/python/files/2.6/24_all_ctypes_mmap_wx.patch +++ /dev/null @@ -1,124 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=329499 -http://bugs.python.org/issue5504 -http://hg.python.org/cpython/rev/e13ea83e2edb - ---- Modules/_ctypes/callbacks.c -+++ Modules/_ctypes/callbacks.c -@@ -21,8 +21,8 @@ - Py_XDECREF(self->converters); - Py_XDECREF(self->callable); - Py_XDECREF(self->restype); -- if (self->pcl) -- FreeClosure(self->pcl); -+ if (self->pcl_write) -+ ffi_closure_free(self->pcl_write); - PyObject_GC_Del(self); - } - -@@ -373,7 +373,8 @@ - return NULL; - } - -- p->pcl = NULL; -+ p->pcl_exec = NULL; -+ p->pcl_write = NULL; - memset(&p->cif, 0, sizeof(p->cif)); - p->converters = NULL; - p->callable = NULL; -@@ -403,8 +404,9 @@ - - assert(CThunk_CheckExact(p)); - -- p->pcl = MallocClosure(); -- if (p->pcl == NULL) { -+ p->pcl_write = ffi_closure_alloc(sizeof(ffi_closure), -+ &p->pcl_exec); -+ if (p->pcl_write == NULL) { - PyErr_NoMemory(); - goto error; - } -@@ -449,7 +451,9 @@ - "ffi_prep_cif failed with %d", result); - goto error; - } -- result = ffi_prep_closure(p->pcl, &p->cif, closure_fcn, p); -+ result = ffi_prep_closure_loc(p->pcl_write, &p->cif, closure_fcn, -+ p, -+ p->pcl_exec); - if (result != FFI_OK) { - PyErr_Format(PyExc_RuntimeError, - "ffi_prep_closure failed with %d", result); ---- Modules/_ctypes/_ctypes.c -+++ Modules/_ctypes/_ctypes.c -@@ -3443,7 +3443,7 @@ - self->callable = callable; - - self->thunk = thunk; -- *(void **)self->b_ptr = (void *)thunk->pcl; -+ *(void **)self->b_ptr = (void *)thunk->pcl_exec; - - Py_INCREF((PyObject *)thunk); /* for KeepRef */ - if (-1 == KeepRef((CDataObject *)self, 0, (PyObject *)thunk)) { ---- Modules/_ctypes/ctypes.h -+++ Modules/_ctypes/ctypes.h -@@ -95,7 +95,8 @@ - - typedef struct { - PyObject_VAR_HEAD -- ffi_closure *pcl; /* the C callable */ -+ ffi_closure *pcl_write; /* the C callable, writeable */ -+ void *pcl_exec; /* the C callable, executable */ - ffi_cif cif; - int flags; - PyObject *converters; -@@ -427,9 +428,6 @@ - - #endif - --extern void FreeClosure(void *); --extern void *MallocClosure(void); -- - extern void _AddTraceback(char *, char *, int); - - extern PyObject *CData_FromBaseObj(PyObject *type, PyObject *base, Py_ssize_t index, char *adr); ---- Modules/_ctypes/malloc_closure.c -+++ Modules/_ctypes/malloc_closure.c -@@ -93,7 +93,7 @@ - /******************************************************************/ - - /* put the item back into the free list */ --void FreeClosure(void *p) -+void ffi_closure_free(void *p) - { - ITEM *item = (ITEM *)p; - item->next = free_list; -@@ -101,7 +101,7 @@ - } - - /* return one item from the free list, allocating more if needed */ --void *MallocClosure(void) -+void *ffi_closure_alloc(size_t ignored, void** codeloc) - { - ITEM *item; - if (!free_list) -@@ -110,5 +110,7 @@ - return NULL; - item = free_list; - free_list = item->next; -- return item; -+ *codeloc = (void *)item; -+ return (void *)item; - } -+ ---- setup.py -+++ setup.py -@@ -1885,8 +1885,7 @@ - '_ctypes/callbacks.c', - '_ctypes/callproc.c', - '_ctypes/stgdict.c', -- '_ctypes/cfield.c', -- '_ctypes/malloc_closure.c'] -+ '_ctypes/cfield.c'] - depends = ['_ctypes/ctypes.h'] - - if sys.platform == 'darwin': diff --git a/dev-lang/python/files/2.6/25_all_gdbm-1.9.patch b/dev-lang/python/files/2.6/25_all_gdbm-1.9.patch deleted file mode 100644 index 85c991b..0000000 --- a/dev-lang/python/files/2.6/25_all_gdbm-1.9.patch +++ /dev/null @@ -1,14 +0,0 @@ -http://bugs.python.org/issue13007 -http://hg.python.org/cpython/rev/14cafb8d1480 - ---- Lib/whichdb.py -+++ Lib/whichdb.py -@@ -91,7 +91,7 @@ - return "" - - # Check for GNU dbm -- if magic == 0x13579ace: -+ if magic in (0x13579ace, 0x13579acd, 0x13579acf): - return "gdbm" - - # Check for old Berkeley db hash file format v2 diff --git a/dev-lang/python/files/2.6/26_all_expat-2.1.patch b/dev-lang/python/files/2.6/26_all_expat-2.1.patch deleted file mode 100644 index 9872136..0000000 --- a/dev-lang/python/files/2.6/26_all_expat-2.1.patch +++ /dev/null @@ -1,15 +0,0 @@ -http://bugs.python.org/issue9054 -http://hg.python.org/cpython/rev/5b536c90ca36 - ---- Modules/pyexpat.c -+++ Modules/pyexpat.c -@@ -456,6 +456,9 @@ - PyObject *args; - PyObject *temp; - -+ if (!have_handler(self, CharacterData)) -+ return -1; -+ - args = PyTuple_New(1); - if (args == NULL) - return -1; diff --git a/dev-lang/python/files/2.6/41_all_crosscompile.patch b/dev-lang/python/files/2.6/41_all_crosscompile.patch deleted file mode 100644 index a398769..0000000 --- a/dev-lang/python/files/2.6/41_all_crosscompile.patch +++ /dev/null @@ -1,113 +0,0 @@ ---- configure.in -+++ configure.in -@@ -3905,7 +3905,7 @@ - AC_MSG_RESULT(no) - fi - --AC_MSG_CHECKING(for %zd printf() format support) -+AC_CACHE_CHECK([for %zd printf() format support], [py_cv_has_zd_printf], [dnl - AC_TRY_RUN([#include <stdio.h> - #include <stddef.h> - #include <string.h> -@@ -3939,10 +3939,13 @@ - return 1; - - return 0; --}], --[AC_MSG_RESULT(yes) -- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])], -- AC_MSG_RESULT(no)) -+}], [py_cv_has_zd_printf="yes"], -+ [py_cv_has_zd_printf="no"], -+ [py_cv_has_zd_printf="cross -- assuming yes"] -+)]) -+if test "$py_cv_has_zd_printf" != "no" ; then -+ AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t]) -+fi - - AC_CHECK_TYPE(socklen_t,, - AC_DEFINE(socklen_t,int, ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -176,6 +176,7 @@ - - PYTHON= python$(EXE) - BUILDPYTHON= python$(BUILDEXE) -+HOSTPYTHON= $(BUILDPYTHON) - - # The task to run while instrument when building the profile-opt target - PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck -@@ -209,6 +210,7 @@ - # Parser - PGEN= Parser/pgen$(EXE) - -+HOSTPGEN= $(PGEN)$(EXE) - POBJS= \ - Parser/acceler.o \ - Parser/grammar1.o \ -@@ -398,7 +400,7 @@ - # Build the shared modules - sharedmods: $(BUILDPYTHON) - @case $$MAKEFLAGS in \ -- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' CFLAGS='$(CFLAGS)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ -+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' CFLAGS='$(CFLAGS)' ./$(HOSTPYTHON) -E $(srcdir)/setup.py build;; \ - esac - - # Build the platform-specific modules -@@ -540,7 +542,7 @@ - - $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) - -@$(INSTALL) -d Include -- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) -+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) - - $(PGEN): $(PGENOBJS) - $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) -@@ -923,23 +925,23 @@ - done - $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" -+ ./$(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" - - # Install the include files - INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) -@@ -1015,7 +1017,7 @@ - # Install the dynamically loadable modules - # This goes into $(exec_prefix) - sharedinstall: -- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ -+ $(RUNSHARED) ./$(HOSTPYTHON) -E $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ - --install-platlib=$(DESTSHARED) \ ---- setup.py -+++ setup.py -@@ -334,6 +334,7 @@ - try: - imp.load_dynamic(ext.name, ext_filename) - except ImportError, why: -+ return - self.failed.append(ext.name) - self.announce('*** WARNING: renaming "%s" since importing it' - ' failed: %s' % (ext.name, why), level=3) diff --git a/dev-lang/python/files/2.6/62_all_xml.use_pyxml.patch b/dev-lang/python/files/2.6/62_all_xml.use_pyxml.patch deleted file mode 100644 index 757299b..0000000 --- a/dev-lang/python/files/2.6/62_all_xml.use_pyxml.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- Lib/xml/__init__.py -+++ Lib/xml/__init__.py -@@ -28,20 +28,23 @@ - _MINIMUM_XMLPLUS_VERSION = (0, 8, 4) - - --try: -+def use_pyxml(): - import _xmlplus --except ImportError: -- pass --else: -- try: -- v = _xmlplus.version_info -- except AttributeError: -- # _xmlplus is too old; ignore it -- pass -+ v = _xmlplus.version_info -+ if v >= _MINIMUM_XMLPLUS_VERSION: -+ import sys -+ _xmlplus.__path__.extend(__path__) -+ sys.modules[__name__] = _xmlplus -+ cleared_modules = [] -+ redefined_modules = [] -+ for module in sys.modules: -+ if module.startswith("xml.") and not module.startswith(("xml.marshal", "xml.schema", "xml.utils", "xml.xpath", "xml.xslt")): -+ cleared_modules.append(module) -+ if module.startswith(("xml.__init__", "xml.dom", "xml.parsers", "xml.sax")) and sys.modules[module] is not None: -+ redefined_modules.append(module) -+ for module in cleared_modules: -+ del sys.modules[module] -+ for module in sorted(redefined_modules): -+ __import__(module) - else: -- if v >= _MINIMUM_XMLPLUS_VERSION: -- import sys -- _xmlplus.__path__.extend(__path__) -- sys.modules[__name__] = _xmlplus -- else: -- del v -+ raise ImportError("PyXML too old: %s" % ".".join(str(x) for x in v)) diff --git a/dev-lang/python/files/2.6/81_all_use_new_readline_function_types__closes__20374_.patch b/dev-lang/python/files/2.6/81_all_use_new_readline_function_types__closes__20374_.patch deleted file mode 100644 index b63f4c7..0000000 --- a/dev-lang/python/files/2.6/81_all_use_new_readline_function_types__closes__20374_.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# User Benjamin Peterson <benjamin@python.org> -# Date 1390541532 18000 -# Fri Jan 24 00:32:12 2014 -0500 -# Branch 2.7 -# Node ID 79b82ebc4fd17fda401c32840da1da0577e3c73e -# Parent f28b60141c5c417111670a22b223f0c411136c7b -use new readline function types (closes #20374) - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -911,12 +911,12 @@ - rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); - rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); - /* Set our hook functions */ -- rl_startup_hook = (Function *)on_startup_hook; -+ rl_startup_hook = (rl_hook_func_t *)on_startup_hook; - #ifdef HAVE_RL_PRE_INPUT_HOOK -- rl_pre_input_hook = (Function *)on_pre_input_hook; -+ rl_pre_input_hook = (rl_hook_func_t *)on_pre_input_hook; - #endif - /* Set our completion function */ -- rl_attempted_completion_function = (CPPFunction *)flex_complete; -+ rl_attempted_completion_function = (rl_completion_func_t *)flex_complete; - /* Set Python word break characters */ - completer_word_break_characters = - rl_completer_word_break_characters = diff --git a/dev-lang/python/files/2.6/82_all_new_plan__just_remove_typecasts__closes__20374_.patch b/dev-lang/python/files/2.6/82_all_new_plan__just_remove_typecasts__closes__20374_.patch deleted file mode 100644 index 71ac4b1..0000000 --- a/dev-lang/python/files/2.6/82_all_new_plan__just_remove_typecasts__closes__20374_.patch +++ /dev/null @@ -1,37 +0,0 @@ -# HG changeset patch -# User Benjamin Peterson <benjamin@python.org> -# Date 1390581856 18000 -# Fri Jan 24 11:44:16 2014 -0500 -# Branch 2.7 -# Node ID 5e42e5764ac6277d61c0af231d402f59c223c91a -# Parent 79b82ebc4fd17fda401c32840da1da0577e3c73e -new plan: just remove typecasts (closes #20374) - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -852,7 +852,7 @@ - * before calling the normal completer */ - - static char ** --flex_complete(char *text, int start, int end) -+flex_complete(const char *text, int start, int end) - { - #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER - rl_completion_append_character ='\0'; -@@ -911,12 +911,12 @@ - rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); - rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); - /* Set our hook functions */ -- rl_startup_hook = (rl_hook_func_t *)on_startup_hook; -+ rl_startup_hook = on_startup_hook; - #ifdef HAVE_RL_PRE_INPUT_HOOK -- rl_pre_input_hook = (rl_hook_func_t *)on_pre_input_hook; -+ rl_pre_input_hook = on_pre_input_hook; - #endif - /* Set our completion function */ -- rl_attempted_completion_function = (rl_completion_func_t *)flex_complete; -+ rl_attempted_completion_function = flex_complete; - /* Set Python word break characters */ - completer_word_break_characters = - rl_completer_word_break_characters = diff --git a/dev-lang/python/files/2.6/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch b/dev-lang/python/files/2.6/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch deleted file mode 100644 index 9934b80..0000000 --- a/dev-lang/python/files/2.6/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch +++ /dev/null @@ -1,37 +0,0 @@ -# HG changeset patch -# User Ned Deily <nad@acm.org> -# Date 1391647946 28800 -# Wed Feb 05 16:52:26 2014 -0800 -# Branch 2.7 -# Node ID 0b5b0bfcc7b1dba77ee70ec6abba9037abf93acb -# Parent 48c5c18110ae810c09b176f4cedf228cc3487451 -Issue #20374: Avoid compiler warnings when compiling readline with libedit. - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -749,15 +749,24 @@ - return result; - } - -+ - static int -+#if defined(_RL_FUNCTION_TYPEDEF) - on_startup_hook(void) -+#else -+on_startup_hook() -+#endif - { - return on_hook(startup_hook); - } - - #ifdef HAVE_RL_PRE_INPUT_HOOK - static int -+#if defined(_RL_FUNCTION_TYPEDEF) - on_pre_input_hook(void) -+#else -+on_pre_input_hook() -+#endif - { - return on_hook(pre_input_hook); - } diff --git a/dev-lang/python/files/2.6/99_all_tcl86.patch b/dev-lang/python/files/2.6/99_all_tcl86.patch deleted file mode 100644 index 2362e98..0000000 --- a/dev-lang/python/files/2.6/99_all_tcl86.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/setup.py -+++ b/setup.py -@@ -1518,7 +1518,7 @@ - # The versions with dots are used on Unix, and the versions without - # dots on Windows, for detection by cygwin. - tcllib = tklib = tcl_includes = tk_includes = None -- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', -+ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', '8.2', - '82', '8.1', '81', '8.0', '80']: - tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) - tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/dev-lang/python/files/3.2/01_all_static_library_location.patch b/dev-lang/python/files/3.2/01_all_static_library_location.patch deleted file mode 100644 index 82ee2cd..0000000 --- a/dev-lang/python/files/3.2/01_all_static_library_location.patch +++ /dev/null @@ -1,70 +0,0 @@ -Install libpythonX.Y.a in /usr/lib instead of /usr/lib/pythonX.Y/config. -https://bugs.gentoo.org/show_bug.cgi?id=252372 -http://bugs.python.org/issue6103 - ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -901,6 +901,19 @@ - fi; \ - else true; \ - fi -+ @if test -f $(LIBRARY) && test $(LIBRARY) != $(LDLIBRARY); then \ -+ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -+ if test "$(SHLIB_SUFFIX)" = .dll; then \ -+ $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBDIR); \ -+ else \ -+ $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBDIR); \ -+ $(RANLIB) $(DESTDIR)$(LIBDIR)/$(LIBRARY); \ -+ fi; \ -+ else \ -+ echo "Skipped install of $(LIBRARY) - use make frameworkinstall"; \ -+ fi; \ -+ else true; \ -+ fi - - bininstall: altbininstall - -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE); \ -@@ -1103,18 +1116,6 @@ - else true; \ - fi; \ - done -- @if test -d $(LIBRARY); then :; else \ -- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -- if test "$(SHLIB_SUFFIX)" = .dll; then \ -- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ -- else \ -- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- fi; \ -- else \ -- echo Skip install of $(LIBRARY) - use make frameworkinstall; \ -- fi; \ -- fi - $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c - $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in ---- Misc/python-config.in -+++ Misc/python-config.in -@@ -47,11 +47,7 @@ - elif opt in ('--libs', '--ldflags'): - libs = getvar('LIBS').split() + getvar('SYSLIBS').split() - libs.append('-lpython' + pyver + sys.abiflags) -- # add the prefix/lib/pythonX.Y/config dir, but only if there is no -- # shared library in prefix/lib/. - if opt == '--ldflags': -- if not getvar('Py_ENABLE_SHARED'): -- libs.insert(0, '-L' + getvar('LIBPL')) - if not getvar('PYTHONFRAMEWORK'): - libs.extend(getvar('LINKFORSHARED').split()) - print(' '.join(libs)) ---- Modules/makesetup -+++ Modules/makesetup -@@ -89,7 +89,7 @@ - then - ExtraLibDir=. - else -- ExtraLibDir='$(LIBPL)' -+ ExtraLibDir='$(LIBDIR)' - fi - ExtraLibs="-L$ExtraLibDir -lpython\$(VERSION)";; - esac diff --git a/dev-lang/python/files/3.2/02_all_disable_modules_and_ssl.patch b/dev-lang/python/files/3.2/02_all_disable_modules_and_ssl.patch deleted file mode 100644 index 51bc0da..0000000 --- a/dev-lang/python/files/3.2/02_all_disable_modules_and_ssl.patch +++ /dev/null @@ -1,89 +0,0 @@ ---- setup.py -+++ setup.py -@@ -21,7 +21,17 @@ - COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount') - - # This global variable is used to hold the list of modules to be disabled. --disabled_module_list = [] -+pdm_env = "PYTHON_DISABLE_MODULES" -+if pdm_env in os.environ: -+ disabled_module_list = os.environ[pdm_env].split() -+else: -+ disabled_module_list = [] -+ -+pds_env = "PYTHON_DISABLE_SSL" -+if pds_env in os.environ: -+ disable_ssl = os.environ[pds_env] -+else: -+ disable_ssl = 0 - - # File which contains the directory for shared mods (for sys.path fixup - # when running from the build dir, see Modules/getpath.c) -@@ -410,6 +420,7 @@ - os.unlink(tmpfile) - - def detect_modules(self): -+ global disable_ssl - # Ensure that /usr/local is always used, but the local build - # directories (i.e. '.' and 'Include') must be first. See issue - # 10520. -@@ -699,7 +710,7 @@ - ssl_incs = find_file('openssl/ssl.h', inc_dirs, - search_for_ssl_incs_in - ) -- if ssl_incs is not None: -+ if ssl_incs is not None and not disable_ssl: - krb5_h = find_file('krb5.h', inc_dirs, - ['/usr/kerberos/include']) - if krb5_h: -@@ -710,7 +721,8 @@ - ] ) - - if (ssl_incs is not None and -- ssl_libs is not None): -+ ssl_libs is not None and -+ not disable_ssl): - exts.append( Extension('_ssl', ['_ssl.c'], - include_dirs = ssl_incs, - library_dirs = ssl_libs, -@@ -743,7 +755,7 @@ - - #print('openssl_ver = 0x%08x' % openssl_ver) - min_openssl_ver = 0x00907000 -- have_any_openssl = ssl_incs is not None and ssl_libs is not None -+ have_any_openssl = ssl_incs is not None and ssl_libs is not None and not disable_ssl - have_usable_openssl = (have_any_openssl and - openssl_ver >= min_openssl_ver) - -@@ -761,20 +773,17 @@ - openssl_ver) - missing.append('_hashlib') - -- min_sha2_openssl_ver = 0x00908000 -- if COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver: -- # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash -- exts.append( Extension('_sha256', ['sha256module.c'], -- depends=['hashlib.h']) ) -- exts.append( Extension('_sha512', ['sha512module.c'], -- depends=['hashlib.h']) ) -- -- if COMPILED_WITH_PYDEBUG or not have_usable_openssl: -- # no openssl at all, use our own md5 and sha1 -- exts.append( Extension('_md5', ['md5module.c'], -- depends=['hashlib.h']) ) -- exts.append( Extension('_sha1', ['sha1module.c'], -- depends=['hashlib.h']) ) -+ ### Build these unconditionally so emerge won't fail -+ ### when openssl is dropped/broken etc. -+ exts.append( Extension('_sha256', ['sha256module.c'], -+ depends=['hashlib.h']) ) -+ exts.append( Extension('_sha512', ['sha512module.c'], -+ depends=['hashlib.h']) ) -+ -+ exts.append( Extension('_md5', ['md5module.c'], -+ depends=['hashlib.h']) ) -+ exts.append( Extension('_sha1', ['sha1module.c'], -+ depends=['hashlib.h']) ) - - # Modules that provide persistent dictionary-like semantics. You will - # probably want to arrange for at least one of them to be available on diff --git a/dev-lang/python/files/3.2/03_all_libdir.patch b/dev-lang/python/files/3.2/03_all_libdir.patch deleted file mode 100644 index 613114a..0000000 --- a/dev-lang/python/files/3.2/03_all_libdir.patch +++ /dev/null @@ -1,174 +0,0 @@ ---- Lib/distutils/command/install.py -+++ Lib/distutils/command/install.py -@@ -44,8 +44,8 @@ - - INSTALL_SCHEMES = { - 'unix_prefix': { -- 'purelib': '$base/lib/python$py_version_short/site-packages', -- 'platlib': '$platbase/lib/python$py_version_short/site-packages', -+ 'purelib': '$base/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', -+ 'platlib': '$platbase/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', - 'headers': '$base/include/python$py_version_short$abiflags/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -123,7 +123,7 @@ - - if os.name == "posix": - libpython = os.path.join(prefix, -- "lib", "python" + get_python_version()) -+ "@@GENTOO_LIBDIR@@", "python" + get_python_version()) - if standard_lib: - return libpython - else: ---- Lib/site.py -+++ Lib/site.py -@@ -285,10 +285,10 @@ - if sys.platform in ('os2emx', 'riscos'): - sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) - elif os.sep == '/': -- sitepackages.append(os.path.join(prefix, "lib", -+ sitepackages.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", - "python" + sys.version[:3], - "site-packages")) -- sitepackages.append(os.path.join(prefix, "lib", "site-python")) -+ sitepackages.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", "site-python")) - else: - sitepackages.append(prefix) - sitepackages.append(os.path.join(prefix, "lib", "site-packages")) ---- Lib/sysconfig.py -+++ Lib/sysconfig.py -@@ -21,10 +21,10 @@ - - _INSTALL_SCHEMES = { - 'posix_prefix': { -- 'stdlib': '{base}/lib/python{py_version_short}', -- 'platstdlib': '{platbase}/lib/python{py_version_short}', -- 'purelib': '{base}/lib/python{py_version_short}/site-packages', -- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages', -+ 'stdlib': '{base}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'platstdlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'purelib': '{base}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', -+ 'platlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', - 'include': - '{base}/include/python{py_version_short}{abiflags}', - 'platinclude': -@@ -81,10 +81,10 @@ - 'data' : '{userbase}', - }, - 'posix_user': { -- 'stdlib': '{userbase}/lib/python{py_version_short}', -- 'platstdlib': '{userbase}/lib/python{py_version_short}', -- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', -- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', -+ 'stdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'platstdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'purelib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', -+ 'platlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', - 'include': '{userbase}/include/python{py_version_short}', - 'scripts': '{userbase}/bin', - 'data' : '{userbase}', ---- Lib/test/test_site.py -+++ Lib/test/test_site.py -@@ -237,10 +237,10 @@ - elif os.sep == '/': - # OS X non-framwework builds, Linux, FreeBSD, etc - self.assertEqual(len(dirs), 2) -- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], -+ wanted = os.path.join('xoxo', '@@GENTOO_LIBDIR@@', 'python' + sys.version[:3], - 'site-packages') - self.assertEqual(dirs[0], wanted) -- wanted = os.path.join('xoxo', 'lib', 'site-python') -+ wanted = os.path.join('xoxo', '@@GENTOO_LIBDIR@@', 'site-python') - self.assertEqual(dirs[1], wanted) - else: - # other platforms ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -115,7 +115,7 @@ - MANDIR= @mandir@ - INCLUDEDIR= @includedir@ - CONFINCLUDEDIR= $(exec_prefix)/include --SCRIPTDIR= $(prefix)/lib -+SCRIPTDIR= $(prefix)/@@GENTOO_LIBDIR@@ - ABIFLAGS= @ABIFLAGS@ - - # Detailed destination directories ---- Modules/getpath.c -+++ Modules/getpath.c -@@ -122,8 +122,8 @@ - #endif - - #ifndef PYTHONPATH --#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ -- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" -+#define PYTHONPATH PREFIX "/@@GENTOO_LIBDIR@@/python" VERSION ":" \ -+ EXEC_PREFIX "/@@GENTOO_LIBDIR@@/python" VERSION "/lib-dynload" - #endif - - #ifndef LANDMARK -@@ -135,7 +135,7 @@ - static wchar_t progpath[MAXPATHLEN+1]; - static wchar_t *module_search_path = NULL; - static int module_search_path_malloced = 0; --static wchar_t *lib_python = L"lib/python" VERSION; -+static wchar_t *lib_python = L"@@GENTOO_LIBDIR@@/python" VERSION; - - static void - reduce(wchar_t *dir) -@@ -583,7 +583,7 @@ - } - else - wcsncpy(zip_path, _prefix, MAXPATHLEN); -- joinpath(zip_path, L"lib/python00.zip"); -+ joinpath(zip_path, L"@@GENTOO_LIBDIR@@/python00.zip"); - bufsz = wcslen(zip_path); /* Replace "00" with version */ - zip_path[bufsz - 6] = VERSION[0]; - zip_path[bufsz - 5] = VERSION[2]; -@@ -593,7 +593,7 @@ - fprintf(stderr, - "Could not find platform dependent libraries <exec_prefix>\n"); - wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN); -- joinpath(exec_prefix, L"lib/lib-dynload"); -+ joinpath(exec_prefix, L"@@GENTOO_LIBDIR@@/lib-dynload"); - } - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ - ---- Modules/Setup.dist -+++ Modules/Setup.dist -@@ -352,7 +352,7 @@ - # Andrew Kuchling's zlib module. - # This require zlib 1.1.3 (or later). - # See http://www.gzip.org/zlib/ --#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz -+#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/@@GENTOO_LIBDIR@@ -lz - - # Interface to the Expat XML parser - # ---- setup.py -+++ setup.py -@@ -477,8 +477,7 @@ - # if a file is found in one of those directories, it can - # be assumed that no additional -I,-L directives are needed. - lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -+ '/@@GENTOO_LIBDIR@@', '/usr/@@GENTOO_LIBDIR@@', - ] - inc_dirs = self.compiler.include_dirs + ['/usr/include'] - exts = [] -@@ -675,11 +674,11 @@ - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + -- ['/usr/lib/termcap'], -+ ['/usr/@@GENTOO_LIBDIR@@/termcap'], - 'termcap'): - readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=['/usr/@@GENTOO_LIBDIR@@/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) - else: diff --git a/dev-lang/python/files/3.2/04_all_non-zero_exit_status_on_failure.patch b/dev-lang/python/files/3.2/04_all_non-zero_exit_status_on_failure.patch deleted file mode 100644 index 8b7ccd8..0000000 --- a/dev-lang/python/files/3.2/04_all_non-zero_exit_status_on_failure.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=281968 -http://bugs.python.org/issue6731 - ---- setup.py -+++ setup.py -@@ -37,6 +37,8 @@ - # when running from the build dir, see Modules/getpath.c) - _BUILDDIR_COOKIE = "pybuilddir.txt" - -+exit_status = 0 -+ - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative - directories) if: -@@ -284,6 +286,8 @@ - print() - - if self.failed: -+ global exit_status -+ exit_status = 1 - failed = self.failed[:] - print() - print("Failed to build these modules:") -@@ -1946,6 +1950,7 @@ - scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", - "Tools/scripts/2to3"] - ) -+ sys.exit(exit_status) - - # --install-platlib - if __name__ == '__main__': diff --git a/dev-lang/python/files/3.2/05_all_regenerate_platform-specific_modules.patch b/dev-lang/python/files/3.2/05_all_regenerate_platform-specific_modules.patch deleted file mode 100644 index 0bc3fe6..0000000 --- a/dev-lang/python/files/3.2/05_all_regenerate_platform-specific_modules.patch +++ /dev/null @@ -1,112 +0,0 @@ -http://bugs.python.org/issue12619 - ---- Lib/plat-aix4/regen -+++ Lib/plat-aix4/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h ---- Lib/plat-linux2/regen -+++ Lib/plat-linux2/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h /usr/include/linux/cdrom.h ---- Lib/plat-sunos5/regen -+++ Lib/plat-sunos5/regen -@@ -5,5 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h -- -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h ---- Lib/plat-unixware7/regen -+++ Lib/plat-unixware7/regen -@@ -5,5 +5,5 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/netinet/in.h --h2py /usr/include/sys/stropts.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py /usr/include/sys/stropts.h ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -408,7 +408,7 @@ - - # Default target - all: build_all --build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed -+build_all: $(BUILDPYTHON) oldsharedmods sharedmods platformspecificmods gdbhooks Modules/_testembed - - # Compile a binary with gcc profile guided optimization. - profile-opt: -@@ -457,6 +457,27 @@ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - ./$(BUILDPYTHON) -E $(srcdir)/setup.py $$quiet build - -+# Build the platform-specific modules -+platformspecificmods: $(BUILDPYTHON) sharedmods -+ @PLATDIR=$(PLATDIR); \ -+ if test ! -f $(srcdir)/Lib/$(PLATDIR)/regen; then \ -+ $(INSTALL) -d $(srcdir)/Lib/$(PLATDIR); \ -+ if test -f $(srcdir)/Lib/$${PLATDIR%?}/regen; then \ -+ cp $(srcdir)/Lib/$${PLATDIR%?}/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ else \ -+ cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ fi \ -+ fi -+ @EXE="$(BUILDEXE)"; export EXE; \ -+ PATH="`pwd`:$$PATH"; export PATH; \ -+ PYTHONPATH="`pwd`/Lib"; export PYTHONPATH; \ -+ if [ -n "$(MULTIARCH)" ]; then MULTIARCH=$(MULTIARCH); export MULTIARCH; fi; \ -+ cd $(srcdir)/Lib/$(PLATDIR); \ -+ $(RUNSHARED) ./regen || exit 1; \ -+ for module in *.py; do \ -+ $(RUNSHARED) $(BUILDPYTHON) -c "with open('$$module', 'rb') as module: compile(module.read(), '$$module', 'exec')" || exit 1; \ -+ done -+ - # Build static library - # avoid long command lines, same as LIBRARY_OBJS - $(LIBRARY): $(LIBRARY_OBJS) -@@ -983,7 +1004,7 @@ - multiprocessing multiprocessing/dummy \ - unittest unittest/test \ - curses pydoc_data $(MACHDEPS) --libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c -+libinstall: build_all $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ - if test ! -d $(DESTDIR)$$i; then \ -@@ -1066,17 +1087,6 @@ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt - --# Create the PLATDIR source directory, if one wasn't distributed.. --$(srcdir)/Lib/$(PLATDIR): -- mkdir $(srcdir)/Lib/$(PLATDIR) -- cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen -- export PATH; PATH="`pwd`:$$PATH"; \ -- export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ -- export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ -- export EXE; EXE="$(BUILDEXE)"; \ -- if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \ -- cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen -- - python-config: $(srcdir)/Misc/python-config.in - # Substitution happens here, as the completely-expanded BINDIR - # is not available in configure -@@ -1373,7 +1383,7 @@ - Python/thread.o: @THREADHEADERS@ - - # Declare targets that aren't real files --.PHONY: all build_all sharedmods oldsharedmods test quicktest memtest -+.PHONY: all build_all sharedmods oldsharedmods platformspecificmods test quicktest memtest - .PHONY: install altinstall oldsharedinstall bininstall altbininstall - .PHONY: maninstall libinstall inclinstall libainstall sharedinstall - .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure diff --git a/dev-lang/python/files/3.2/21_all_distutils_c++.patch b/dev-lang/python/files/3.2/21_all_distutils_c++.patch deleted file mode 100644 index c5aec72..0000000 --- a/dev-lang/python/files/3.2/21_all_distutils_c++.patch +++ /dev/null @@ -1,262 +0,0 @@ -http://bugs.python.org/issue1222585 - ---- Lib/distutils/cygwinccompiler.py -+++ Lib/distutils/cygwinccompiler.py -@@ -136,9 +136,13 @@ - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -162,8 +166,12 @@ - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -294,10 +302,15 @@ - self.set_executables(compiler='gcc -mno-cygwin -O -Wall', - compiler_so='gcc -mno-cygwin -mdll -O -Wall', - compiler_cxx='g++ -mno-cygwin -O -Wall', -+ compiler_so_cxx='g++ -mno-cygwin -mdll -O -Wall', - linker_exe='gcc -mno-cygwin', - linker_so='%s -mno-cygwin %s %s' - % (self.linker_dll, shared_option, -- entry_point)) -+ entry_point), -+ linker_exe_cxx='g++ -mno-cygwin', -+ linker_so_cxx='%s -mno-cygwin %s %s' -+ % (self.linker_dll, shared_option, -+ entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) - # (-mthreads: Support thread-safe exception handling on `Mingw32') ---- Lib/distutils/emxccompiler.py -+++ Lib/distutils/emxccompiler.py -@@ -63,8 +63,12 @@ - # XXX optimization, warnings etc. should be customizable. - self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - linker_exe='gcc -Zomf -Zmt -Zcrtdll', -- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') -+ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll', -+ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll', -+ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll') - - # want the gcc library statically linked (so that we don't have - # to distribute a version dependent on the compiler we have) -@@ -81,8 +85,12 @@ - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -170,9 +170,12 @@ - _osx_support.customize_compiler(_config_vars) - _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' - -- (cc, cxx, opt, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ -- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ (cc, cxx, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \ -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ -+ cflags = '' -+ cxxflags = '' - - newcc = None - if 'CC' in os.environ: -@@ -181,19 +184,27 @@ - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = opt + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -202,13 +213,17 @@ - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - - compiler.shared_lib_extension = shlib_suffix ---- Lib/distutils/unixccompiler.py -+++ Lib/distutils/unixccompiler.py -@@ -52,14 +52,17 @@ - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -108,12 +111,19 @@ - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _osx_support.compiler_fixup(compiler_so, - cc_args + extra_postargs) -+ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, -+ cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -171,22 +181,16 @@ - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i += 1 -- linker[i] = self.compiler_cxx[i] -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] -+ else: -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _osx_support.compiler_fixup(linker, ld_args) ---- Lib/_osx_support.py -+++ Lib/_osx_support.py -@@ -14,13 +14,13 @@ - # configuration variables that may contain universal build flags, - # like "-arch" or "-isdkroot", that may need customization for - # the user environment --_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', -- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', -- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', -- 'PY_CORE_CFLAGS') -+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', -+ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', -+ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS') - - # configuration variables that may contain compiler calls --_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') -+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') - - # prefix added to original configuration variable names - _INITPRE = '_OSX_SUPPORT_INITIAL_' ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -454,7 +454,7 @@ - *\ -s*|s*) quiet="-q";; \ - *) quiet="";; \ - esac; \ -- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - ./$(BUILDPYTHON) -E $(srcdir)/setup.py $$quiet build - - # Build the platform-specific modules diff --git a/dev-lang/python/files/3.2/22_all_tests_environment.patch b/dev-lang/python/files/3.2/22_all_tests_environment.patch deleted file mode 100644 index c3b990c..0000000 --- a/dev-lang/python/files/3.2/22_all_tests_environment.patch +++ /dev/null @@ -1,183 +0,0 @@ -http://bugs.python.org/issue1674555 - ---- Lib/site.py -+++ Lib/site.py -@@ -514,8 +514,9 @@ - known_paths = removeduppaths() - if ENABLE_USER_SITE is None: - ENABLE_USER_SITE = check_enableusersite() -- known_paths = addusersitepackages(known_paths) -- known_paths = addsitepackages(known_paths) -+ if os.environ.get("_PYTHONNOSITEPACKAGES") is None: -+ known_paths = addusersitepackages(known_paths) -+ known_paths = addsitepackages(known_paths) - if sys.platform == 'os2emx': - setBEGINLIBPATH() - setquit() ---- Lib/test/regrtest.py -+++ Lib/test/regrtest.py -@@ -174,6 +174,7 @@ - import unittest - import warnings - from inspect import isabstract -+from subprocess import Popen, PIPE - - try: - import threading -@@ -510,6 +511,57 @@ - support.use_resources = use_resources - save_modules = sys.modules.keys() - -+ opt_args = support.args_from_interpreter_flags() -+ base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest'] -+ debug_output_pat = re.compile(r"\[\d+ refs\]$") -+ -+ def get_args_tuple(test, verbose, quiet, huntrleaks, debug, use_resources, -+ output_on_failure, failfast, match_tests): -+ return ( -+ (test, verbose, quiet), -+ dict(huntrleaks=huntrleaks, debug=debug, -+ use_resources=use_resources, -+ output_on_failure=output_on_failure, failfast=failfast, -+ match_tests=match_tests) -+ ) -+ -+ def _runtest(test, verbose, quiet, huntrleaks=False, debug=False, -+ use_resources=None, output_on_failure=False, failfast=False, -+ match_tests=None): -+ if test == "test_site": -+ args_tuple = get_args_tuple(test, verbose, quiet, huntrleaks, debug, -+ use_resources, output_on_failure, -+ failfast, match_tests) -+ env = os.environ.copy() -+ try: -+ del env["_PYTHONNOSITEPACKAGES"] -+ except KeyError: -+ pass -+ popen = Popen(base_cmd + ['--slaveargs', json.dumps(args_tuple)], -+ stdout=PIPE, stderr=PIPE, -+ universal_newlines=True, -+ close_fds=(os.name != 'nt'), -+ env=env) -+ stdout, stderr = popen.communicate() -+ # Strip last refcount output line if it exists, since it -+ # comes from the shutdown of the interpreter in the subcommand. -+ stderr = debug_output_pat.sub("", stderr) -+ stdout, _, result = stdout.strip().rpartition("\n") -+ result = json.loads(result) -+ if stdout: -+ print(stdout) -+ if stderr: -+ print(stderr, file=sys.stderr) -+ if result[0] == INTERRUPTED: -+ assert result[1] == 'KeyboardInterrupt' -+ raise KeyboardInterrupt -+ return result -+ else: -+ return runtest(test, verbose, quiet, huntrleaks=huntrleaks, -+ debug=debug, use_resources=use_resources, -+ output_on_failure=output_on_failure, -+ failfast=failfast, match_tests=match_tests) -+ - def accumulate_result(test, result): - ok, test_time = result - test_times.append((test_time, test)) -@@ -547,12 +599,8 @@ - print("Multiprocess option requires thread support") - sys.exit(2) - from queue import Queue -- from subprocess import Popen, PIPE -- debug_output_pat = re.compile(r"\[\d+ refs\]$") - output = Queue() - pending = MultiprocessTests(tests) -- opt_args = support.args_from_interpreter_flags() -- base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest'] - def work(): - # A worker thread. - try: -@@ -562,12 +610,9 @@ - except StopIteration: - output.put((None, None, None, None)) - return -- args_tuple = ( -- (test, verbose, quiet), -- dict(huntrleaks=huntrleaks, use_resources=use_resources, -- debug=debug, output_on_failure=verbose3, -- failfast=failfast, match_tests=match_tests) -- ) -+ args_tuple = get_args_tuple(test, verbose, quiet, huntrleaks, -+ debug, use_resources, verbose3, -+ failfast, match_tests) - # -E is needed by some tests, e.g. test_import - # Running the child from the same working directory ensures - # that TEMPDIR for the child is the same when -@@ -632,13 +677,13 @@ - if trace: - # If we're tracing code coverage, then we don't exit with status - # if on a false return value from main. -- tracer.runctx('runtest(test, verbose, quiet)', -+ tracer.runctx('_runtest(test, verbose, quiet)', - globals=globals(), locals=vars()) - else: - try: -- result = runtest(test, verbose, quiet, huntrleaks, debug, -- output_on_failure=verbose3, -- failfast=failfast, match_tests=match_tests) -+ result = _runtest(test, verbose, quiet, huntrleaks, debug, -+ output_on_failure=verbose3, -+ failfast=failfast, match_tests=match_tests) - accumulate_result(test, result) - except KeyboardInterrupt: - interrupted = True -@@ -709,7 +754,7 @@ - sys.stdout.flush() - try: - verbose = True -- ok = runtest(test, True, quiet, huntrleaks, debug) -+ ok = _runtest(test, True, quiet, huntrleaks, debug) - except KeyboardInterrupt: - # print a newline separate from the ^C - print() -@@ -1077,8 +1122,9 @@ - for name, get, restore in self.resource_info(): - current = get() - original = saved_values.pop(name) -- # Check for changes to the resource's value -- if current != original: -+ # Check for changes to the resource's value. test_site is always run -+ # in a subprocess and is allowed to change os.environ and sys.path. -+ if current != original and self.testname != "test_site": - self.changed = True - restore(original) - if not self.quiet: ---- Lib/test/test_site.py -+++ Lib/test/test_site.py -@@ -8,6 +8,7 @@ - from test.support import run_unittest, TESTFN, EnvironmentVarGuard - from test.support import captured_stderr - import builtins -+import imp - import os - import sys - import re -@@ -21,6 +22,9 @@ - # already. - if "site" in sys.modules: - import site -+ if "_PYTHONNOSITEPACKAGES" in os.environ: -+ del os.environ["_PYTHONNOSITEPACKAGES"] -+ imp.reload(site) - else: - raise unittest.SkipTest("importation of site.py suppressed") - ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -814,7 +814,7 @@ - - TESTOPTS= -l $(EXTRATESTOPTS) - TESTPROG= $(srcdir)/Lib/test/regrtest.py --TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -Wd -E -R -bb $(TESTPYTHONOPTS) -+TESTPYTHON= _PYTHONNOSITEPACKAGES=1 $(RUNSHARED) ./$(BUILDPYTHON) -Wd -E -R -bb $(TESTPYTHONOPTS) - test: all platform - -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f - -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) diff --git a/dev-lang/python/files/3.2/23_all_h2py_encoding.patch b/dev-lang/python/files/3.2/23_all_h2py_encoding.patch deleted file mode 100644 index d594f56..0000000 --- a/dev-lang/python/files/3.2/23_all_h2py_encoding.patch +++ /dev/null @@ -1,173 +0,0 @@ -http://bugs.python.org/issue13032 - ---- Tools/scripts/h2py.py -+++ Tools/scripts/h2py.py -@@ -23,36 +23,36 @@ - - import sys, re, getopt, os - --p_define = re.compile('^[\t ]*#[\t ]*define[\t ]+([a-zA-Z0-9_]+)[\t ]+') -+p_define = re.compile(b'^[\t ]*#[\t ]*define[\t ]+([a-zA-Z0-9_]+)[\t ]+') - - p_macro = re.compile( -- '^[\t ]*#[\t ]*define[\t ]+' -- '([a-zA-Z0-9_]+)\(([_a-zA-Z][_a-zA-Z0-9]*)\)[\t ]+') -+ b'^[\t ]*#[\t ]*define[\t ]+' -+ b'([a-zA-Z0-9_]+)\(([_a-zA-Z][_a-zA-Z0-9]*)\)[\t ]+') - --p_include = re.compile('^[\t ]*#[\t ]*include[\t ]+<([a-zA-Z0-9_/\.]+)') -+p_include = re.compile(b'^[\t ]*#[\t ]*include[\t ]+<([a-zA-Z0-9_/\.]+)') - --p_comment = re.compile(r'/\*([^*]+|\*+[^/])*(\*+/)?') --p_cpp_comment = re.compile('//.*') -+p_comment = re.compile(br'/\*([^*]+|\*+[^/])*(\*+/)?') -+p_cpp_comment = re.compile(b'//.*') - - ignores = [p_comment, p_cpp_comment] - --p_char = re.compile(r"'(\\.[^\\]*|[^\\])'") -+p_char = re.compile(br"'(\\.[^\\]*|[^\\])'") - --p_hex = re.compile(r"0x([0-9a-fA-F]+)L?") -+p_hex = re.compile(br"0x([0-9a-fA-F]+)L?") - - filedict = {} - importable = {} - - try: -- searchdirs=os.environ['include'].split(';') -+ searchdirs=os.environb[b'include'].split(b';') - except KeyError: - try: -- searchdirs=os.environ['INCLUDE'].split(';') -+ searchdirs=os.environb[b'INCLUDE'].split(b';') - except KeyError: -- searchdirs=['/usr/include'] -+ searchdirs=[b'/usr/include'] - try: -- searchdirs.insert(0, os.path.join('/usr/include', -- os.environ['MULTIARCH'])) -+ searchdirs.insert(0, os.path.join(b'/usr/include', -+ os.environb[b'MULTIARCH'])) - except KeyError: - pass - -@@ -61,22 +61,23 @@ - opts, args = getopt.getopt(sys.argv[1:], 'i:') - for o, a in opts: - if o == '-i': -- ignores.append(re.compile(a)) -+ ignores.append(re.compile(a.encode())) - if not args: - args = ['-'] - for filename in args: - if filename == '-': - sys.stdout.write('# Generated by h2py from stdin\n') -- process(sys.stdin, sys.stdout) -+ process(sys.stdin.buffer, sys.stdout.buffer) - else: -- fp = open(filename, 'r') -+ filename = filename.encode() -+ fp = open(filename, 'rb') - outfile = os.path.basename(filename) -- i = outfile.rfind('.') -+ i = outfile.rfind(b'.') - if i > 0: outfile = outfile[:i] - modname = outfile.upper() -- outfile = modname + '.py' -- outfp = open(outfile, 'w') -- outfp.write('# Generated by h2py from %s\n' % filename) -+ outfile = modname + b'.py' -+ outfp = open(outfile, 'wb') -+ outfp.write(b'# Generated by h2py from ' + filename + b'\n') - filedict = {} - for dir in searchdirs: - if filename[:len(dir)] == dir: -@@ -90,9 +91,9 @@ - def pytify(body): - # replace ignored patterns by spaces - for p in ignores: -- body = p.sub(' ', body) -+ body = p.sub(b' ', body) - # replace char literals by ord(...) -- body = p_char.sub("ord('\\1')", body) -+ body = p_char.sub(b"ord('\\1')", body) - # Compute negative hexadecimal constants - start = 0 - UMAX = 2*(sys.maxsize+1) -@@ -103,7 +104,7 @@ - val = int(body[slice(*m.span(1))], 16) - if val > sys.maxsize: - val -= UMAX -- body = body[:s] + "(" + str(val) + ")" + body[e:] -+ body = body[:s] + b"(" + str(val).encode() + b")" + body[e:] - start = s + 1 - return body - -@@ -116,7 +117,7 @@ - match = p_define.match(line) - if match: - # gobble up continuation lines -- while line[-2:] == '\\\n': -+ while line[-2:] == b'\\\n': - nextline = fp.readline() - if not nextline: break - lineno = lineno + 1 -@@ -125,11 +126,11 @@ - body = line[match.end():] - body = pytify(body) - ok = 0 -- stmt = '%s = %s\n' % (name, body.strip()) -+ stmt = name + b' = ' + body.strip() + b'\n' - try: - exec(stmt, env) - except: -- sys.stderr.write('Skipping: %s' % stmt) -+ sys.stderr.buffer.write(b'Skipping: ' + stmt) - else: - outfp.write(stmt) - match = p_macro.match(line) -@@ -137,11 +138,11 @@ - macro, arg = match.group(1, 2) - body = line[match.end():] - body = pytify(body) -- stmt = 'def %s(%s): return %s\n' % (macro, arg, body) -+ stmt = b'def ' + macro + b'(' + arg + b'): return ' + body + b'\n' - try: - exec(stmt, env) - except: -- sys.stderr.write('Skipping: %s' % stmt) -+ sys.stderr.buffer.write(b'Skipping: ' + stmt) - else: - outfp.write(stmt) - match = p_include.match(line) -@@ -150,23 +151,24 @@ - a, b = regs[1] - filename = line[a:b] - if filename in importable: -- outfp.write('from %s import *\n' % importable[filename]) -+ outfp.write(b'from ' + importable[filename] + b' import *\n') - elif filename not in filedict: - filedict[filename] = None - inclfp = None - for dir in searchdirs: - try: -- inclfp = open(dir + '/' + filename) -+ inclfp = open(dir + b'/' + filename, 'rb') - break - except IOError: - pass - if inclfp: - outfp.write( -- '\n# Included from %s\n' % filename) -+ b'\n# Included from ' + filename + b'\n') - process(inclfp, outfp, env) -+ inclfp.close() - else: -- sys.stderr.write('Warning - could not find file %s\n' % -- filename) -+ sys.stderr.buffer.write(b'Warning - could not find file ' + -+ filename + b'\n') - - if __name__ == '__main__': - main() diff --git a/dev-lang/python/files/3.2/41_all_crosscompile.patch b/dev-lang/python/files/3.2/41_all_crosscompile.patch deleted file mode 100644 index c35d2ba..0000000 --- a/dev-lang/python/files/3.2/41_all_crosscompile.patch +++ /dev/null @@ -1,94 +0,0 @@ -Crosscompile - ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -202,6 +202,7 @@ - - PYTHON= python$(EXE) - BUILDPYTHON= python$(BUILDEXE) -+HOSTPYTHON= $(BUILDPYTHON) - - # The task to run while instrument when building the profile-opt target - PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck -@@ -244,6 +245,7 @@ - ########################################################################## - # Parser - PGEN= Parser/pgen$(EXE) -+HOSTPGEN= $(PGEN) - - POBJS= \ - Parser/acceler.o \ -@@ -455,7 +457,7 @@ - *) quiet="";; \ - esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ -- ./$(BUILDPYTHON) -E $(srcdir)/setup.py $$quiet build -+ ./$(HOSTPYTHON) -E $(srcdir)/setup.py $$quiet build - - # Build the platform-specific modules - platformspecificmods: $(BUILDPYTHON) sharedmods -@@ -635,9 +637,9 @@ - - # Use a stamp file to prevent make -j invoking pgen twice - $(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp --Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT) -+Parser/pgen.stamp: $(HOSTPGEN) $(GRAMMAR_INPUT) - -@$(INSTALL) -d Include -- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) -+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) - -touch Parser/pgen.stamp - - $(PGEN): $(PGENOBJS) -@@ -1065,27 +1067,27 @@ - $(DESTDIR)$(LIBDEST)/distutils/tests ; \ - fi - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -+ ./$(HOSTPYTHON) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt -+ ./$(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- ./$(BUILDPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt -+ ./$(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt - - python-config: $(srcdir)/Misc/python-config.in - # Substitution happens here, as the completely-expanded BINDIR -@@ -1157,7 +1159,7 @@ - # Install the dynamically loadable modules - # This goes into $(exec_prefix) - sharedinstall: sharedmods -- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ -+ $(RUNSHARED) ./$(HOSTPYTHON) -E $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ - --install-platlib=$(DESTSHARED) \ ---- setup.py -+++ setup.py -@@ -345,6 +345,7 @@ - try: - imp.load_dynamic(ext.name, ext_filename) - except ImportError as why: -+ return - self.failed.append(ext.name) - self.announce('*** WARNING: renaming "%s" since importing it' - ' failed: %s' % (ext.name, why), level=3) diff --git a/dev-lang/python/files/3.2/81_all_use_new_readline_function_types__closes__20374_.patch b/dev-lang/python/files/3.2/81_all_use_new_readline_function_types__closes__20374_.patch deleted file mode 100644 index 419f7a0..0000000 --- a/dev-lang/python/files/3.2/81_all_use_new_readline_function_types__closes__20374_.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# User Benjamin Peterson <benjamin@python.org> -# Date 1390541532 18000 -# Fri Jan 24 00:32:12 2014 -0500 -# Branch 3.3 -# Node ID fb2259d9f6b4104be0015068e3293b3abb68dce7 -# Parent fed5d501a179138e3b214e463a0bc13943de7ce5 -use new readline function types (closes #20374) - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -936,12 +936,12 @@ - rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); - rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); - /* Set our hook functions */ -- rl_startup_hook = (Function *)on_startup_hook; -+ rl_startup_hook = (rl_hook_func_t *)on_startup_hook; - #ifdef HAVE_RL_PRE_INPUT_HOOK -- rl_pre_input_hook = (Function *)on_pre_input_hook; -+ rl_pre_input_hook = (rl_hook_func_t *)on_pre_input_hook; - #endif - /* Set our completion function */ -- rl_attempted_completion_function = (CPPFunction *)flex_complete; -+ rl_attempted_completion_function = (rl_completion_func_t *)flex_complete; - /* Set Python word break characters */ - completer_word_break_characters = - rl_completer_word_break_characters = diff --git a/dev-lang/python/files/3.2/82_all_new_plan__just_remove_typecasts__closes__20374_.patch b/dev-lang/python/files/3.2/82_all_new_plan__just_remove_typecasts__closes__20374_.patch deleted file mode 100644 index d0716f9..0000000 --- a/dev-lang/python/files/3.2/82_all_new_plan__just_remove_typecasts__closes__20374_.patch +++ /dev/null @@ -1,37 +0,0 @@ -# HG changeset patch -# User Benjamin Peterson <benjamin@python.org> -# Date 1390581856 18000 -# Fri Jan 24 11:44:16 2014 -0500 -# Branch 3.3 -# Node ID fc62fcd8e990d80b15177716437f20da49b9dccf -# Parent b3eaeb4bdf84a8f89afaf24c0308bd0d13987844 -new plan: just remove typecasts (closes #20374) - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -877,7 +877,7 @@ - * before calling the normal completer */ - - static char ** --flex_complete(char *text, int start, int end) -+flex_complete(const char *text, int start, int end) - { - #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER - rl_completion_append_character ='\0'; -@@ -936,12 +936,12 @@ - rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); - rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); - /* Set our hook functions */ -- rl_startup_hook = (rl_hook_func_t *)on_startup_hook; -+ rl_startup_hook = on_startup_hook; - #ifdef HAVE_RL_PRE_INPUT_HOOK -- rl_pre_input_hook = (rl_hook_func_t *)on_pre_input_hook; -+ rl_pre_input_hook = on_pre_input_hook; - #endif - /* Set our completion function */ -- rl_attempted_completion_function = (rl_completion_func_t *)flex_complete; -+ rl_attempted_completion_function = flex_complete; - /* Set Python word break characters */ - completer_word_break_characters = - rl_completer_word_break_characters = diff --git a/dev-lang/python/files/3.2/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch b/dev-lang/python/files/3.2/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch deleted file mode 100644 index 232e666..0000000 --- a/dev-lang/python/files/3.2/83_all_Issue__20374__Avoid_compiler_warnings_when_compiling_readline_with_libedit_.patch +++ /dev/null @@ -1,37 +0,0 @@ -# HG changeset patch -# User Ned Deily <nad@acm.org> -# Date 1391647990 28800 -# Wed Feb 05 16:53:10 2014 -0800 -# Branch 3.3 -# Node ID 9131a9edcac4880b2759c82fb38f13f6f871a73e -# Parent b5fe07d39e163240aed04f71ae7862c7cf36c1e7 -Issue #20374: Avoid compiler warnings when compiling readline with libedit. - -diff --git a/Modules/readline.c b/Modules/readline.c ---- a/Modules/readline.c -+++ b/Modules/readline.c -@@ -773,15 +773,24 @@ - return result; - } - -+ - static int -+#if defined(_RL_FUNCTION_TYPEDEF) - on_startup_hook(void) -+#else -+on_startup_hook() -+#endif - { - return on_hook(startup_hook); - } - - #ifdef HAVE_RL_PRE_INPUT_HOOK - static int -+#if defined(_RL_FUNCTION_TYPEDEF) - on_pre_input_hook(void) -+#else -+on_pre_input_hook() -+#endif - { - return on_hook(pre_input_hook); - } diff --git a/dev-lang/python/files/3.3/.gitattributes b/dev-lang/python/files/3.3/.gitattributes deleted file mode 100644 index 5e5a56d..0000000 --- a/dev-lang/python/files/3.3/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -Makefile export-ignore diff --git a/dev-lang/python/files/3.3/01_all_static_library_location.patch b/dev-lang/python/files/3.3/01_all_static_library_location.patch deleted file mode 100644 index 36ac67a..0000000 --- a/dev-lang/python/files/3.3/01_all_static_library_location.patch +++ /dev/null @@ -1,70 +0,0 @@ -Install libpythonX.Y.a in /usr/lib instead of /usr/lib/pythonX.Y/config. -https://bugs.gentoo.org/show_bug.cgi?id=252372 -http://bugs.python.org/issue6103 - ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -965,6 +965,19 @@ - fi; \ - else true; \ - fi -+ @if test -f $(LIBRARY) && test $(LIBRARY) != $(LDLIBRARY); then \ -+ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -+ if test "$(SHLIB_SUFFIX)" = .dll; then \ -+ $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBDIR); \ -+ else \ -+ $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBDIR); \ -+ $(RANLIB) $(DESTDIR)$(LIBDIR)/$(LIBRARY); \ -+ fi; \ -+ else \ -+ echo "Skipped install of $(LIBRARY) - use make frameworkinstall"; \ -+ fi; \ -+ else true; \ -+ fi - - bininstall: altbininstall - -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \ -@@ -1200,18 +1213,6 @@ - else true; \ - fi; \ - done -- @if test -d $(LIBRARY); then :; else \ -- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -- if test "$(SHLIB_SUFFIX)" = .dll; then \ -- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ -- else \ -- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- fi; \ -- else \ -- echo Skip install of $(LIBRARY) - use make frameworkinstall; \ -- fi; \ -- fi - $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c - $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in ---- Misc/python-config.in -+++ Misc/python-config.in -@@ -47,11 +47,7 @@ - elif opt in ('--libs', '--ldflags'): - libs = getvar('LIBS').split() + getvar('SYSLIBS').split() - libs.append('-lpython' + pyver + sys.abiflags) -- # add the prefix/lib/pythonX.Y/config dir, but only if there is no -- # shared library in prefix/lib/. - if opt == '--ldflags': -- if not getvar('Py_ENABLE_SHARED'): -- libs.insert(0, '-L' + getvar('LIBPL')) - if not getvar('PYTHONFRAMEWORK'): - libs.extend(getvar('LINKFORSHARED').split()) - print(' '.join(libs)) ---- Modules/makesetup -+++ Modules/makesetup -@@ -89,7 +89,7 @@ - then - ExtraLibDir=. - else -- ExtraLibDir='$(LIBPL)' -+ ExtraLibDir='$(LIBDIR)' - fi - ExtraLibs="-L$ExtraLibDir -lpython\$(VERSION)";; - esac diff --git a/dev-lang/python/files/3.3/02_all_disable_modules_and_ssl.patch b/dev-lang/python/files/3.3/02_all_disable_modules_and_ssl.patch deleted file mode 100644 index af735be..0000000 --- a/dev-lang/python/files/3.3/02_all_disable_modules_and_ssl.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- setup.py -+++ setup.py -@@ -31,7 +31,17 @@ - COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) - - # This global variable is used to hold the list of modules to be disabled. --disabled_module_list = [] -+pdm_env = "PYTHON_DISABLE_MODULES" -+if pdm_env in os.environ: -+ disabled_module_list = os.environ[pdm_env].split() -+else: -+ disabled_module_list = [] -+ -+pds_env = "PYTHON_DISABLE_SSL" -+if pds_env in os.environ: -+ disable_ssl = os.environ[pds_env] -+else: -+ disable_ssl = 0 - - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative -@@ -435,6 +445,7 @@ - os.unlink(tmpfile) - - def detect_modules(self): -+ global disable_ssl - # Ensure that /usr/local is always used, but the local build - # directories (i.e. '.' and 'Include') must be first. See issue - # 10520. -@@ -747,7 +758,7 @@ - ssl_incs = find_file('openssl/ssl.h', inc_dirs, - search_for_ssl_incs_in - ) -- if ssl_incs is not None: -+ if ssl_incs is not None and not disable_ssl: - krb5_h = find_file('krb5.h', inc_dirs, - ['/usr/kerberos/include']) - if krb5_h: -@@ -758,7 +769,8 @@ - ] ) - - if (ssl_incs is not None and -- ssl_libs is not None): -+ ssl_libs is not None and -+ not disable_ssl): - exts.append( Extension('_ssl', ['_ssl.c'], - include_dirs = ssl_incs, - library_dirs = ssl_libs, -@@ -791,7 +803,7 @@ - - #print('openssl_ver = 0x%08x' % openssl_ver) - min_openssl_ver = 0x00907000 -- have_any_openssl = ssl_incs is not None and ssl_libs is not None -+ have_any_openssl = ssl_incs is not None and ssl_libs is not None and not disable_ssl - have_usable_openssl = (have_any_openssl and - openssl_ver >= min_openssl_ver) - diff --git a/dev-lang/python/files/3.3/03_all_libdir.patch b/dev-lang/python/files/3.3/03_all_libdir.patch deleted file mode 100644 index 052c51d..0000000 --- a/dev-lang/python/files/3.3/03_all_libdir.patch +++ /dev/null @@ -1,174 +0,0 @@ ---- Lib/distutils/command/install.py -+++ Lib/distutils/command/install.py -@@ -44,8 +44,8 @@ - - INSTALL_SCHEMES = { - 'unix_prefix': { -- 'purelib': '$base/lib/python$py_version_short/site-packages', -- 'platlib': '$platbase/lib/python$py_version_short/site-packages', -+ 'purelib': '$base/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', -+ 'platlib': '$platbase/@@GENTOO_LIBDIR@@/python$py_version_short/site-packages', - 'headers': '$base/include/python$py_version_short$abiflags/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -144,7 +144,7 @@ - - if os.name == "posix": - libpython = os.path.join(prefix, -- "lib", "python" + get_python_version()) -+ "@@GENTOO_LIBDIR@@", "python" + get_python_version()) - if standard_lib: - return libpython - else: ---- Lib/site.py -+++ Lib/site.py -@@ -303,10 +303,10 @@ - if sys.platform in ('os2emx', 'riscos'): - sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) - elif os.sep == '/': -- sitepackages.append(os.path.join(prefix, "lib", -+ sitepackages.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", - "python" + sys.version[:3], - "site-packages")) -- sitepackages.append(os.path.join(prefix, "lib", "site-python")) -+ sitepackages.append(os.path.join(prefix, "@@GENTOO_LIBDIR@@", "site-python")) - else: - sitepackages.append(prefix) - sitepackages.append(os.path.join(prefix, "lib", "site-packages")) ---- Lib/sysconfig.py -+++ Lib/sysconfig.py -@@ -21,10 +21,10 @@ - - _INSTALL_SCHEMES = { - 'posix_prefix': { -- 'stdlib': '{installed_base}/lib/python{py_version_short}', -- 'platstdlib': '{platbase}/lib/python{py_version_short}', -- 'purelib': '{base}/lib/python{py_version_short}/site-packages', -- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages', -+ 'stdlib': '{installed_base}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'platstdlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'purelib': '{base}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', -+ 'platlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', - 'include': - '{installed_base}/include/python{py_version_short}{abiflags}', - 'platinclude': -@@ -81,10 +81,10 @@ - 'data': '{userbase}', - }, - 'posix_user': { -- 'stdlib': '{userbase}/lib/python{py_version_short}', -- 'platstdlib': '{userbase}/lib/python{py_version_short}', -- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', -- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', -+ 'stdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'platstdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}', -+ 'purelib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', -+ 'platlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages', - 'include': '{userbase}/include/python{py_version_short}', - 'scripts': '{userbase}/bin', - 'data': '{userbase}', ---- Lib/test/test_site.py -+++ Lib/test/test_site.py -@@ -248,10 +248,10 @@ - elif os.sep == '/': - # OS X non-framwework builds, Linux, FreeBSD, etc - self.assertEqual(len(dirs), 2) -- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], -+ wanted = os.path.join('xoxo', '@@GENTOO_LIBDIR@@', 'python' + sys.version[:3], - 'site-packages') - self.assertEqual(dirs[0], wanted) -- wanted = os.path.join('xoxo', 'lib', 'site-python') -+ wanted = os.path.join('xoxo', '@@GENTOO_LIBDIR@@', 'site-python') - self.assertEqual(dirs[1], wanted) - else: - # other platforms ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -115,7 +115,7 @@ - MANDIR= @mandir@ - INCLUDEDIR= @includedir@ - CONFINCLUDEDIR= $(exec_prefix)/include --SCRIPTDIR= $(prefix)/lib -+SCRIPTDIR= $(prefix)/@@GENTOO_LIBDIR@@ - ABIFLAGS= @ABIFLAGS@ - - # Detailed destination directories ---- Modules/getpath.c -+++ Modules/getpath.c -@@ -122,8 +122,8 @@ - #endif - - #ifndef PYTHONPATH --#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ -- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" -+#define PYTHONPATH PREFIX "/@@GENTOO_LIBDIR@@/python" VERSION ":" \ -+ EXEC_PREFIX "/@@GENTOO_LIBDIR@@/python" VERSION "/lib-dynload" - #endif - - #ifndef LANDMARK -@@ -135,7 +135,7 @@ - static wchar_t progpath[MAXPATHLEN+1]; - static wchar_t *module_search_path = NULL; - static int module_search_path_malloced = 0; --static wchar_t *lib_python = L"lib/python" VERSION; -+static wchar_t *lib_python = L"@@GENTOO_LIBDIR@@/python" VERSION; - - static void - reduce(wchar_t *dir) -@@ -685,7 +685,7 @@ - } - else - wcsncpy(zip_path, _prefix, MAXPATHLEN); -- joinpath(zip_path, L"lib/python00.zip"); -+ joinpath(zip_path, L"@@GENTOO_LIBDIR@@/python00.zip"); - bufsz = wcslen(zip_path); /* Replace "00" with version */ - zip_path[bufsz - 6] = VERSION[0]; - zip_path[bufsz - 5] = VERSION[2]; -@@ -695,7 +695,7 @@ - fprintf(stderr, - "Could not find platform dependent libraries <exec_prefix>\n"); - wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN); -- joinpath(exec_prefix, L"lib/lib-dynload"); -+ joinpath(exec_prefix, L"@@GENTOO_LIBDIR@@/lib-dynload"); - } - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ - ---- Modules/Setup.dist -+++ Modules/Setup.dist -@@ -354,7 +354,7 @@ - # Andrew Kuchling's zlib module. - # This require zlib 1.1.3 (or later). - # See http://www.gzip.org/zlib/ --#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz -+#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/@@GENTOO_LIBDIR@@ -lz - - # Interface to the Expat XML parser - # ---- setup.py -+++ setup.py -@@ -507,8 +507,7 @@ - # be assumed that no additional -I,-L directives are needed. - if not cross_compiling: - lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -+ '/@@GENTOO_LIBDIR@@', '/usr/@@GENTOO_LIBDIR@@', - ] - inc_dirs = self.compiler.include_dirs + ['/usr/include'] - else: -@@ -723,11 +722,11 @@ - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + -- ['/usr/lib/termcap'], -+ ['/usr/@@GENTOO_LIBDIR@@/termcap'], - 'termcap'): - readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=['/usr/@@GENTOO_LIBDIR@@/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) - else: diff --git a/dev-lang/python/files/3.3/04_all_non-zero_exit_status_on_failure.patch b/dev-lang/python/files/3.3/04_all_non-zero_exit_status_on_failure.patch deleted file mode 100644 index 58b839f..0000000 --- a/dev-lang/python/files/3.3/04_all_non-zero_exit_status_on_failure.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=281968 -http://bugs.python.org/issue6731 - ---- setup.py -+++ setup.py -@@ -43,6 +43,8 @@ - else: - disable_ssl = 0 - -+exit_status = 0 -+ - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative - directories) if: -@@ -277,6 +279,8 @@ - print() - - if self.failed: -+ global exit_status -+ exit_status = 1 - failed = self.failed[:] - print() - print("Failed to build these modules:") -@@ -2213,6 +2217,7 @@ - scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", - "Tools/scripts/2to3", "Tools/scripts/pyvenv"] - ) -+ sys.exit(exit_status) - - # --install-platlib - if __name__ == '__main__': diff --git a/dev-lang/python/files/3.3/05_all_regenerate_platform-specific_modules.patch b/dev-lang/python/files/3.3/05_all_regenerate_platform-specific_modules.patch deleted file mode 100644 index 68f33f7..0000000 --- a/dev-lang/python/files/3.3/05_all_regenerate_platform-specific_modules.patch +++ /dev/null @@ -1,123 +0,0 @@ -http://bugs.python.org/issue12619 - ---- Lib/plat-aix4/regen -+++ Lib/plat-aix4/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h ---- Lib/plat-linux/regen -+++ Lib/plat-linux/regen -@@ -5,4 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h /usr/include/linux/cdrom.h ---- Lib/plat-sunos5/regen -+++ Lib/plat-sunos5/regen -@@ -5,5 +5,4 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h -- -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h ---- Lib/plat-unixware7/regen -+++ Lib/plat-unixware7/regen -@@ -5,5 +5,5 @@ - exit 1;; - esac - set -v --h2py -i '(u_long)' /usr/include/netinet/in.h --h2py /usr/include/sys/stropts.h -+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h -+python$EXE ../../Tools/scripts/h2py.py /usr/include/sys/stropts.h ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -444,7 +444,7 @@ - - # Default target - all: build_all --build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed -+build_all: $(BUILDPYTHON) oldsharedmods sharedmods platformspecificmods gdbhooks Modules/_testembed - - # Compile a binary with gcc profile guided optimization. - profile-opt: -@@ -500,6 +500,32 @@ - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - -+# Build the platform-specific modules -+platformspecificmods: $(BUILDPYTHON) sharedmods -+ @PLATDIR=$(PLATDIR); \ -+ if test ! -f $(srcdir)/Lib/$(PLATDIR)/regen; then \ -+ $(INSTALL) -d $(srcdir)/Lib/$(PLATDIR); \ -+ if test -f $(srcdir)/Lib/$${PLATDIR%?}/regen; then \ -+ cp $(srcdir)/Lib/$${PLATDIR%?}/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ else \ -+ cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ -+ fi \ -+ fi -+ @EXE="$(BUILDEXE)"; export EXE; \ -+ PATH="`pwd`:$$PATH"; export PATH; \ -+ PYTHONPATH="`pwd`/Lib"; export PYTHONPATH; \ -+ if [ -n "$(MULTIARCH)" ]; then MULTIARCH=$(MULTIARCH); export MULTIARCH; fi; \ -+ if [ "$(BUILD_GNU_TYPE)" = "$(HOST_GNU_TYPE)" ]; then \ -+ PYTHON_FOR_BUILD="$(BUILDPYTHON)"; \ -+ else \ -+ PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \ -+ fi; export PYTHON_FOR_BUILD; \ -+ cd $(srcdir)/Lib/$(PLATDIR); \ -+ $(RUNSHARED) ./regen || exit 1; \ -+ for module in *.py; do \ -+ $(RUNSHARED) $(BUILDPYTHON) -c "with open('$$module', 'rb') as module: compile(module.read(), '$$module', 'exec')" || exit 1; \ -+ done -+ - # Build static library - # avoid long command lines, same as LIBRARY_OBJS - $(LIBRARY): $(LIBRARY_OBJS) -@@ -1074,7 +1100,7 @@ - unittest unittest/test unittest/test/testmock \ - venv venv/scripts venv/scripts/posix \ - curses pydoc_data $(MACHDEPS) --libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c -+libinstall: build_all $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ - if test ! -d $(DESTDIR)$$i; then \ -@@ -1157,23 +1183,6 @@ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt - --# Create the PLATDIR source directory, if one wasn't distributed.. --$(srcdir)/Lib/$(PLATDIR): -- mkdir $(srcdir)/Lib/$(PLATDIR) -- cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen -- export PATH; PATH="`pwd`:$$PATH"; \ -- export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ -- export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ -- export EXE; EXE="$(BUILDEXE)"; \ -- if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \ -- export PYTHON_FOR_BUILD; \ -- if [ "$(BUILD_GNU_TYPE)" = "$(HOST_GNU_TYPE)" ]; then \ -- PYTHON_FOR_BUILD="$(BUILDPYTHON)"; \ -- else \ -- PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \ -- fi; \ -- cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen -- - python-config: $(srcdir)/Misc/python-config.in - # Substitution happens here, as the completely-expanded BINDIR - # is not available in configure -@@ -1476,7 +1485,7 @@ - Python/thread.o: @THREADHEADERS@ - - # Declare targets that aren't real files --.PHONY: all build_all sharedmods oldsharedmods test quicktest -+.PHONY: all build_all sharedmods oldsharedmods platformspecificmods test quicktest - .PHONY: install altinstall oldsharedinstall bininstall altbininstall - .PHONY: maninstall libinstall inclinstall libainstall sharedinstall - .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure diff --git a/dev-lang/python/files/3.3/21_all_distutils_c++.patch b/dev-lang/python/files/3.3/21_all_distutils_c++.patch deleted file mode 100644 index 1f6c19a..0000000 --- a/dev-lang/python/files/3.3/21_all_distutils_c++.patch +++ /dev/null @@ -1,271 +0,0 @@ -http://bugs.python.org/issue1222585 - ---- Lib/distutils/cygwinccompiler.py -+++ Lib/distutils/cygwinccompiler.py -@@ -124,8 +124,10 @@ - # dllwrap 2.10.90 is buggy - if self.ld_version >= "2.10.90": - self.linker_dll = "gcc" -+ self.linker_dll_cxx = "g++" - else: - self.linker_dll = "dllwrap" -+ self.linker_dll_cxx = "dllwrap" - - # ld_version >= "2.13" support -shared so use it instead of - # -mdll -static -@@ -139,9 +141,13 @@ - self.set_executables(compiler='gcc -mcygwin -O -Wall', - compiler_so='gcc -mcygwin -mdll -O -Wall', - compiler_cxx='g++ -mcygwin -O -Wall', -+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', - linker_exe='gcc -mcygwin', - linker_so=('%s -mcygwin %s' % -- (self.linker_dll, shared_option))) -+ (self.linker_dll, shared_option)), -+ linker_exe_cxx='g++ -mcygwin', -+ linker_so_cxx=('%s -mcygwin %s' % -+ (self.linker_dll_cxx, shared_option))) - - # cygwin and mingw32 need different sets of libraries - if self.gcc_version == "2.91.57": -@@ -165,8 +171,12 @@ - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -302,9 +312,14 @@ - self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin, - compiler_so='gcc%s -mdll -O -Wall' % no_cygwin, - compiler_cxx='g++%s -O -Wall' % no_cygwin, -+ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin, - linker_exe='gcc%s' % no_cygwin, - linker_so='%s%s %s %s' - % (self.linker_dll, no_cygwin, -+ shared_option, entry_point), -+ linker_exe_cxx='g++%s' % no_cygwin, -+ linker_so_cxx='%s%s %s %s' -+ % (self.linker_dll_cxx, no_cygwin, - shared_option, entry_point)) - # Maybe we should also append -mthreads, but then the finished - # dlls need another dll (mingwm10.dll see Mingw32 docs) ---- Lib/distutils/emxccompiler.py -+++ Lib/distutils/emxccompiler.py -@@ -63,8 +63,12 @@ - # XXX optimization, warnings etc. should be customizable. - self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', -+ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', - linker_exe='gcc -Zomf -Zmt -Zcrtdll', -- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') -+ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll', -+ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll', -+ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll') - - # want the gcc library statically linked (so that we don't have - # to distribute a version dependent on the compiler we have) -@@ -81,8 +85,12 @@ - raise CompileError(msg) - else: # for other files use the C-compiler - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - ---- Lib/distutils/sysconfig.py -+++ Lib/distutils/sysconfig.py -@@ -191,9 +191,12 @@ - _osx_support.customize_compiler(_config_vars) - _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' - -- (cc, cxx, opt, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ -- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ (cc, cxx, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \ -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') -+ -+ cflags = '' -+ cxxflags = '' - - if 'CC' in os.environ: - newcc = os.environ['CC'] -@@ -208,19 +211,27 @@ - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = opt + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -229,13 +240,17 @@ - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - - compiler.shared_lib_extension = shlib_suffix ---- Lib/distutils/unixccompiler.py -+++ Lib/distutils/unixccompiler.py -@@ -52,14 +52,17 @@ - # are pretty generic; they will probably have to be set by an outsider - # (eg. using information discovered by the sysconfig about building - # Python extensions). -- executables = {'preprocessor' : None, -- 'compiler' : ["cc"], -- 'compiler_so' : ["cc"], -- 'compiler_cxx' : ["cc"], -- 'linker_so' : ["cc", "-shared"], -- 'linker_exe' : ["cc"], -- 'archiver' : ["ar", "-cr"], -- 'ranlib' : None, -+ executables = {'preprocessor' : None, -+ 'compiler' : ["cc"], -+ 'compiler_so' : ["cc"], -+ 'compiler_cxx' : ["c++"], -+ 'compiler_so_cxx' : ["c++"], -+ 'linker_so' : ["cc", "-shared"], -+ 'linker_exe' : ["cc"], -+ 'linker_so_cxx' : ["c++", "-shared"], -+ 'linker_exe_cxx' : ["c++"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : None, - } - - if sys.platform[:6] == "darwin": -@@ -108,12 +111,19 @@ - - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - compiler_so = self.compiler_so -+ compiler_so_cxx = self.compiler_so_cxx - if sys.platform == 'darwin': - compiler_so = _osx_support.compiler_fixup(compiler_so, - cc_args + extra_postargs) -+ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, -+ cc_args + extra_postargs) - try: -- self.spawn(compiler_so + cc_args + [src, '-o', obj] + -- extra_postargs) -+ if self.detect_language(src) == 'c++': -+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + -+ extra_postargs) -+ else: -+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + -+ extra_postargs) - except DistutilsExecError as msg: - raise CompileError(msg) - -@@ -171,22 +181,16 @@ - ld_args.extend(extra_postargs) - self.mkpath(os.path.dirname(output_filename)) - try: -- if target_desc == CCompiler.EXECUTABLE: -- linker = self.linker_exe[:] -+ if target_lang == "c++": -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe_cxx[:] -+ else: -+ linker = self.linker_so_cxx[:] - else: -- linker = self.linker_so[:] -- if target_lang == "c++" and self.compiler_cxx: -- # skip over environment variable settings if /usr/bin/env -- # is used to set up the linker's environment. -- # This is needed on OSX. Note: this assumes that the -- # normal and C++ compiler have the same environment -- # settings. -- i = 0 -- if os.path.basename(linker[0]) == "env": -- i = 1 -- while '=' in linker[i]: -- i += 1 -- linker[i] = self.compiler_cxx[i] -+ if target_desc == CCompiler.EXECUTABLE: -+ linker = self.linker_exe[:] -+ else: -+ linker = self.linker_so[:] - - if sys.platform == 'darwin': - linker = _osx_support.compiler_fixup(linker, ld_args) ---- Lib/_osx_support.py -+++ Lib/_osx_support.py -@@ -14,13 +14,13 @@ - # configuration variables that may contain universal build flags, - # like "-arch" or "-isdkroot", that may need customization for - # the user environment --_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', -- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', -- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', -- 'PY_CORE_CFLAGS') -+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', -+ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', -+ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', -+ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS') - - # configuration variables that may contain compiler calls --_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') -+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') - - # prefix added to original configuration variable names - _INITPRE = '_OSX_SUPPORT_INITIAL_' ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -496,7 +496,7 @@ - *\ -s*|s*) quiet="-q";; \ - *) quiet="";; \ - esac; \ -- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - diff --git a/dev-lang/python/files/3.3/22_all_tests_environment.patch b/dev-lang/python/files/3.3/22_all_tests_environment.patch deleted file mode 100644 index edb3351..0000000 --- a/dev-lang/python/files/3.3/22_all_tests_environment.patch +++ /dev/null @@ -1,192 +0,0 @@ -http://bugs.python.org/issue1674555 - ---- Lib/site.py -+++ Lib/site.py -@@ -587,8 +587,9 @@ - known_paths = venv(known_paths) - if ENABLE_USER_SITE is None: - ENABLE_USER_SITE = check_enableusersite() -- known_paths = addusersitepackages(known_paths) -- known_paths = addsitepackages(known_paths) -+ if os.environ.get("_PYTHONNOSITEPACKAGES") is None: -+ known_paths = addusersitepackages(known_paths) -+ known_paths = addsitepackages(known_paths) - if sys.platform == 'os2emx': - setBEGINLIBPATH() - setquit() ---- Lib/test/regrtest.py -+++ Lib/test/regrtest.py -@@ -188,6 +188,7 @@ - import unittest - import warnings - from inspect import isabstract -+from subprocess import Popen, PIPE - - try: - import threading -@@ -578,6 +579,62 @@ - support.use_resources = use_resources - save_modules = sys.modules.keys() - -+ opt_args = support.args_from_interpreter_flags() -+ base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest'] -+ debug_output_pat = re.compile(r"\[\d+ refs\]$") -+ -+ def get_args_tuple(test, verbose, quiet, huntrleaks, debug, use_resources, -+ output_on_failure, failfast, match_tests, timeout): -+ return ( -+ (test, verbose, quiet), -+ dict(huntrleaks=huntrleaks, debug=debug, -+ use_resources=use_resources, -+ output_on_failure=output_on_failure, failfast=failfast, -+ match_tests=match_tests, timeout=timeout) -+ ) -+ -+ def _runtest(test, verbose, quiet, huntrleaks=False, debug=False, -+ use_resources=None, output_on_failure=False, failfast=False, -+ match_tests=None, timeout=None): -+ if test == "test_site": -+ args_tuple = get_args_tuple(test, verbose, quiet, huntrleaks, debug, -+ use_resources, output_on_failure, -+ failfast, match_tests, timeout) -+ env = os.environ.copy() -+ try: -+ del env["_PYTHONNOSITEPACKAGES"] -+ except KeyError: -+ pass -+ popen = Popen(base_cmd + ['--slaveargs', json.dumps(args_tuple)], -+ stdout=PIPE, stderr=PIPE, -+ universal_newlines=True, -+ close_fds=(os.name != 'nt'), -+ env=env) -+ stdout, stderr = popen.communicate() -+ retcode = popen.wait() -+ # Strip last refcount output line if it exists, since it -+ # comes from the shutdown of the interpreter in the subcommand. -+ stderr = debug_output_pat.sub("", stderr) -+ stdout, _, result = stdout.strip().rpartition("\n") -+ if retcode != 0: -+ result = (CHILD_ERROR, "Exit code %s" % retcode) -+ else: -+ result = json.loads(result) -+ if stdout: -+ print(stdout) -+ if stderr: -+ print(stderr, file=sys.stderr) -+ if result[0] == INTERRUPTED: -+ assert result[1] == 'KeyboardInterrupt' -+ raise KeyboardInterrupt -+ return result -+ else: -+ return runtest(test, verbose, quiet, huntrleaks=huntrleaks, -+ debug=debug, use_resources=use_resources, -+ output_on_failure=output_on_failure, -+ failfast=failfast, match_tests=match_tests, -+ timeout=timeout) -+ - def accumulate_result(test, result): - ok, test_time = result - test_times.append((test_time, test)) -@@ -615,12 +672,8 @@ - print("Multiprocess option requires thread support") - sys.exit(2) - from queue import Queue -- from subprocess import Popen, PIPE -- debug_output_pat = re.compile(r"\[\d+ refs\]$") - output = Queue() - pending = MultiprocessTests(tests) -- opt_args = support.args_from_interpreter_flags() -- base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest'] - def work(): - # A worker thread. - try: -@@ -630,13 +683,9 @@ - except StopIteration: - output.put((None, None, None, None)) - return -- args_tuple = ( -- (test, verbose, quiet), -- dict(huntrleaks=huntrleaks, use_resources=use_resources, -- debug=debug, output_on_failure=verbose3, -- timeout=timeout, failfast=failfast, -- match_tests=match_tests) -- ) -+ args_tuple = get_args_tuple(test, verbose, quiet, huntrleaks, -+ debug, use_resources, verbose3, -+ failfast, match_tests, timeout) - # -E is needed by some tests, e.g. test_import - # Running the child from the same working directory ensures - # that TEMPDIR for the child is the same when -@@ -707,14 +756,14 @@ - if trace: - # If we're tracing code coverage, then we don't exit with status - # if on a false return value from main. -- tracer.runctx('runtest(test, verbose, quiet, timeout=timeout)', -+ tracer.runctx('_runtest(test, verbose, quiet, timeout=timeout)', - globals=globals(), locals=vars()) - else: - try: -- result = runtest(test, verbose, quiet, huntrleaks, debug, -- output_on_failure=verbose3, -- timeout=timeout, failfast=failfast, -- match_tests=match_tests) -+ result = _runtest(test, verbose, quiet, huntrleaks, debug, -+ output_on_failure=verbose3, -+ timeout=timeout, failfast=failfast, -+ match_tests=match_tests) - accumulate_result(test, result) - except KeyboardInterrupt: - interrupted = True -@@ -785,7 +834,7 @@ - sys.stdout.flush() - try: - verbose = True -- ok = runtest(test, True, quiet, huntrleaks, debug, timeout=timeout) -+ ok = _runtest(test, True, quiet, huntrleaks, debug, timeout=timeout) - except KeyboardInterrupt: - # print a newline separate from the ^C - print() -@@ -1182,8 +1231,9 @@ - for name, get, restore in self.resource_info(): - current = get() - original = saved_values.pop(name) -- # Check for changes to the resource's value -- if current != original: -+ # Check for changes to the resource's value. test_site is always run -+ # in a subprocess and is allowed to change os.environ and sys.path. -+ if current != original and self.testname != "test_site": - self.changed = True - restore(original) - if not self.quiet: ---- Lib/test/test_site.py -+++ Lib/test/test_site.py -@@ -8,6 +8,7 @@ - import test.support - from test.support import captured_stderr, TESTFN, EnvironmentVarGuard - import builtins -+import imp - import os - import sys - import re -@@ -26,6 +27,10 @@ - - import site - -+if "_PYTHONNOSITEPACKAGES" in os.environ: -+ del os.environ["_PYTHONNOSITEPACKAGES"] -+ imp.reload(site) -+ - if site.ENABLE_USER_SITE and not os.path.isdir(site.USER_SITE): - # need to add user site directory for tests - os.makedirs(site.USER_SITE) ---- Makefile.pre.in -+++ Makefile.pre.in -@@ -883,7 +883,7 @@ - ###################################################################### - - TESTOPTS= $(EXTRATESTOPTS) --TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS) -+TESTPYTHON= _PYTHONNOSITEPACKAGES=1 $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS) - TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py - TESTTIMEOUT= 3600 - diff --git a/dev-lang/python/files/3.3/23_all_h2py_encoding.patch b/dev-lang/python/files/3.3/23_all_h2py_encoding.patch deleted file mode 100644 index d594f56..0000000 --- a/dev-lang/python/files/3.3/23_all_h2py_encoding.patch +++ /dev/null @@ -1,173 +0,0 @@ -http://bugs.python.org/issue13032 - ---- Tools/scripts/h2py.py -+++ Tools/scripts/h2py.py -@@ -23,36 +23,36 @@ - - import sys, re, getopt, os - --p_define = re.compile('^[\t ]*#[\t ]*define[\t ]+([a-zA-Z0-9_]+)[\t ]+') -+p_define = re.compile(b'^[\t ]*#[\t ]*define[\t ]+([a-zA-Z0-9_]+)[\t ]+') - - p_macro = re.compile( -- '^[\t ]*#[\t ]*define[\t ]+' -- '([a-zA-Z0-9_]+)\(([_a-zA-Z][_a-zA-Z0-9]*)\)[\t ]+') -+ b'^[\t ]*#[\t ]*define[\t ]+' -+ b'([a-zA-Z0-9_]+)\(([_a-zA-Z][_a-zA-Z0-9]*)\)[\t ]+') - --p_include = re.compile('^[\t ]*#[\t ]*include[\t ]+<([a-zA-Z0-9_/\.]+)') -+p_include = re.compile(b'^[\t ]*#[\t ]*include[\t ]+<([a-zA-Z0-9_/\.]+)') - --p_comment = re.compile(r'/\*([^*]+|\*+[^/])*(\*+/)?') --p_cpp_comment = re.compile('//.*') -+p_comment = re.compile(br'/\*([^*]+|\*+[^/])*(\*+/)?') -+p_cpp_comment = re.compile(b'//.*') - - ignores = [p_comment, p_cpp_comment] - --p_char = re.compile(r"'(\\.[^\\]*|[^\\])'") -+p_char = re.compile(br"'(\\.[^\\]*|[^\\])'") - --p_hex = re.compile(r"0x([0-9a-fA-F]+)L?") -+p_hex = re.compile(br"0x([0-9a-fA-F]+)L?") - - filedict = {} - importable = {} - - try: -- searchdirs=os.environ['include'].split(';') -+ searchdirs=os.environb[b'include'].split(b';') - except KeyError: - try: -- searchdirs=os.environ['INCLUDE'].split(';') -+ searchdirs=os.environb[b'INCLUDE'].split(b';') - except KeyError: -- searchdirs=['/usr/include'] -+ searchdirs=[b'/usr/include'] - try: -- searchdirs.insert(0, os.path.join('/usr/include', -- os.environ['MULTIARCH'])) -+ searchdirs.insert(0, os.path.join(b'/usr/include', -+ os.environb[b'MULTIARCH'])) - except KeyError: - pass - -@@ -61,22 +61,23 @@ - opts, args = getopt.getopt(sys.argv[1:], 'i:') - for o, a in opts: - if o == '-i': -- ignores.append(re.compile(a)) -+ ignores.append(re.compile(a.encode())) - if not args: - args = ['-'] - for filename in args: - if filename == '-': - sys.stdout.write('# Generated by h2py from stdin\n') -- process(sys.stdin, sys.stdout) -+ process(sys.stdin.buffer, sys.stdout.buffer) - else: -- fp = open(filename, 'r') -+ filename = filename.encode() -+ fp = open(filename, 'rb') - outfile = os.path.basename(filename) -- i = outfile.rfind('.') -+ i = outfile.rfind(b'.') - if i > 0: outfile = outfile[:i] - modname = outfile.upper() -- outfile = modname + '.py' -- outfp = open(outfile, 'w') -- outfp.write('# Generated by h2py from %s\n' % filename) -+ outfile = modname + b'.py' -+ outfp = open(outfile, 'wb') -+ outfp.write(b'# Generated by h2py from ' + filename + b'\n') - filedict = {} - for dir in searchdirs: - if filename[:len(dir)] == dir: -@@ -90,9 +91,9 @@ - def pytify(body): - # replace ignored patterns by spaces - for p in ignores: -- body = p.sub(' ', body) -+ body = p.sub(b' ', body) - # replace char literals by ord(...) -- body = p_char.sub("ord('\\1')", body) -+ body = p_char.sub(b"ord('\\1')", body) - # Compute negative hexadecimal constants - start = 0 - UMAX = 2*(sys.maxsize+1) -@@ -103,7 +104,7 @@ - val = int(body[slice(*m.span(1))], 16) - if val > sys.maxsize: - val -= UMAX -- body = body[:s] + "(" + str(val) + ")" + body[e:] -+ body = body[:s] + b"(" + str(val).encode() + b")" + body[e:] - start = s + 1 - return body - -@@ -116,7 +117,7 @@ - match = p_define.match(line) - if match: - # gobble up continuation lines -- while line[-2:] == '\\\n': -+ while line[-2:] == b'\\\n': - nextline = fp.readline() - if not nextline: break - lineno = lineno + 1 -@@ -125,11 +126,11 @@ - body = line[match.end():] - body = pytify(body) - ok = 0 -- stmt = '%s = %s\n' % (name, body.strip()) -+ stmt = name + b' = ' + body.strip() + b'\n' - try: - exec(stmt, env) - except: -- sys.stderr.write('Skipping: %s' % stmt) -+ sys.stderr.buffer.write(b'Skipping: ' + stmt) - else: - outfp.write(stmt) - match = p_macro.match(line) -@@ -137,11 +138,11 @@ - macro, arg = match.group(1, 2) - body = line[match.end():] - body = pytify(body) -- stmt = 'def %s(%s): return %s\n' % (macro, arg, body) -+ stmt = b'def ' + macro + b'(' + arg + b'): return ' + body + b'\n' - try: - exec(stmt, env) - except: -- sys.stderr.write('Skipping: %s' % stmt) -+ sys.stderr.buffer.write(b'Skipping: ' + stmt) - else: - outfp.write(stmt) - match = p_include.match(line) -@@ -150,23 +151,24 @@ - a, b = regs[1] - filename = line[a:b] - if filename in importable: -- outfp.write('from %s import *\n' % importable[filename]) -+ outfp.write(b'from ' + importable[filename] + b' import *\n') - elif filename not in filedict: - filedict[filename] = None - inclfp = None - for dir in searchdirs: - try: -- inclfp = open(dir + '/' + filename) -+ inclfp = open(dir + b'/' + filename, 'rb') - break - except IOError: - pass - if inclfp: - outfp.write( -- '\n# Included from %s\n' % filename) -+ b'\n# Included from ' + filename + b'\n') - process(inclfp, outfp, env) -+ inclfp.close() - else: -- sys.stderr.write('Warning - could not find file %s\n' % -- filename) -+ sys.stderr.buffer.write(b'Warning - could not find file ' + -+ filename + b'\n') - - if __name__ == '__main__': - main() diff --git a/dev-lang/python/files/3.3/24_all_sqlite-3.8.4.patch b/dev-lang/python/files/3.3/24_all_sqlite-3.8.4.patch deleted file mode 100644 index d6af2eb..0000000 --- a/dev-lang/python/files/3.3/24_all_sqlite-3.8.4.patch +++ /dev/null @@ -1,14 +0,0 @@ -http://bugs.python.org/issue20901 -http://hg.python.org/cpython/rev/dbc9e3ed5e9f - ---- Lib/sqlite3/test/hooks.py -+++ Lib/sqlite3/test/hooks.py -@@ -162,7 +162,7 @@ - create table bar (a, b) - """) - second_count = len(progress_calls) -- self.assertGreater(first_count, second_count) -+ self.assertGreaterEqual(first_count, second_count) - - def CheckCancelOperation(self): - """ diff --git a/dev-lang/python/files/3.3/61_all_process_data.patch b/dev-lang/python/files/3.3/61_all_process_data.patch deleted file mode 100644 index b7738c7..0000000 --- a/dev-lang/python/files/3.3/61_all_process_data.patch +++ /dev/null @@ -1,166 +0,0 @@ -GENTOO_PYTHON_PROCESS_NAME environmental variable is set by python-wrapper and wrapper scripts generated by -python_generate_wrapper_scripts() and specifies process name. -GENTOO_PYTHON_WRAPPER_SCRIPT_PATH environmental variable is set by wrapper scripts generated by -python_generate_wrapper_scripts() and specifies sys.argv[0] in target executables. -GENTOO_PYTHON_TARGET_SCRIPT_PATH environmental variable is set by wrapper scripts generated by -python_generate_wrapper_scripts() and specifies paths to actually executed scripts. -GENTOO_PYTHON_TARGET_SCRIPT_PATH_VERIFICATION environmental variable is used by wrapper scripts generated by -python_generate_wrapper_scripts() to check if Python supports GENTOO_PYTHON_TARGET_SCRIPT_PATH environmental variable. - ---- Modules/main.c -+++ Modules/main.c -@@ -331,6 +331,7 @@ - int version = 0; - int saw_unbuffered_flag = 0; - PyCompilerFlags cf; -+ char *target_script_name = getenv("GENTOO_PYTHON_TARGET_SCRIPT_PATH"); - - cf.cf_flags = 0; - -@@ -551,7 +552,17 @@ - filename = argv[_PyOS_optind]; - - #else -- filename = argv[_PyOS_optind]; -+ if (target_script_name != NULL && *target_script_name != '\0') { -+ size_t length = strlen(target_script_name); -+ wchar_t *wcs_target_script_name = (wchar_t *) calloc(length + 1, sizeof(wchar_t)); -+ char *old_locale = setlocale(LC_CTYPE, NULL); -+ setlocale(LC_CTYPE, ""); -+ if (mbstowcs(wcs_target_script_name, target_script_name, length) >= 0) -+ filename = wcs_target_script_name; -+ setlocale(LC_CTYPE, old_locale); -+ } -+ if (filename == NULL) -+ filename = argv[_PyOS_optind]; - #endif - } - ---- Modules/posixmodule.c -+++ Modules/posixmodule.c -@@ -1157,6 +1157,10 @@ - char *p = strchr(*e, '='); - if (p == NULL) - continue; -+ if ((strlen("GENTOO_PYTHON_PROCESS_NAME") == (int)(p-*e) && strncmp("GENTOO_PYTHON_PROCESS_NAME", *e, (int)(p-*e)) == 0) || -+ (strlen("GENTOO_PYTHON_TARGET_SCRIPT_PATH") == (int)(p-*e) && strncmp("GENTOO_PYTHON_TARGET_SCRIPT_PATH", *e, (int)(p-*e)) == 0) || -+ (strlen("GENTOO_PYTHON_WRAPPER_SCRIPT_PATH") == (int)(p-*e) && strncmp("GENTOO_PYTHON_WRAPPER_SCRIPT_PATH", *e, (int)(p-*e)) == 0)) -+ continue; - k = PyBytes_FromStringAndSize(*e, (int)(p-*e)); - if (k == NULL) { - PyErr_Clear(); ---- Modules/python.c -+++ Modules/python.c -@@ -7,6 +7,14 @@ - #include <floatingpoint.h> - #endif - -+#ifdef __linux__ -+#include <linux/prctl.h> -+#include <sys/prctl.h> -+#ifndef PR_SET_NAME -+#define PR_SET_NAME 15 -+#endif -+#endif -+ - #ifdef MS_WINDOWS - int - wmain(int argc, wchar_t **argv) -@@ -18,6 +26,11 @@ - int - main(int argc, char **argv) - { -+ if (getenv("GENTOO_PYTHON_TARGET_SCRIPT_PATH_VERIFICATION")) { -+ printf("GENTOO_PYTHON_TARGET_SCRIPT_PATH supported\n"); -+ return 0; -+ } -+ - wchar_t **argv_copy; - /* We need a second copy, as Python might modify the first one. */ - wchar_t **argv_copy2; -@@ -59,6 +72,16 @@ - - setlocale(LC_ALL, oldloc); - free(oldloc); -+ -+#ifdef __linux__ -+ char *process_name = getenv("GENTOO_PYTHON_PROCESS_NAME"); -+#ifdef HAVE_UNSETENV -+ unsetenv("GENTOO_PYTHON_PROCESS_NAME"); -+#endif -+ if (process_name != NULL && *process_name != '\0') -+ prctl(PR_SET_NAME, process_name); -+#endif -+ - res = Py_Main(argc, argv_copy); - for (i = 0; i < argc; i++) { - PyMem_Free(argv_copy2[i]); ---- Python/sysmodule.c -+++ Python/sysmodule.c -@@ -1778,6 +1778,10 @@ - makeargvobject(int argc, wchar_t **argv) - { - PyObject *av; -+ char *wrapper_script_name = getenv("GENTOO_PYTHON_WRAPPER_SCRIPT_PATH"); -+#ifdef HAVE_UNSETENV -+ unsetenv("GENTOO_PYTHON_WRAPPER_SCRIPT_PATH"); -+#endif - if (argc <= 0 || argv == NULL) { - /* Ensure at least one (empty) argument is seen */ - static wchar_t *empty_argv[1] = {L""}; -@@ -1802,7 +1806,16 @@ - } else - v = PyUnicode_FromString(argv[i]); - #else -- PyObject *v = PyUnicode_FromWideChar(argv[i], -1); -+ PyObject *v = NULL; -+ if (i == 0 && wrapper_script_name != NULL && *wrapper_script_name != '\0') { -+ size_t length = strlen(wrapper_script_name); -+ wchar_t *wcs_wrapper_script_name = (wchar_t *) calloc(length + 1, sizeof(wchar_t)); -+ if (mbstowcs(wcs_wrapper_script_name, wrapper_script_name, length) >= 0) -+ v = PyUnicode_FromWideChar(wcs_wrapper_script_name, -1); -+ free(wcs_wrapper_script_name); -+ } -+ if (v == NULL) -+ v = PyUnicode_FromWideChar(argv[i], -1); - #endif - if (v == NULL) { - Py_DECREF(av); -@@ -1822,7 +1835,12 @@ - static void - sys_update_path(int argc, wchar_t **argv) - { -- wchar_t *argv0; -+ char *target_script_name = getenv("GENTOO_PYTHON_TARGET_SCRIPT_PATH"); -+#ifdef HAVE_UNSETENV -+ unsetenv("GENTOO_PYTHON_TARGET_SCRIPT_PATH"); -+#endif -+ wchar_t *wcs_target_script_name = NULL; -+ wchar_t *argv0 = NULL; - wchar_t *p = NULL; - Py_ssize_t n = 0; - PyObject *a; -@@ -1842,7 +1860,14 @@ - if (path == NULL) - return; - -- argv0 = argv[0]; -+ if (target_script_name != NULL && *target_script_name != '\0') { -+ size_t length = strlen(target_script_name); -+ wcs_target_script_name = (wchar_t *) calloc(length + 1, sizeof(wchar_t)); -+ if (mbstowcs(wcs_target_script_name, target_script_name, length) >= 0) -+ argv0 = wcs_target_script_name; -+ } -+ if (argv0 == NULL) -+ argv0 = argv[0]; - - #ifdef HAVE_READLINK - if (_HAVE_SCRIPT_ARGUMENT(argc, argv)) -@@ -1919,6 +1944,7 @@ - if (PyList_Insert(path, 0, a) < 0) - Py_FatalError("sys.path.insert(0) failed"); - Py_DECREF(a); -+ free(wcs_target_script_name); - } - - void diff --git a/dev-lang/python/files/python-3.3-CVE-2014-4616.patch b/dev-lang/python/files/python-3.3-CVE-2014-4616.patch deleted file mode 100644 index c67b2e5..0000000 --- a/dev-lang/python/files/python-3.3-CVE-2014-4616.patch +++ /dev/null @@ -1,52 +0,0 @@ -# HG changeset patch -# User Benjamin Peterson <benjamin@python.org> -# Date 1397441438 14400 -# Node ID 50c07ed1743da9cd4540d83de0c30bd17aeb41b0 -# Parent 218e28a935ab4494d05215c243e2129625a71893 -in scan_once, prevent the reading of arbitrary memory when passed a negative index - -Bug reported by Guido Vranken. - -Index: Python-3.3.5/Lib/json/tests/test_decode.py -=================================================================== ---- Python-3.3.5.orig/Lib/test/test_json/test_decode.py 2014-06-26 18:40:10.825269130 +0200 -+++ Python-3.3.5/Lib/test/test_json/test_decode.py 2014-06-26 18:40:21.962323035 +0200 -@@ -60,5 +60,10 @@ - msg = 'escape' - self.assertRaisesRegexp(ValueError, msg, self.loads, s) - -+ def test_negative_index(self): -+ d = self.json.JSONDecoder() -+ self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000) -+ self.assertRaises(ValueError, d.raw_decode, u'a'*42, -50000) -+ - class TestPyDecode(TestDecode, PyTest): pass - class TestCDecode(TestDecode, CTest): pass -Index: Python-3.3.5/Misc/ACKS -=================================================================== ---- Python-3.3.5.orig/Misc/ACKS 2014-06-26 18:40:10.826269135 +0200 -+++ Python-3.3.5/Misc/ACKS 2014-06-26 18:40:21.962323035 +0200 -@@ -1085,6 +1085,7 @@ - Frank Visser - Johannes Vogel - Alex Volkov -+Guido Vranken - Martijn Vries - Niki W. Waibel - Wojtek Walczak -Index: Python-3.3.5/Modules/_json.c -=================================================================== ---- a/Modules/_json.c -+++ b/Modules/_json.c -@@ -975,7 +975,10 @@ scan_once_unicode(PyScannerObject *s, Py - kind = PyUnicode_KIND(pystr); - length = PyUnicode_GET_LENGTH(pystr); - -- if (idx >= length) { -+ if (idx < 0) -+ /* Compatibility with Python version. */ -+ idx += length; -+ if (idx < 0 || idx >= length) { - PyErr_SetNone(PyExc_StopIteration); - return NULL; - } diff --git a/dev-lang/python/files/python-3.3-libressl.patch b/dev-lang/python/files/python-3.3-libressl.patch deleted file mode 100644 index 816704e..0000000 --- a/dev-lang/python/files/python-3.3-libressl.patch +++ /dev/null @@ -1,127 +0,0 @@ -From eed8d3b553e00e04c1f97c87ea02723630fb15a4 Mon Sep 17 00:00:00 2001 -From: hasufell <hasufell@gentoo.org> -Date: Sun, 20 Sep 2015 14:25:43 +0200 -Subject: [PATCH] Backport upstream libressl patches to python-3.3 - -https://hg.python.org/cpython/raw-rev/7f82f50fdad0 -https://hg.python.org/cpython/raw-rev/4dac45f88d45 ---- - Lib/ssl.py | 7 ++++++- - Lib/test/test_ssl.py | 21 +++++++++++++-------- - Modules/_ssl.c | 4 ++++ - configure | 42 ++++++++++++++++++++++++++++++++++++++++++ - configure.ac | 3 +++ - pyconfig.h.in | 3 +++ - 6 files changed, 71 insertions(+), 9 deletions(-) - -diff --git a/Lib/ssl.py b/Lib/ssl.py -index cd8d6b4..445ae87 100644 ---- a/Lib/ssl.py -+++ b/Lib/ssl.py -@@ -78,7 +78,12 @@ try: - from _ssl import OP_SINGLE_ECDH_USE - except ImportError: - pass --from _ssl import RAND_status, RAND_egd, RAND_add, RAND_bytes, RAND_pseudo_bytes -+from _ssl import RAND_status, RAND_add, RAND_bytes, RAND_pseudo_bytes -+try: -+ from _ssl import RAND_egd -+except ImportError: -+ # LibreSSL does not provide RAND_egd -+ pass - from _ssl import ( - SSL_ERROR_ZERO_RETURN, - SSL_ERROR_WANT_READ, -diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py -index 9fc6027..879f791 100644 ---- a/Lib/test/test_ssl.py -+++ b/Lib/test/test_ssl.py -@@ -130,8 +130,9 @@ class BasicSocketTests(unittest.TestCase): - self.assertRaises(ValueError, ssl.RAND_bytes, -5) - self.assertRaises(ValueError, ssl.RAND_pseudo_bytes, -5) - -- self.assertRaises(TypeError, ssl.RAND_egd, 1) -- self.assertRaises(TypeError, ssl.RAND_egd, 'foo', 1) -+ if hasattr(ssl, 'RAND_egd'): -+ self.assertRaises(TypeError, ssl.RAND_egd, 1) -+ self.assertRaises(TypeError, ssl.RAND_egd, 'foo', 1) - ssl.RAND_add("this is a random string", 75.0) - - @unittest.skipUnless(os.name == 'posix', 'requires posix') -@@ -250,11 +251,11 @@ class BasicSocketTests(unittest.TestCase): - # Some sanity checks follow - # >= 0.9 - self.assertGreaterEqual(n, 0x900000) -- # < 2.0 -- self.assertLess(n, 0x20000000) -+ # < 3.0 -+ self.assertLess(n, 0x30000000) - major, minor, fix, patch, status = t - self.assertGreaterEqual(major, 0) -- self.assertLess(major, 2) -+ self.assertLess(major, 3) - self.assertGreaterEqual(minor, 0) - self.assertLess(minor, 256) - self.assertGreaterEqual(fix, 0) -@@ -263,9 +264,13 @@ class BasicSocketTests(unittest.TestCase): - self.assertLessEqual(patch, 26) - self.assertGreaterEqual(status, 0) - self.assertLessEqual(status, 15) -- # Version string as returned by OpenSSL, the format might change -- self.assertTrue(s.startswith("OpenSSL {:d}.{:d}.{:d}".format(major, minor, fix)), -- (s, t)) -+ # Version string as returned by {Open,Libre}SSL, the format might change -+ if "LibreSSL" in s: -+ self.assertTrue(s.startswith("LibreSSL {:d}.{:d}".format(major, minor)), -+ (s, t)) -+ else: -+ self.assertTrue(s.startswith("OpenSSL {:d}.{:d}.{:d}".format(major, minor, fix)), -+ (s, t)) - - @support.cpython_only - def test_refcycle(self): -diff --git a/Modules/_ssl.c b/Modules/_ssl.c -index 499e8ba..cb151ba 100644 ---- a/Modules/_ssl.c -+++ b/Modules/_ssl.c -@@ -2559,6 +2559,7 @@ Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.\n\ - It is necessary to seed the PRNG with RAND_add() on some platforms before\n\ - using the ssl() function."); - -+#ifdef HAVE_RAND_EGD - static PyObject * - PySSL_RAND_egd(PyObject *self, PyObject *args) - { -@@ -2586,6 +2587,7 @@ PyDoc_STRVAR(PySSL_RAND_egd_doc, - Queries the entropy gather daemon (EGD) on the socket named by 'path'.\n\ - Returns number of bytes read. Raises SSLError if connection to EGD\n\ - fails or if it does not provide enough data to seed PRNG."); -+#endif /* HAVE_RAND_EGD */ - - #endif /* HAVE_OPENSSL_RAND */ - -@@ -2604,8 +2606,10 @@ static PyMethodDef PySSL_methods[] = { - PySSL_RAND_bytes_doc}, - {"RAND_pseudo_bytes", PySSL_RAND_pseudo_bytes, METH_VARARGS, - PySSL_RAND_pseudo_bytes_doc}, -+#ifdef HAVE_RAND_EGD - {"RAND_egd", PySSL_RAND_egd, METH_VARARGS, - PySSL_RAND_egd_doc}, -+#endif - {"RAND_status", (PyCFunction)PySSL_RAND_status, METH_NOARGS, - PySSL_RAND_status_doc}, - #endif -diff --git a/configure.ac b/configure.ac -index 6a64bff..90f315a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2181,6 +2181,9 @@ AC_MSG_RESULT($SHLIBS) - AC_CHECK_LIB(sendfile, sendfile) - AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV - AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX -+AC_CHECK_LIB(crypto, RAND_egd, -+ AC_DEFINE(HAVE_RAND_EGD, 1, -+ [Define if the libcrypto has RAND_egd])) - - # only check for sem_init if thread support is requested - if test "$with_threads" = "yes" -o -z "$with_threads"; then diff --git a/dev-lang/python/files/python-3.3.5-ncurses-pkg-config.patch b/dev-lang/python/files/python-3.3.5-ncurses-pkg-config.patch deleted file mode 100644 index d963b9e..0000000 --- a/dev-lang/python/files/python-3.3.5-ncurses-pkg-config.patch +++ /dev/null @@ -1,40 +0,0 @@ -do not hardcode /usr/include paths - ---- a/configure.ac -+++ b/configure.ac -@@ -668,6 +668,8 @@ AC_ARG_WITH(cxx_main, - ]) - AC_MSG_RESULT($with_cxx_main) - -+AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -+ - preset_cxx="$CXX" - if test -z "$CXX" - then -@@ -1513,7 +1515,7 @@ dnl AC_MSG_RESULT($cpp_type) - # checks for header files - AC_HEADER_STDC - ac_save_cppflags="$CPPFLAGS" --CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" -+CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags ncursesw`" - AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \ - fcntl.h grp.h \ - ieeefp.h io.h langinfo.h libintl.h ncurses.h process.h pthread.h \ -@@ -2225,8 +2227,6 @@ LIBS="$withval $LIBS" - ], - [AC_MSG_RESULT(no)]) - --AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -- - # Check for use of the system expat library - AC_MSG_CHECKING(for --with-system-expat) - AC_ARG_WITH(system_expat, -@@ -4273,7 +4273,7 @@ then - fi - - ac_save_cppflags="$CPPFLAGS" --CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" -+CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags ncursesw`" - # On HP/UX 11.0, mvwdelch is a block with a return statement - AC_MSG_CHECKING(whether mvwdelch is an expression) - AC_CACHE_VAL(ac_cv_mvwdelch_is_expression, diff --git a/dev-lang/python/files/python-3.4-gcc-5.patch b/dev-lang/python/files/python-3.4-gcc-5.patch deleted file mode 100644 index 80afbd1..0000000 --- a/dev-lang/python/files/python-3.4-gcc-5.patch +++ /dev/null @@ -1,37 +0,0 @@ -changeset: 94583:689092296ad3 -branch: 3.4 -parent: 94579:645f3d750be1 -user: Victor Stinner <victor.stinner@gmail.com> -date: Wed Feb 11 14:23:35 2015 +0100 -summary: Issue #23433: Fix faulthandler._stack_overflow() - -diff -r 645f3d750be1 -r 689092296ad3 Modules/faulthandler.c ---- a/Modules/faulthandler.c Tue Feb 10 14:49:32 2015 +0100 -+++ b/Modules/faulthandler.c Wed Feb 11 14:23:35 2015 +0100 -@@ -911,12 +911,12 @@ - } - - #if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION) --static void* --stack_overflow(void *min_sp, void *max_sp, size_t *depth) -+static Py_uintptr_t -+stack_overflow(Py_uintptr_t min_sp, Py_uintptr_t max_sp, size_t *depth) - { - /* allocate 4096 bytes on the stack at each call */ - unsigned char buffer[4096]; -- void *sp = &buffer; -+ Py_uintptr_t sp = (Py_uintptr_t)&buffer; - *depth += 1; - if (sp < min_sp || max_sp < sp) - return sp; -@@ -929,7 +929,8 @@ - faulthandler_stack_overflow(PyObject *self) - { - size_t depth, size; -- char *sp = (char *)&depth, *stop; -+ Py_uintptr_t sp = (Py_uintptr_t)&depth; -+ Py_uintptr_t stop; - - depth = 0; - stop = stack_overflow(sp - STACK_OVERFLOW_MAX_SIZE, - diff --git a/dev-lang/python/files/python-3.4.3-ncurses-pkg-config.patch b/dev-lang/python/files/python-3.4.3-ncurses-pkg-config.patch deleted file mode 100644 index 8bfad11..0000000 --- a/dev-lang/python/files/python-3.4.3-ncurses-pkg-config.patch +++ /dev/null @@ -1,13 +0,0 @@ -do not hardcode /usr/include paths - ---- a/configure.ac -+++ b/configure.ac -@@ -4402,7 +4402,7 @@ fi - - # first curses header check - ac_save_cppflags="$CPPFLAGS" --CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" -+CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags ncursesw`" - - AC_CHECK_HEADERS(curses.h ncurses.h) - diff --git a/dev-lang/python/metadata.xml b/dev-lang/python/metadata.xml index 6a4ebd8..dfcbe08 100644 --- a/dev-lang/python/metadata.xml +++ b/dev-lang/python/metadata.xml @@ -7,7 +7,6 @@ </maintainer> <use> <flag name="threads">Enable threading support. (DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)</flag> - <flag name="wide-unicode">Enable wide Unicode implementation which uses 4-byte Unicode characters. Switching of this USE flag changes ABI of Python and requires reinstallation of many Python modules. (DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)</flag> <flag name="wininst">Install Windows executables required to create an executable installer for MS Windows.</flag> </use> </pkgmetadata> diff --git a/dev-lang/python/python-2.6.9.ebuild b/dev-lang/python/python-2.6.9.ebuild deleted file mode 100644 index 4fab57d..0000000 --- a/dev-lang/python/python-2.6.9.ebuild +++ /dev/null @@ -1,340 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="5" -WANT_AUTOMAKE="none" -WANT_LIBTOOL="none" - -inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing - -MY_P="Python-${PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE="http://www.python.org/" -SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz" - -LICENSE="PSF-2" -SLOT="2.6" -KEYWORDS="" -IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND="app-arch/bzip2 - >=sys-libs/zlib-1.1.3 - virtual/libffi - virtual/libintl - !build? ( - berkdb? ( || ( - sys-libs/db:4.7 - sys-libs/db:4.6 - sys-libs/db:4.5 - sys-libs/db:4.4 - sys-libs/db:4.3 - sys-libs/db:4.2 - ) ) - gdbm? ( sys-libs/gdbm[berkdb] ) - ncurses? ( - >=sys-libs/ncurses-5.2 - readline? ( >=sys-libs/readline-4.1 ) - ) - sqlite? ( >=dev-db/sqlite-3.3.3:3 ) - ssl? ( dev-libs/openssl ) - tk? ( - >=dev-lang/tk-8.0 - dev-tcltk/blt - ) - xml? ( >=dev-libs/expat-2.1 ) - ) - !!<sys-apps/portage-2.1.9" -DEPEND="${RDEPEND} - virtual/pkgconfig - >=sys-devel/autoconf-2.61 - !sys-devel/gcc[libffi]" -RDEPEND+=" !build? ( app-misc/mime-types ) - doc? ( dev-python/python-docs:${SLOT} )" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - if use berkdb; then - ewarn "'bsddb' module is out-of-date and no longer maintained inside" - ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally" - ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module" - ewarn "is provided by dev-python/bsddb3." - else - if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then - ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]" - ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]." - ewarn "You might need to migrate your databases." - fi - fi -} - -src_prepare() { - # Ensure that internal copies of expat, libffi and zlib are not used. - rm -r Modules/expat || die - rm -r Modules/_ctypes/libffi* || die - rm -r Modules/zlib || die - - local excluded_patches - if ! tc-is-cross-compiler; then - excluded_patches="*_all_crosscompile.patch" - fi - - EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \ - epatch "${FILESDIR}/${SLOT}" - - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ - Lib/distutils/command/install.py \ - Lib/distutils/sysconfig.py \ - Lib/site.py \ - Makefile.pre.in \ - Modules/Setup.dist \ - Modules/getpath.c \ - setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" - - epatch_user - - eautoconf - eautoheader -} - -src_configure() { - if use build; then - # Disable extraneous modules with extra dependencies. - export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat" - export PYTHON_DISABLE_SSL="1" - else - # dbm module can be linked against berkdb or gdbm. - # Defaults to gdbm when both are enabled, #204343. - local disable - use berkdb || use gdbm || disable+=" dbm" - use berkdb || disable+=" _bsddb" - use gdbm || disable+=" gdbm" - use ncurses || disable+=" _curses _curses_panel" - use readline || disable+=" readline" - use sqlite || disable+=" _sqlite3" - use ssl || export PYTHON_DISABLE_SSL="1" - use tk || disable+=" _tkinter" - use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. - export PYTHON_DISABLE_MODULES="${disable}" - - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." - fi - fi - - if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then - einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" - fi - - if [[ "$(gcc-major-version)" -ge 4 ]]; then - append-flags -fwrapv - fi - - filter-flags -malign-double - - [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC - - # https://bugs.gentoo.org/show_bug.cgi?id=50309 - if is-flagq -O3; then - is-flagq -fstack-protector-all && replace-flags -O3 -O2 - use hardened && replace-flags -O3 -O2 - fi - - # Run the configure scripts in parallel. - multijob_init - - mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}} || die - - if tc-is-cross-compiler; then - ( - multijob_child_init - cd "${WORKDIR}"/${CBUILD} >/dev/null || die - OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \ - "${S}"/configure \ - --{build,host}=${CBUILD} \ - || die "cross-configure failed" - ) & - multijob_post_fork - fi - - # Export CXX so it ends up in /usr/lib/python2.X/config/Makefile. - tc-export CXX - # The configure script fails to use pkg-config correctly. - # http://bugs.python.org/issue15506 - export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG) - - # Set LDFLAGS so we link modules with -lpython2.6 correctly. - # Needed on FreeBSD unless Python 2.6 is already installed. - # Please query BSD team before removing this! - append-ldflags "-L." - - cd "${WORKDIR}"/${CHOST} || die - ECONF_SOURCE=${S} OPT="" \ - econf \ - --with-fpectl \ - --enable-shared \ - $(use_enable ipv6) \ - $(use_with threads) \ - $(usex wide-unicode "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2" "") \ - --infodir='${prefix}/share/info' \ - --mandir='${prefix}/share/man' \ - --with-libc="" \ - --with-system-ffi - - if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - if tc-is-cross-compiler; then - # Modify the Makefile.pre so we don't regen for the host/ one. - # We need to link the host python programs into $PWD and run - # them from here because the distutils sysconfig module will - # parse Makefile/etc... from argv[0], and we need it to pick - # up the target settings, not the host ones. - sed -i \ - -e '1iHOSTPYTHONPATH = ./hostpythonpath:' \ - -e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \ - -e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \ - Makefile{.pre,} || die "sed failed" - fi - - multijob_finish -} - -src_compile() { - if tc-is-cross-compiler; then - cd "${WORKDIR}"/${CBUILD} - # Disable as many modules as possible -- but we need a few to install. - PYTHON_DISABLE_MODULES=$( - sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \ - egrep -v '(unicodedata|time|cStringIO|_struct|binascii)' - ) \ - PTHON_DISABLE_SSL="1" \ - SYSROOT= \ - emake - # See comment in src_configure about these. - ln python ../${CHOST}/hostpython || die - ln Parser/pgen ../${CHOST}/Parser/hostpgen || die - ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die - fi - - cd "${WORKDIR}"/${CHOST} || die - default - - # Work around bug 329499. See also bug 413751. - pax-mark m python -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - cd "${WORKDIR}/${CHOST}" || die - - # Skip failing tests. - local skipped_tests="distutils tcl" - - for test in ${skipped_tests}; do - mv "${S}"/Lib/test/test_${test}.py "${T}" - done - - # Rerun failed tests in verbose mode (regrtest -w). - PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" < /dev/tty - local result="$?" - - for test in ${skipped_tests}; do - mv "${T}/test_${test}.py" "${S}"/Lib/test || die - done - - elog "The following tests have been skipped:" - for test in ${skipped_tests}; do - elog "test_${test}.py" - done - - elog "If you would like to run them, you may:" - elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'" - elog "and run the tests separately." - - if [[ "${result}" -ne 0 ]]; then - die "emake test failed" - fi -} - -src_install() { - local libdir=${ED}/usr/$(get_libdir)/python${SLOT} - - cd "${WORKDIR}"/${CHOST} || die - emake DESTDIR="${D}" altinstall maninstall - - # Fix collisions between different slots of Python. - mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}" || die - mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}" || die - mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}" || die - mv "${ED}usr/share/man/man1/python.1" "${ED}usr/share/man/man1/python${SLOT}.1" || die - rm -f "${ED}usr/bin/smtpd.py" || die - - if use build; then - rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test} || die - else - use elibc_uclibc && { rm -fr "${libdir}/"{bsddb/test,test} || die; } - use berkdb || { rm -fr "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*} || die; } - use sqlite || { rm -fr "${libdir}/"{sqlite3,test/test_sqlite*} || die; } - use tk || { rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk} || die; } - fi - - use threads || { rm -fr "${libdir}/multiprocessing" || die; } - use wininst || { rm -f "${libdir}/distutils/command/"wininst-*.exe || die; } - - dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - dodoc -r "${S}"/Tools/. - fi - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed" - newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed" - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${SLOT}:" \ - -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed" - - # for python-exec - python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR - - # if not using a cross-compiler, use the fresh binary - if ! tc-is-cross-compiler; then - local PYTHON=./python \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}. - export LD_LIBRARY_PATH - fi - - echo "EPYTHON='${EPYTHON}'" > epython.py - python_domodule epython.py -} - -pkg_postinst() { - ewarn "Please note that Python ${SLOT} is no longer supported in Gentoo." - ewarn "The interpreter is not maintained, and may contain security" - ewarn "vulnerabilities. Gentoo ebuilds will no longer be built with support" - ewarn "for Python ${SLOT}." - ewarn - ewarn "If you wish to use Python ${SLOT} for your own purposes (development," - ewarn "testing), we suggest establishing a virtualenv for this interpreter," - ewarn "and installing the necessary dependencies inside it. However, we also" - ewarn "strongly discourage using Python ${SLOT} on production systems." -} diff --git a/dev-lang/python/python-3.2.6.ebuild b/dev-lang/python/python-3.2.6.ebuild deleted file mode 100644 index 456ac47..0000000 --- a/dev-lang/python/python-3.2.6.ebuild +++ /dev/null @@ -1,340 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.5-r6.ebuild,v 1.11 2015/03/31 18:46:33 ulm Exp $ - -EAPI=5 -WANT_AUTOMAKE="none" -WANT_LIBTOOL="none" - -inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing - -MY_P="Python-${PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE="http://www.python.org/" -SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz" - -LICENSE="PSF-2" -SLOT="3.2" -KEYWORDS="" -IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND="app-arch/bzip2 - >=sys-libs/zlib-1.1.3 - virtual/libffi - virtual/libintl - !build? ( - gdbm? ( sys-libs/gdbm[berkdb] ) - ncurses? ( - >=sys-libs/ncurses-5.2 - readline? ( >=sys-libs/readline-4.1 ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3 ) - ssl? ( dev-libs/openssl ) - tk? ( - >=dev-lang/tk-8.0 - dev-tcltk/blt - dev-tcltk/tix - ) - xml? ( >=dev-libs/expat-2.1 ) - )" -DEPEND="${RDEPEND} - virtual/pkgconfig - >=sys-devel/autoconf-2.65 - !sys-devel/gcc[libffi]" -RDEPEND+=" !build? ( app-misc/mime-types ) - doc? ( dev-python/python-docs:${SLOT} )" - -S="${WORKDIR}/${MY_P}" - -src_prepare() { - # Ensure that internal copies of expat, libffi and zlib are not used. - rm -r Modules/expat || die - rm -r Modules/_ctypes/libffi* || die - rm -r Modules/zlib || die - - local excluded_patches - if ! tc-is-cross-compiler; then - excluded_patches="*_all_crosscompile.patch" - fi - - EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \ - epatch "${FILESDIR}/${SLOT}" - - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ - Lib/distutils/command/install.py \ - Lib/distutils/sysconfig.py \ - Lib/site.py \ - Lib/sysconfig.py \ - Lib/test/test_site.py \ - Makefile.pre.in \ - Modules/Setup.dist \ - Modules/getpath.c \ - setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" - - # Disable ABI flags. - sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed" - - epatch_user - - eautoconf - eautoheader -} - -src_configure() { - if use build; then - # Disable extraneous modules with extra dependencies. - export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat" - export PYTHON_DISABLE_SSL="1" - else - local disable - use gdbm || disable+=" gdbm" - use ncurses || disable+=" _curses _curses_panel" - use readline || disable+=" readline" - use sqlite || disable+=" _sqlite3" - use ssl || export PYTHON_DISABLE_SSL="1" - use tk || disable+=" _tkinter" - use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. - export PYTHON_DISABLE_MODULES="${disable}" - - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." - fi - fi - - if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then - einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" - fi - - if [[ "$(gcc-major-version)" -ge 4 ]]; then - append-flags -fwrapv - fi - - filter-flags -malign-double - - [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC - - # https://bugs.gentoo.org/show_bug.cgi?id=50309 - if is-flagq -O3; then - is-flagq -fstack-protector-all && replace-flags -O3 -O2 - use hardened && replace-flags -O3 -O2 - fi - - # Run the configure scripts in parallel. - multijob_init - - mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}} || die - - if tc-is-cross-compiler; then - ( - multijob_child_init - cd "${WORKDIR}"/${CBUILD} >/dev/null || die - OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \ - "${S}"/configure \ - --{build,host}=${CBUILD} \ - || die "cross-configure failed" - ) & - multijob_post_fork - - # The configure script assumes it's buggy when cross-compiling. - export ac_cv_buggy_getaddrinfo=no - export ac_cv_have_long_long_format=yes - fi - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - tc-export CXX - # The configure script fails to use pkg-config correctly. - # http://bugs.python.org/issue15506 - export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG) - - # Set LDFLAGS so we link modules with -lpython3.2 correctly. - # Needed on FreeBSD unless Python 3.2 is already installed. - # Please query BSD team before removing this! - append-ldflags "-L." - - local dbmliborder - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - cd "${WORKDIR}"/${CHOST} || die - ECONF_SOURCE=${S} OPT="" \ - econf \ - --with-fpectl \ - --enable-shared \ - $(use_enable ipv6) \ - $(use_with threads) \ - $(use_with wide-unicode) \ - --infodir='${prefix}/share/info' \ - --mandir='${prefix}/share/man' \ - --with-computed-gotos \ - --with-dbmliborder="${dbmliborder}" \ - --with-libc="" \ - --enable-loadable-sqlite-extensions \ - --with-system-expat \ - --with-system-ffi - - if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - if tc-is-cross-compiler; then - # Modify the Makefile.pre so we don't regen for the host/ one. - # We need to link the host python programs into $PWD and run - # them from here because the distutils sysconfig module will - # parse Makefile/etc... from argv[0], and we need it to pick - # up the target settings, not the host ones. - sed -i \ - -e '1iHOSTPYTHONPATH = ./hostpythonpath:' \ - -e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \ - -e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \ - Makefile{.pre,} || die "sed failed" - fi - - multijob_finish -} - -src_compile() { - if tc-is-cross-compiler; then - cd "${WORKDIR}"/${CBUILD} - # Disable as many modules as possible -- but we need a few to install. - PYTHON_DISABLE_MODULES=$( - sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \ - egrep -v '(unicodedata|time|cStringIO|_struct|binascii)' - ) \ - PTHON_DISABLE_SSL="1" \ - SYSROOT= \ - emake - # See comment in src_configure about these. - ln python ../${CHOST}/hostpython || die - ln Parser/pgen ../${CHOST}/Parser/hostpgen || die - ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die - fi - - cd "${WORKDIR}"/${CHOST} || die - emake CPPFLAGS="" CFLAGS="" LDFLAGS="" - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version "dev-libs/libffi[pax_kernel]"; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - cd "${WORKDIR}/${CHOST}" || die - - # Skip failing tests. - local skipped_tests="gdb" - - for test in ${skipped_tests}; do - mv "${S}"/Lib/test/test_${test}.py "${T}" - done - - # Rerun failed tests in verbose mode (regrtest -w). - PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty - local result="$?" - - for test in ${skipped_tests}; do - mv "${T}/test_${test}.py" "${S}"/Lib/test || die - done - - elog "The following tests have been skipped:" - for test in ${skipped_tests}; do - elog "test_${test}.py" - done - - elog "If you would like to run them, you may:" - elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'" - elog "and run the tests separately." - - if [[ "${result}" -ne 0 ]]; then - die "emake test failed" - fi -} - -src_install() { - local libdir=${ED}/usr/$(get_libdir)/python${SLOT} - - cd "${WORKDIR}"/${CHOST} || die - emake DESTDIR="${D}" altinstall - - sed \ - -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ - -e "s/\(PY_LDFLAGS=\).*/\1/" \ - -i "${libdir}/config-${SLOT}/Makefile" || die "sed failed" - - # Fix collisions between different slots of Python. - rm "${ED}usr/$(get_libdir)/libpython3.so" || die - - if use build; then - rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter} || die - else - use elibc_uclibc && { rm -fr "${libdir}/test" || die; } - use sqlite || { rm -fr "${libdir}/"{sqlite3,test/test_sqlite*} || die; } - use tk || { rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die; } - fi - - use threads || { rm -fr "${libdir}/multiprocessing" || die; } - use wininst || { rm -f "${libdir}/distutils/command/"wininst-*.exe || die; } - - dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find "${S}"/Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r "${S}"/Tools/. - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ - emake --no-print-directory -s -f - 2>/dev/null) - newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} - newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${SLOT}:" \ - -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed" - - # for python-exec - python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR - - # if not using a cross-compiler, use the fresh binary - if ! tc-is-cross-compiler; then - local PYTHON=./python \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}. - export LD_LIBRARY_PATH - fi - - echo "EPYTHON='${EPYTHON}'" > epython.py - python_domodule epython.py -} - -pkg_postinst() { - ewarn "Please note that Python ${SLOT} is no longer supported in Gentoo." - ewarn "The interpreter is not well maintained, and may contain security" - ewarn "vulnerabilities. Gentoo ebuilds will no longer be built with support" - ewarn "for Python ${SLOT}." - ewarn - ewarn "If you wish to use Python ${SLOT} for your own purposes (development," - ewarn "testing), we suggest establishing a virtualenv for this interpreter," - ewarn "and installing the necessary dependencies inside it. However, we also" - ewarn "strongly discourage using Python ${SLOT} on production systems." -} diff --git a/dev-lang/python/python-3.3.5.ebuild b/dev-lang/python/python-3.3.5.ebuild deleted file mode 100644 index 896721e..0000000 --- a/dev-lang/python/python-3.3.5.ebuild +++ /dev/null @@ -1,368 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="5" -WANT_AUTOMAKE="none" -WANT_LIBTOOL="none" - -inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing - -MY_P="Python-${PV}" -PATCHSET_VERSION="${PV}-0" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE="http://www.python.org/" -SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz" - -LICENSE="PSF-2" -SLOT="3.3/3.3m" -KEYWORDS="" -IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk wininst +xml" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -PYVER=${SLOT%/*} - -RDEPEND="app-arch/bzip2:0= - app-arch/xz-utils:0= - >=sys-libs/zlib-1.1.3:0= - virtual/libffi - virtual/libintl - !build? ( - gdbm? ( sys-libs/gdbm:0=[berkdb] ) - ncurses? ( - >=sys-libs/ncurses-5.2:0= - readline? ( >=sys-libs/readline-4.1:0= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:= ) - ) - tk? ( - >=dev-lang/tcl-8.0:0= - >=dev-lang/tk-8.0:0= - dev-tcltk/blt:0= - dev-tcltk/tix - ) - xml? ( >=dev-libs/expat-2.1:0= ) - ) - !!<sys-apps/sandbox-2.6-r1" -DEPEND="${RDEPEND} - virtual/pkgconfig - >=sys-devel/autoconf-2.65 - !sys-devel/gcc[libffi(-)]" -RDEPEND+=" !build? ( app-misc/mime-types ) - doc? ( dev-python/python-docs:${PYVER} )" -PDEPEND=">=app-eselect/eselect-python-20140125-r1" - -S="${WORKDIR}/${MY_P}" - -src_prepare() { - # Ensure that internal copies of expat, libffi and zlib are not used. - rm -fr Modules/expat - rm -fr Modules/_ctypes/libffi* - rm -fr Modules/zlib - - if tc-is-cross-compiler; then - # Invokes BUILDPYTHON, which is built for the host arch - local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch" - fi - - EPATCH_SUFFIX="patch" EPATCH_EXCLUDE="61_all_process_data.patch" \ - epatch "${FILESDIR}/3.3" - epatch "${FILESDIR}/${PN}-3.3.5-ncurses-pkg-config.patch" - epatch "${FILESDIR}/${PN}-3.4-gcc-5.patch" #547626 - - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ - Lib/distutils/command/install.py \ - Lib/distutils/sysconfig.py \ - Lib/site.py \ - Lib/sysconfig.py \ - Lib/test/test_site.py \ - Makefile.pre.in \ - Modules/Setup.dist \ - Modules/getpath.c \ - setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" - - # bug #514686 - epatch "${FILESDIR}/${PN}-3.3-CVE-2014-4616.patch" - - epatch "${FILESDIR}"/${PN}-3.3-libressl.patch - - epatch_user - - eautoconf - eautoheader -} - -src_configure() { - if use build; then - # Disable extraneous modules with extra dependencies. - export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat" - export PYTHON_DISABLE_SSL="1" - else - local disable - use gdbm || disable+=" gdbm" - use ncurses || disable+=" _curses _curses_panel" - use readline || disable+=" readline" - use sqlite || disable+=" _sqlite3" - use ssl || export PYTHON_DISABLE_SSL="1" - use tk || disable+=" _tkinter" - use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. - export PYTHON_DISABLE_MODULES="${disable}" - - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." - fi - fi - - if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then - einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" - fi - - if [[ "$(gcc-major-version)" -ge 4 ]]; then - append-flags -fwrapv - fi - - filter-flags -malign-double - - # https://bugs.gentoo.org/show_bug.cgi?id=50309 - if is-flagq -O3; then - is-flagq -fstack-protector-all && replace-flags -O3 -O2 - use hardened && replace-flags -O3 -O2 - fi - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - tc-export CXX - # The configure script fails to use pkg-config correctly. - # http://bugs.python.org/issue15506 - export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG) - - # Set LDFLAGS so we link modules with -lpython3.2 correctly. - # Needed on FreeBSD unless Python 3.2 is already installed. - # Please query BSD team before removing this! - append-ldflags "-L." - - local dbmliborder - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - BUILD_DIR="${WORKDIR}/${CHOST}" - mkdir -p "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - ECONF_SOURCE="${S}" OPT="" \ - econf \ - --with-fpectl \ - --enable-shared \ - $(use_enable ipv6) \ - $(use_with threads) \ - --infodir='${prefix}/share/info' \ - --mandir='${prefix}/share/man' \ - --with-computed-gotos \ - --with-dbmliborder="${dbmliborder}" \ - --with-libc="" \ - --enable-loadable-sqlite-extensions \ - --with-system-expat \ - --with-system-ffi - - if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi -} - -src_compile() { - # Avoid invoking pgen for cross-compiles. - touch Include/graminit.h Python/graminit.c || die - - cd "${BUILD_DIR}" || die - emake CPPFLAGS="" CFLAGS="" LDFLAGS="" - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax_kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - cd "${BUILD_DIR}" || die - - # Skip failing tests. - local skipped_tests="gdb" - - for test in ${skipped_tests}; do - mv "${S}"/Lib/test/test_${test}.py "${T}" - done - - PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-u -network" FLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty - local result="$?" - - for test in ${skipped_tests}; do - mv "${T}/test_${test}.py" "${S}"/Lib/test - done - - elog "The following tests have been skipped:" - for test in ${skipped_tests}; do - elog "test_${test}.py" - done - - elog "If you would like to run them, you may:" - elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'" - elog "and run the tests separately." - - if [[ "${result}" -ne 0 ]]; then - die "emake test failed" - fi -} - -src_install() { - local libdir=${ED}/usr/$(get_libdir)/python${PYVER} - - cd "${BUILD_DIR}" || die - - emake DESTDIR="${D}" altinstall - - sed \ - -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ - -e "s/\(PY_LDFLAGS=\).*/\1/" \ - -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" - - # Fix collisions between different slots of Python. - rm -f "${ED}usr/$(get_libdir)/libpython3.so" - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - if use build; then - rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,sqlite3,test,tkinter} - else - use elibc_uclibc && rm -fr "${libdir}/test" - use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*} - use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} - fi - - use threads || rm -fr "${libdir}/multiprocessing" - use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe - - dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - insinto /usr/share/doc/${PF}/examples - find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr - doins -r "${S}"/Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ - emake --no-print-directory -s -f - 2>/dev/null) - newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}etc/conf.d/pydoc-${PYVER}" "${ED}etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # for python-exec - local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR ) - - # if not using a cross-compiler, use the fresh binary - if ! tc-is-cross-compiler; then - local -x PYTHON=./python - local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}. - else - vars=( PYTHON "${vars[@]}" ) - fi - - python_export "python${PYVER}" "${vars[@]}" - echo "EPYTHON='${EPYTHON}'" > epython.py || die - python_domodule epython.py - - # python-exec wrapping support - local pymajor=${PYVER%.*} - mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" \ - "${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die - ln -s "python${pymajor}" \ - "${D}${PYTHON_SCRIPTDIR}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" \ - "${D}${PYTHON_SCRIPTDIR}/python-config" || die - # 2to3, pydoc, pyvenv - ln -s "../../../bin/2to3-${PYVER}" \ - "${D}${PYTHON_SCRIPTDIR}/2to3" || die - ln -s "../../../bin/pydoc${PYVER}" \ - "${D}${PYTHON_SCRIPTDIR}/pydoc" || die - ln -s "../../../bin/pyvenv-${PYVER}" \ - "${D}${PYTHON_SCRIPTDIR}/pyvenv" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" \ - "${D}${PYTHON_SCRIPTDIR}/idle" || die - fi -} - -pkg_preinst() { - if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then - python_updater_warning="1" - fi -} - -eselect_python_update() { - if [[ -z "$(eselect python show)" || ! -f "${EROOT}usr/bin/$(eselect python show)" ]]; then - eselect python update - fi - - if [[ -z "$(eselect python show --python${PV%%.*})" || ! -f "${EROOT}usr/bin/$(eselect python show --python${PV%%.*})" ]]; then - eselect python update --python${PV%%.*} - fi -} - -pkg_postinst() { - eselect_python_update - - if [[ "${python_updater_warning}" == "1" ]]; then - ewarn "You have just upgraded from an older version of Python." - ewarn - ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules." - fi -} - -pkg_postrm() { - eselect_python_update -} |