]> git.ipfire.org Git - people/stevee/ipfire-3.x.git/commitdiff
python: Drop package
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 20 Feb 2023 13:56:46 +0000 (13:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 20 Feb 2023 13:56:46 +0000 (13:56 +0000)
This has reached EOL: https://www.python.org/doc/sunset-python-2/

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
52 files changed:
python/patches/00001-pydocnogui.patch [deleted file]
python/patches/00010-2.7.13-binutils-no-dep.patch [deleted file]
python/patches/00104-lib64-fix-for-test_install.patch [deleted file]
python/patches/00112-2.7.13-debug-build.patch [deleted file]
python/patches/00113-more-configuration-flags.patch [deleted file]
python/patches/00114-statvfs-f_flag-constants.patch [deleted file]
python/patches/00121-add-Modules-to-build-path.patch [deleted file]
python/patches/00131-disable-tests-in-test_io.patch [deleted file]
python/patches/00132-add-rpmbuild-hooks-to-unittest.patch [deleted file]
python/patches/00133-skip-test_dl.patch [deleted file]
python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch [deleted file]
python/patches/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch [deleted file]
python/patches/00138-fix-distutils-tests-in-debug-build.patch [deleted file]
python/patches/00139-skip-test_float-known-failure-on-arm.patch [deleted file]
python/patches/00140-skip-test_ctypes-known-failure-on-sparc.patch [deleted file]
python/patches/00142-skip-failing-pty-tests-in-rpmbuild.patch [deleted file]
python/patches/00143-tsc-on-ppc.patch [deleted file]
python/patches/00147-add-debug-malloc-stats.patch [deleted file]
python/patches/00155-avoid-ctypes-thunks.patch [deleted file]
python/patches/00156-gdb-autoload-safepath.patch [deleted file]
python/patches/00157-uid-gid-overflows.patch [deleted file]
python/patches/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch [deleted file]
python/patches/00168-distutils-cflags.patch [deleted file]
python/patches/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch [deleted file]
python/patches/00170-gc-assertions.patch [deleted file]
python/patches/00174-fix-for-usr-move.patch [deleted file]
python/patches/00180-python-add-support-for-ppc64p7.patch [deleted file]
python/patches/00181-allow-arbitrary-timeout-in-condition-wait.patch [deleted file]
python/patches/00185-urllib2-honors-noproxy-for-ftp.patch [deleted file]
python/patches/00187-add-RPATH-to-pyexpat.patch [deleted file]
python/patches/00189-use-rpm-wheels.patch [deleted file]
python/patches/00190-gdb-py-bt-dont-raise-exception-from-eval.patch [deleted file]
python/patches/00191-disable-NOOP.patch [deleted file]
python/patches/00193-enable-loading-sqlite-extensions.patch [deleted file]
python/patches/00289-disable-nis-detection.patch [deleted file]
python/patches/00309-shutil-spawn-subprocess.patch [deleted file]
python/patches/00310-use-xml-sethashsalt-in-elementtree.patch [deleted file]
python/patches/05000-autotool-intermediates.patch [deleted file]
python/patches/python-2.3.4-lib64-regex.patch [deleted file]
python/patches/python-2.5-cflags.patch [deleted file]
python/patches/python-2.5.1-plural-fix.patch [deleted file]
python/patches/python-2.5.1-sqlite-encoding.patch [deleted file]
python/patches/python-2.6-rpath.patch [deleted file]
python/patches/python-2.6.4-distutils-rpath.patch [deleted file]
python/patches/python-2.7.1-config.patch [deleted file]
python/patches/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch [deleted file]
python/patches/python-2.7.2-add-extension-suffix-to-python-config.patch [deleted file]
python/patches/python-2.7rc1-socketmodule-constants.patch [deleted file]
python/patches/python-2.7rc1-socketmodule-constants2.patch [deleted file]
python/python-2.7-lib64-sysconfig.patch [deleted file]
python/python-2.7.13-lib64.patch [deleted file]
python/python.nm [deleted file]

diff --git a/python/patches/00001-pydocnogui.patch b/python/patches/00001-pydocnogui.patch
deleted file mode 100644 (file)
index 0311f38..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up Python-2.7.3/Lib/pydoc.py.no_gui Python-2.7.3/Lib/pydoc.py
---- Python-2.7.3/Lib/pydoc.py.no_gui   2012-04-09 19:07:31.000000000 -0400
-+++ Python-2.7.3/Lib/pydoc.py  2013-02-19 13:48:44.480054515 -0500
-@@ -19,9 +19,6 @@ of all available modules.
- local machine to generate documentation web pages.  Port number 0 can be
- used to get an arbitrary unused port.
--For platforms without a command line, "pydoc -g" starts the HTTP server
--and also pops up a little window for controlling it.
--
- Run "pydoc -w <name>" to write out the HTML documentation for a module
- to a file named "<name>.html".
-@@ -2346,13 +2340,10 @@ def cli():
-     Start an HTTP server on the given port on the local machine.  Port
-     number 0 can be used to get an arbitrary unused port.
--%s -g
--    Pop up a graphical interface for finding and serving documentation.
--
- %s -w <name> ...
-     Write out the HTML documentation for a module to a file in the current
-     directory.  If <name> contains a '%s', it is treated as a filename; if
-     it names a directory, documentation is written for all the contents.
--""" % (cmd, os.sep, cmd, cmd, cmd, cmd, os.sep)
-+""" % (cmd, os.sep, cmd, cmd, cmd, os.sep)
- if __name__ == '__main__': cli()
diff --git a/python/patches/00010-2.7.13-binutils-no-dep.patch b/python/patches/00010-2.7.13-binutils-no-dep.patch
deleted file mode 100644 (file)
index d432623..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index ab10ec5..923d1b7 100644
---- a/Lib/ctypes/util.py
-+++ b/Lib/ctypes/util.py
-@@ -140,11 +140,15 @@ elif os.name == "posix":
-             # assuming GNU binutils / ELF
-             if not f:
-                 return None
--            cmd = 'if ! type objdump >/dev/null 2>&1; then exit; fi;' \
-+            cmd = 'if ! type objdump >/dev/null 2>&1; then exit 10; fi;' \
-                   'objdump -p -j .dynamic 2>/dev/null "$1"'
-             proc = subprocess.Popen((cmd, '_get_soname', f), shell=True,
-                                     stdout=subprocess.PIPE)
-             [dump, _] = proc.communicate()
-+            if proc.returncode == 10:
-+                return os.path.basename(f) #  This is good for GLibc, I think,
-+                                           # and a dep on binutils is big (for
-+                                           # live CDs).
-             res = re.search(br'\sSONAME\s+([^\s]+)', dump)
-             if not res:
-                 return None
diff --git a/python/patches/00104-lib64-fix-for-test_install.patch b/python/patches/00104-lib64-fix-for-test_install.patch
deleted file mode 100644 (file)
index 7852bf6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- Python-2.7.2/Lib/distutils/tests/test_install.py.lib64     2011-09-08 17:51:57.851405376 -0400
-+++ Python-2.7.2/Lib/distutils/tests/test_install.py   2011-09-08 18:40:46.754205096 -0400
-@@ -41,8 +41,9 @@ class InstallTestCase(support.TempdirMan
-             self.assertEqual(got, expected)
-         libdir = os.path.join(destination, "lib", "python")
-+        platlibdir = os.path.join(destination, "lib64", "python")
-         check_path(cmd.install_lib, libdir)
--        check_path(cmd.install_platlib, libdir)
-+        check_path(cmd.install_platlib, platlibdir)
-         check_path(cmd.install_purelib, libdir)
-         check_path(cmd.install_headers,
-                    os.path.join(destination, "include", "python", "foopkg"))
diff --git a/python/patches/00112-2.7.13-debug-build.patch b/python/patches/00112-2.7.13-debug-build.patch
deleted file mode 100644 (file)
index 463f4d8..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-From 898f93aa206e577dfe854c59bc62d0cea09cd5ed Mon Sep 17 00:00:00 2001
-From: Tomas Orsava <torsava@redhat.com>
-Date: Tue, 10 Jan 2017 16:19:50 +0100
-Subject: [PATCH] Patch to support building both optimized vs debug stacks DSO
- ABIs,
-
-sharing the same .py and .pyc files, using "_d.so" to signify a debug build of
-an extension module.
----
- Lib/distutils/command/build_ext.py  |  7 ++++-
- Lib/distutils/sysconfig.py          |  5 ++--
- Lib/distutils/tests/test_install.py |  3 +-
- Makefile.pre.in                     | 56 ++++++++++++++++++++-----------------
- Misc/python-config.in               |  2 +-
- Modules/makesetup                   |  2 +-
- Python/dynload_shlib.c              | 11 ++++++--
- Python/sysmodule.c                  |  6 ++++
- configure.ac                        | 14 ++++++++--
- 9 files changed, 69 insertions(+), 37 deletions(-)
-
-diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
-index 2c68be3..029d144 100644
---- a/Lib/distutils/command/build_ext.py
-+++ b/Lib/distutils/command/build_ext.py
-@@ -677,7 +677,10 @@ class build_ext (Command):
-         so_ext = get_config_var('SO')
-         if os.name == 'nt' and self.debug:
-             return os.path.join(*ext_path) + '_d' + so_ext
--        return os.path.join(*ext_path) + so_ext
-+        
-+        # Similarly, extensions in debug mode are named 'module_d.so', to
-+        # avoid adding the _d to the SO config variable:
-+        return os.path.join(*ext_path) + (sys.pydebug and "_d" or "") + so_ext
-     def get_export_symbols (self, ext):
-         """Return the list of symbols that a shared extension has to
-@@ -762,6 +765,8 @@ class build_ext (Command):
-                 template = "python%d.%d"
-                 pythonlib = (template %
-                              (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
-+                if sys.pydebug:
-+                    pythonlib += '_d'
-                 return ext.libraries + [pythonlib]
-             else:
-                 return ext.libraries
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 3e7f077..ec5d584 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -90,7 +90,8 @@ def get_python_inc(plat_specific=0, prefix=None):
-                 # Include is located in the srcdir
-                 inc_dir = os.path.join(srcdir, "Include")
-             return inc_dir
--        return os.path.join(prefix, "include", "python" + get_python_version())
-+        return os.path.join(prefix, "include",
-+            "python" + get_python_version() + (sys.pydebug and '-debug' or ''))
-     elif os.name == "nt":
-         return os.path.join(prefix, "include")
-     elif os.name == "os2":
-@@ -248,7 +249,7 @@ def get_makefile_filename():
-     if python_build:
-         return os.path.join(project_base, "Makefile")
-     lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
--    return os.path.join(lib_dir, "config", "Makefile")
-+    return os.path.join(lib_dir, "config" + (sys.pydebug and "-debug" or ""), "Makefile")
- def parse_config_h(fp, g=None):
-diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py
-index 78fac46..d1d0931 100644
---- a/Lib/distutils/tests/test_install.py
-+++ b/Lib/distutils/tests/test_install.py
-@@ -20,8 +20,9 @@ from distutils.tests import support
- def _make_ext_name(modname):
--    if os.name == 'nt' and sys.executable.endswith('_d.exe'):
-+    if sys.pydebug:
-         modname += '_d'
-+        
-     return modname + sysconfig.get_config_var('SO')
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 997a2fc..467e782 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -116,8 +116,8 @@ SCRIPTDIR= $(prefix)/lib64
- # Detailed destination directories
- BINLIBDEST=   $(LIBDIR)/python$(VERSION)
- LIBDEST=      $(SCRIPTDIR)/python$(VERSION)
--INCLUDEPY=    $(INCLUDEDIR)/python$(VERSION)
--CONFINCLUDEPY=        $(CONFINCLUDEDIR)/python$(VERSION)
-+INCLUDEPY=    $(INCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
-+CONFINCLUDEPY=        $(CONFINCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
- LIBP=         $(LIBDIR)/python$(VERSION)
- # Symbols used for using shared libraries
-@@ -131,6 +131,12 @@ DESTSHARED=       $(BINLIBDEST)/lib-dynload
- EXE=          @EXEEXT@
- BUILDEXE=     @BUILDEXEEXT@
-+# DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for a debug build
-+# DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a debug build
-+# Both will be empty in an optimized build
-+DEBUG_EXT=    @DEBUG_EXT@
-+DEBUG_SUFFIX= @DEBUG_SUFFIX@
-+
- # Short name and location for Mac OS X Python framework
- UNIVERSALSDK=@UNIVERSALSDK@
- PYTHONFRAMEWORK=      @PYTHONFRAMEWORK@
-@@ -197,8 +203,8 @@ LIBOBJDIR= Python/
- LIBOBJS=      @LIBOBJS@
- UNICODE_OBJS=   @UNICODE_OBJS@
--PYTHON=               python$(EXE)
--BUILDPYTHON=  python$(BUILDEXE)
-+PYTHON=               python$(DEBUG_SUFFIX)$(EXE)
-+BUILDPYTHON=  python$(DEBUG_SUFFIX)$(BUILDEXE)
- PYTHON_FOR_REGEN=@PYTHON_FOR_REGEN@
- PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
-@@ -547,7 +553,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
-               _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
-               $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
--libpython$(VERSION).so: $(LIBRARY_OBJS)
-+libpython$(VERSION)$(DEBUG_EXT).so: $(LIBRARY_OBJS)
-       if test $(INSTSONAME) != $(LDLIBRARY); then \
-               $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-               $(LN) -f $(INSTSONAME) $@; \
-@@ -954,18 +960,18 @@ bininstall:      altbininstall
-       then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
-       else true; \
-       fi
--      (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON))
--      -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
--      (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE))
--      -rm -f $(DESTDIR)$(BINDIR)/python2-config
--      (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config)
--      -rm -f $(DESTDIR)$(BINDIR)/python-config
--      (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config)
-+      (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)$(EXE) $(PYTHON))
-+      -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)$(EXE)
-+      (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)$(EXE) python2$(DEBUG_SUFFIX)$(EXE))
-+      -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)-config
-+      (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)-config python2$(DEBUG_SUFFIX)-config)
-+      -rm -f $(DESTDIR)$(BINDIR)/python$(DEBUG_SUFFIX)-config
-+      (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)-config python$(DEBUG_SUFFIX)-config)
-       -test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC)
--      -rm -f $(DESTDIR)$(LIBPC)/python2.pc
--      (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc)
--      -rm -f $(DESTDIR)$(LIBPC)/python.pc
--      (cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc)
-+      -rm -f $(DESTDIR)$(LIBPC)/python2$(DEBUG_SUFFIX).pc
-+      (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)$(DEBUG_SUFFIX).pc python2$(DEBUG_SUFFIX).pc)
-+      -rm -f $(DESTDIR)$(LIBPC)/python$(DEBUG_SUFFIX).pc
-+      (cd $(DESTDIR)$(LIBPC); $(LN) -s python2$(DEBUG_SUFFIX).pc python$(DEBUG_SUFFIX).pc)
- # Install the interpreter with $(VERSION) affixed
- # This goes into $(exec_prefix)
-@@ -978,7 +984,7 @@ altbininstall:     $(BUILDPYTHON)
-               else    true; \
-               fi; \
-       done
--      $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
-+      $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)
-       if test -f $(LDLIBRARY); then \
-               if test -n "$(DLLLIBRARY)" ; then \
-                       $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
-@@ -1148,10 +1154,11 @@ $(srcdir)/Lib/$(PLATDIR):
-       fi; \
-       cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
--python-config: $(srcdir)/Misc/python-config.in
-+python$(DEBUG_SUFFIX)-config: $(srcdir)/Misc/python-config.in
-       # Substitution happens here, as the completely-expanded BINDIR
-       # is not available in configure
--      sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
-+      sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)," < $(srcdir)/Misc/python-config.in >python$(DEBUG_SUFFIX)-config
-+      
- # Install the include files
- INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
-@@ -1172,13 +1179,13 @@ inclinstall:
-       $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
- # Install the library and miscellaneous stuff needed for extending/embedding
--# This goes into $(exec_prefix)
--LIBPL=                $(LIBP)/config
-+# This goes into $(exec_prefix)$(DEBUG_SUFFIX)
-+LIBPL=                $(LIBP)/config$(DEBUG_SUFFIX)
- # pkgconfig directory
- LIBPC=                $(LIBDIR)/pkgconfig
--libainstall:  @DEF_MAKE_RULE@ python-config
-+libainstall:  @DEF_MAKE_RULE@ python$(DEBUG_SUFFIX)-config
-       @for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
-       do \
-               if test ! -d $(DESTDIR)$$i; then \
-@@ -1194,11 +1201,10 @@ libainstall:   all python-config
-       $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
-       $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
-       $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
--      $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
-+      $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)$(DEBUG_SUFFIX).pc
-       $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
-       $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
--      $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
--      rm python-config
-+      $(INSTALL_SCRIPT) python$(DEBUG_SUFFIX)-config $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)-config
-       @if [ -s Modules/python.exp -a \
-               "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
-               echo; echo "Installing support files for building shared extension modules on AIX:"; \
-diff --git a/Misc/python-config.in b/Misc/python-config.in
-index a09e07c..c1691ef 100644
---- a/Misc/python-config.in
-+++ b/Misc/python-config.in
-@@ -44,7 +44,7 @@ for opt in opt_flags:
-         print ' '.join(flags)
-     elif opt in ('--libs', '--ldflags'):
--        libs = ['-lpython' + pyver]
-+        libs = ['-lpython' + pyver + (sys.pydebug and "_d" or "")]
-         libs += getvar('LIBS').split()
-         libs += getvar('SYSLIBS').split()
-         # add the prefix/lib/pythonX.Y/config dir, but only if there is no
-diff --git a/Modules/makesetup b/Modules/makesetup
-index 1bffcbf..f0bc743 100755
---- a/Modules/makesetup
-+++ b/Modules/makesetup
-@@ -233,7 +233,7 @@ sed -e 's/[        ]*#.*//' -e '/^[        ]*$/d' |
-                       *$mod.o*)       base=$mod;;
-                       *)              base=${mod}module;;
-                       esac
--                      file="$srcdir/$base\$(SO)"
-+                      file="$srcdir/$base\$(DEBUG_EXT)\$(SO)"
-                       case $doconfig in
-                       no)     SHAREDMODS="$SHAREDMODS $file";;
-                       esac
-diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c
-index 17ebab1..02a94aa 100644
---- a/Python/dynload_shlib.c
-+++ b/Python/dynload_shlib.c
-@@ -46,11 +46,16 @@ const struct filedescr _PyImport_DynLoadFiletab[] = {
-     {"module.exe", "rb", C_EXTENSION},
-     {"MODULE.EXE", "rb", C_EXTENSION},
- #else
-+#ifdef Py_DEBUG
-+    {"_d.so", "rb", C_EXTENSION},
-+    {"module_d.so", "rb", C_EXTENSION},
-+#else
-     {".so", "rb", C_EXTENSION},
-     {"module.so", "rb", C_EXTENSION},
--#endif
--#endif
--#endif
-+#endif /* Py_DEBUG */
-+#endif /* __VMS */
-+#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
-+#endif /* __CYGWIN__ */
-     {0, 0}
- };
-diff --git a/Python/sysmodule.c b/Python/sysmodule.c
-index aeff38a..183e3cc 100644
---- a/Python/sysmodule.c
-+++ b/Python/sysmodule.c
-@@ -1524,6 +1524,12 @@ _PySys_Init(void)
-                         PyString_FromString("legacy"));
- #endif
-+#ifdef Py_DEBUG
-+    PyDict_SetItemString(sysdict, "pydebug", Py_True);
-+#else
-+    PyDict_SetItemString(sysdict, "pydebug", Py_False);
-+#endif
-+
- #undef SET_SYS_FROM_STRING
-     if (PyErr_Occurred())
-         return NULL;
-diff --git a/configure.ac b/configure.ac
-index 0a902c7..5caedb7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -764,7 +764,7 @@ AC_SUBST(LIBRARY)
- AC_MSG_CHECKING(LIBRARY)
- if test -z "$LIBRARY"
- then
--      LIBRARY='libpython$(VERSION).a'
-+      LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a'
- fi
- AC_MSG_RESULT($LIBRARY)
-@@ -910,8 +910,8 @@ if test $enable_shared = "yes"; then
-         INSTSONAME="$LDLIBRARY".$SOVERSION
-           ;;
-     Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
--        LDLIBRARY='libpython$(VERSION).so'
--        BLDLIBRARY='-L. -lpython$(VERSION)'
-+        LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
-+        BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
-         RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-         case $ac_sys_system in
-             FreeBSD*)
-@@ -1040,6 +1040,14 @@ else AC_MSG_RESULT(no); Py_DEBUG='false'
- fi],
- [AC_MSG_RESULT(no)])
-+if test "$Py_DEBUG" = 'true'
-+then
-+      DEBUG_EXT=_d
-+      DEBUG_SUFFIX=-debug
-+fi
-+AC_SUBST(DEBUG_EXT)
-+AC_SUBST(DEBUG_SUFFIX)
-+
- # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
- # merged with this chunk of code?
--- 
-2.11.0
-
diff --git a/python/patches/00113-more-configuration-flags.patch b/python/patches/00113-more-configuration-flags.patch
deleted file mode 100644 (file)
index 2d447b2..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -up Python-2.6.5/configure.ac.more-configuration-flags Python-2.6.5/configure.ac
---- Python-2.6.5/configure.ac.more-configuration-flags 2010-05-24 18:51:25.410111792 -0400
-+++ Python-2.6.5/configure.ac  2010-05-24 18:59:23.954986388 -0400
-@@ -2515,6 +2515,30 @@ else AC_MSG_RESULT(no)
- fi],
- [AC_MSG_RESULT(no)])
-+AC_MSG_CHECKING(for --with-count-allocs)
-+AC_ARG_WITH(count-allocs,
-+[  --with(out)count-allocs  enable/disable per-type instance accounting], [
-+if test "$withval" != no
-+then 
-+  AC_DEFINE(COUNT_ALLOCS, 1,
-+    [Define to keep records of the number of instances of each type]) 
-+    AC_MSG_RESULT(yes)
-+else AC_MSG_RESULT(no)
-+fi],
-+[AC_MSG_RESULT(no)])
-+
-+AC_MSG_CHECKING(for --with-call-profile)
-+AC_ARG_WITH(call-profile,
-+[  --with(out)-call-profile  enable/disable statistics on function call invocation], [
-+if test "$withval" != no
-+then 
-+  AC_DEFINE(CALL_PROFILE, 1, 
-+    [Define to keep records on function call invocation]) 
-+    AC_MSG_RESULT(yes)
-+else AC_MSG_RESULT(no)
-+fi],
-+[AC_MSG_RESULT(no)])
-+
- # Check for Python-specific malloc support
- AC_MSG_CHECKING(for --with-pymalloc)
- AC_ARG_WITH(pymalloc,
-diff -up Python-2.6.5/pyconfig.h.in.more-configuration-flags Python-2.6.5/pyconfig.h.in
---- Python-2.6.5/pyconfig.h.in.more-configuration-flags        2010-05-24 18:51:45.677988086 -0400
-+++ Python-2.6.5/pyconfig.h.in 2010-05-24 19:00:44.163987730 -0400
-@@ -1019,6 +1019,12 @@
- /* Define to profile with the Pentium timestamp counter */
- #undef WITH_TSC
-+/* Define to keep records of the number of instances of each type */
-+#undef COUNT_ALLOCS
-+
-+/* Define to keep records on function call invocation */
-+#undef CALL_PROFILE
-+
- /* Define if you want pymalloc to be disabled when running under valgrind */
- #undef WITH_VALGRIND
diff --git a/python/patches/00114-statvfs-f_flag-constants.patch b/python/patches/00114-statvfs-f_flag-constants.patch
deleted file mode 100644 (file)
index 83e7b59..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up Python-2.7rc1/Modules/posixmodule.c.statvfs-f-flag-constants Python-2.7rc1/Modules/posixmodule.c
---- Python-2.7rc1/Modules/posixmodule.c.statvfs-f-flag-constants       2010-05-15 17:45:30.000000000 -0400
-+++ Python-2.7rc1/Modules/posixmodule.c        2010-06-07 22:54:16.162068624 -0400
-@@ -9174,6 +9174,43 @@ all_ins(PyObject *d)
- #endif
- #endif
-+    /* These came from statvfs.h */
-+#ifdef ST_RDONLY
-+    if (ins(d, "ST_RDONLY", (long)ST_RDONLY)) return -1;
-+#endif /* ST_RDONLY */
-+#ifdef ST_NOSUID
-+    if (ins(d, "ST_NOSUID", (long)ST_NOSUID)) return -1;
-+#endif /* ST_NOSUID */
-+    
-+    /* GNU extensions */
-+#ifdef ST_NODEV
-+    if (ins(d, "ST_NODEV", (long)ST_NODEV)) return -1;
-+#endif /* ST_NODEV */
-+#ifdef ST_NOEXEC
-+    if (ins(d, "ST_NOEXEC", (long)ST_NOEXEC)) return -1;
-+#endif /* ST_NOEXEC */
-+#ifdef ST_SYNCHRONOUS
-+    if (ins(d, "ST_SYNCHRONOUS", (long)ST_SYNCHRONOUS)) return -1;
-+#endif /* ST_SYNCHRONOUS */
-+#ifdef ST_MANDLOCK
-+    if (ins(d, "ST_MANDLOCK", (long)ST_MANDLOCK)) return -1;
-+#endif /* ST_MANDLOCK */
-+#ifdef ST_WRITE
-+    if (ins(d, "ST_WRITE", (long)ST_WRITE)) return -1;
-+#endif /* ST_WRITE */
-+#ifdef ST_APPEND
-+    if (ins(d, "ST_APPEND", (long)ST_APPEND)) return -1;
-+#endif /* ST_APPEND */
-+#ifdef ST_NOATIME
-+    if (ins(d, "ST_NOATIME", (long)ST_NOATIME)) return -1;
-+#endif /* ST_NOATIME */
-+#ifdef ST_NODIRATIME
-+    if (ins(d, "ST_NODIRATIME", (long)ST_NODIRATIME)) return -1;
-+#endif /* ST_NODIRATIME */
-+#ifdef ST_RELATIME
-+    if (ins(d, "ST_RELATIME", (long)ST_RELATIME)) return -1;
-+#endif /* ST_RELATIME */
-+    
- #if defined(PYOS_OS2)
-     if (insertvalues(d)) return -1;
- #endif
diff --git a/python/patches/00121-add-Modules-to-build-path.patch b/python/patches/00121-add-Modules-to-build-path.patch
deleted file mode 100644 (file)
index 6e3294d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- Python-2.7.5/Lib/site.py.orig      2013-05-16 12:47:55.000000000 +0200
-+++ Python-2.7.5/Lib/site.py   2013-05-16 12:56:20.089058109 +0200
-@@ -529,6 +529,10 @@ def main():
-     abs__file__()
-     known_paths = removeduppaths()
-+    from sysconfig import is_python_build
-+    if is_python_build():
-+        from _sysconfigdata import build_time_vars
-+        sys.path.append(os.path.join(build_time_vars['abs_builddir'], 'Modules'))
-     if ENABLE_USER_SITE is None:
-         ENABLE_USER_SITE = check_enableusersite()
-     known_paths = addusersitepackages(known_paths)
diff --git a/python/patches/00131-disable-tests-in-test_io.patch b/python/patches/00131-disable-tests-in-test_io.patch
deleted file mode 100644 (file)
index d81a2d0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io Python-2.7.2/Lib/test/test_io.py
---- Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io  2011-09-01 14:18:45.963304089 -0400
-+++ Python-2.7.2/Lib/test/test_io.py   2011-09-01 15:08:53.796098413 -0400
-@@ -2669,6 +2669,7 @@ class SignalsTest(unittest.TestCase):
-         self.check_interrupted_read_retry(lambda x: x,
-                                           mode="r")
-+    @unittest.skip('rhbz#732998')
-     @unittest.skipUnless(threading, 'Threading required for this test.')
-     def check_interrupted_write_retry(self, item, **fdopen_kwargs):
-         """Check that a buffered write, when it gets interrupted (either
diff --git a/python/patches/00132-add-rpmbuild-hooks-to-unittest.patch b/python/patches/00132-add-rpmbuild-hooks-to-unittest.patch
deleted file mode 100644 (file)
index e63395f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -up Python-2.7.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-2.7.2/Lib/unittest/case.py
---- Python-2.7.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest   2011-09-08 14:45:47.677169191 -0400
-+++ Python-2.7.2/Lib/unittest/case.py  2011-09-08 16:01:36.287858159 -0400
-@@ -1,6 +1,7 @@
- """Test case implementation"""
- import collections
-+import os
- import sys
- import functools
- import difflib
-@@ -94,6 +95,43 @@ def expectedFailure(func):
-     return wrapper
-+# Non-standard/downstream-only hooks for handling issues with specific test
-+# cases:
-+
-+def _skipInRpmBuild(reason):
-+    """
-+    Non-standard/downstream-only decorator for marking a specific unit test
-+    to be skipped when run within the %check of an rpmbuild.
-+
-+    Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
-+    the environment, and has no effect otherwise.
-+    """
-+    if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
-+        return skip(reason)
-+    else:
-+        return _id
-+
-+def _expectedFailureInRpmBuild(func):
-+    """
-+    Non-standard/downstream-only decorator for marking a specific unit test
-+    as expected to fail within the %check of an rpmbuild.
-+
-+    Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
-+    the environment, and has no effect otherwise.
-+    """
-+    @functools.wraps(func)
-+    def wrapper(*args, **kwargs):
-+        if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
-+            try:
-+                func(*args, **kwargs)
-+            except Exception:
-+                raise _ExpectedFailure(sys.exc_info())
-+            raise _UnexpectedSuccess
-+        else:
-+            # Call directly:
-+            func(*args, **kwargs)
-+    return wrapper
-+
- class _AssertRaisesContext(object):
-     """A context manager used to implement TestCase.assertRaises* methods."""
-diff -up Python-2.7.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-2.7.2/Lib/unittest/__init__.py
---- Python-2.7.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest       2011-09-08 14:59:39.534112310 -0400
-+++ Python-2.7.2/Lib/unittest/__init__.py      2011-09-08 15:07:09.191081562 -0400
-@@ -57,7 +57,8 @@ __unittest = True
- from .result import TestResult
- from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
--                   skipUnless, expectedFailure)
-+                   skipUnless, expectedFailure,
-+                   _skipInRpmBuild, _expectedFailureInRpmBuild)
- from .suite import BaseTestSuite, TestSuite
- from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
-                      findTestCases)
diff --git a/python/patches/00133-skip-test_dl.patch b/python/patches/00133-skip-test_dl.patch
deleted file mode 100644 (file)
index 04ad05b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_dl.py.skip-test_dl Python-2.7.2/Lib/test/test_dl.py
---- Python-2.7.2/Lib/test/test_dl.py.skip-test_dl      2011-09-08 15:18:40.529034289 -0400
-+++ Python-2.7.2/Lib/test/test_dl.py   2011-09-08 16:29:45.184742670 -0400
-@@ -13,6 +13,9 @@ sharedlibs = [
-     ('/usr/lib/libc.dylib', 'getpid'),
-     ]
-+# (also, "dl" is deprecated in favor of ctypes)
-+@unittest._skipInRpmBuild('fails on 64-bit builds: '
-+    'module dl requires sizeof(int) == sizeof(long) == sizeof(char*)')
- def test_main():
-     for s, func in sharedlibs:
-         try:
diff --git a/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch b/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
deleted file mode 100644 (file)
index 4d7626f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.6/Lib/test/test_file2k.py.stdin-test Python-2.7.6/Lib/test/test_file2k.py
---- Python-2.7.6/Lib/test/test_file2k.py.stdin-test    2013-11-10 08:36:40.000000000 +0100
-+++ Python-2.7.6/Lib/test/test_file2k.py       2014-01-29 14:28:01.029488055 +0100
-@@ -223,6 +223,7 @@ class OtherFileTests(unittest.TestCase):
-             else:
-                 f.close()
-+    @unittest._skipInRpmBuild('seems not to raise the exception when run in Koji')
-     def testStdinSeek(self):
-         if sys.platform == 'osf1V5':
-             # This causes the interpreter to exit on OSF1 v5.1.
diff --git a/python/patches/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch b/python/patches/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
deleted file mode 100644 (file)
index 7122a29..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py.mark-tests-that-fail-in-rpmbuild Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py
---- Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py.mark-tests-that-fail-in-rpmbuild        2012-04-09 19:07:29.000000000 -0400
-+++ Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py 2012-04-13 00:20:08.223819263 -0400
-@@ -24,6 +24,7 @@ setup(name='foo', version='0.1', py_modu
- """
-+@unittest._skipInRpmBuild("don't try to nest one rpm build inside another rpm build")
- class BuildRpmTestCase(support.TempdirManager,
-                        support.EnvironGuard,
-                        support.LoggingSilencer,
-diff -up Python-2.7.3/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild Python-2.7.3/Lib/distutils/tests/test_build_ext.py
diff --git a/python/patches/00138-fix-distutils-tests-in-debug-build.patch b/python/patches/00138-fix-distutils-tests-in-debug-build.patch
deleted file mode 100644 (file)
index 1fd1091..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -up Python-2.7.2/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild Python-2.7.2/Lib/distutils/tests/test_build_ext.py
---- Python-2.7.2/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild        2011-09-08 16:07:25.033834312 -0400
-+++ Python-2.7.2/Lib/distutils/tests/test_build_ext.py 2011-09-08 17:43:15.656441082 -0400
-@@ -330,6 +332,7 @@ class BuildExtTestCase(support.TempdirMa
-         self.assertEqual(lastdir, 'bar')
-     def test_ext_fullpath(self):
-+        debug_ext = sysconfig.get_config_var("DEBUG_EXT")
-         ext = sysconfig.get_config_vars()['SO']
-         dist = Distribution()
-         cmd = build_ext(dist)
-@@ -337,14 +340,14 @@ class BuildExtTestCase(support.TempdirMa
-         cmd.distribution.package_dir = {'': 'src'}
-         cmd.distribution.packages = ['lxml', 'lxml.html']
-         curdir = os.getcwd()
--        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-+        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + debug_ext + ext)
-         path = cmd.get_ext_fullpath('lxml.etree')
-         self.assertEqual(wanted, path)
-         # building lxml.etree not inplace
-         cmd.inplace = 0
-         cmd.build_lib = os.path.join(curdir, 'tmpdir')
--        wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
-+        wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + debug_ext + ext)
-         path = cmd.get_ext_fullpath('lxml.etree')
-         self.assertEqual(wanted, path)
-@@ -354,13 +357,13 @@ class BuildExtTestCase(support.TempdirMa
-         cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
-         path = cmd.get_ext_fullpath('twisted.runner.portmap')
-         wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
--                              'portmap' + ext)
-+                              'portmap' + debug_ext + ext)
-         self.assertEqual(wanted, path)
-         # building twisted.runner.portmap inplace
-         cmd.inplace = 1
-         path = cmd.get_ext_fullpath('twisted.runner.portmap')
--        wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
-+        wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + debug_ext + ext)
-         self.assertEqual(wanted, path)
-     def test_build_ext_inplace(self):
-@@ -373,8 +376,9 @@ class BuildExtTestCase(support.TempdirMa
-         cmd.distribution.package_dir = {'': 'src'}
-         cmd.distribution.packages = ['lxml', 'lxml.html']
-         curdir = os.getcwd()
-+        debug_ext = sysconfig.get_config_var("DEBUG_EXT")
-         ext = sysconfig.get_config_var("SO")
--        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-+        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + debug_ext + ext)
-         path = cmd.get_ext_fullpath('lxml.etree')
-         self.assertEqual(wanted, path)
-@@ -412,10 +416,11 @@ class BuildExtTestCase(support.TempdirMa
-         dist = Distribution({'name': 'UpdateManager'})
-         cmd = build_ext(dist)
-         cmd.ensure_finalized()
-+        debug_ext = sysconfig.get_config_var("DEBUG_EXT")
-         ext = sysconfig.get_config_var("SO")
-         ext_name = os.path.join('UpdateManager', 'fdsend')
-         ext_path = cmd.get_ext_fullpath(ext_name)
--        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-+        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + debug_ext + ext)
-         self.assertEqual(ext_path, wanted)
-     @unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
diff --git a/python/patches/00139-skip-test_float-known-failure-on-arm.patch b/python/patches/00139-skip-test_float-known-failure-on-arm.patch
deleted file mode 100644 (file)
index 9d0bfad..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm Python-2.7.2/Lib/test/test_float.py
---- Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm   2011-09-08 19:34:09.000986128 -0400
-+++ Python-2.7.2/Lib/test/test_float.py        2011-09-08 19:34:57.969982779 -0400
-@@ -1072,6 +1072,7 @@ class HexFloatTestCase(unittest.TestCase
-                     self.identical(got, expected)
-+    @unittest.skip('Known failure on ARM: http://bugs.python.org/issue8265')
-     def test_from_hex(self):
-         MIN = self.MIN;
-         MAX = self.MAX;
diff --git a/python/patches/00140-skip-test_ctypes-known-failure-on-sparc.patch b/python/patches/00140-skip-test_ctypes-known-failure-on-sparc.patch
deleted file mode 100644 (file)
index 95aa41e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/ctypes/test/test_callbacks.py.skip-test_ctypes-known-failure-on-sparc Python-2.7.2/Lib/ctypes/test/test_callbacks.py
---- Python-2.7.2/Lib/ctypes/test/test_callbacks.py.skip-test_ctypes-known-failure-on-sparc     2011-09-08 19:42:35.541951490 -0400
-+++ Python-2.7.2/Lib/ctypes/test/test_callbacks.py     2011-09-08 19:43:40.676947036 -0400
-@@ -67,6 +67,7 @@ class Callbacks(unittest.TestCase):
-         self.check_type(c_longlong, 42)
-         self.check_type(c_longlong, -42)
-+    @unittest.skip('Known failure on Sparc: http://bugs.python.org/issue8314')
-     def test_ulonglong(self):
-         # test some 64-bit values, with and without msb set.
-         self.check_type(c_ulonglong, 10955412242170339782)
diff --git a/python/patches/00142-skip-failing-pty-tests-in-rpmbuild.patch b/python/patches/00142-skip-failing-pty-tests-in-rpmbuild.patch
deleted file mode 100644 (file)
index 2f51165..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up Python-2.7.6/Lib/test/test_openpty.py.tty-fail Python-2.7.6/Lib/test/test_openpty.py
---- Python-2.7.6/Lib/test/test_openpty.py.tty-fail     2014-01-29 14:31:43.761343267 +0100
-+++ Python-2.7.6/Lib/test/test_openpty.py      2014-01-29 14:32:19.284090165 +0100
-@@ -8,6 +8,7 @@ if not hasattr(os, "openpty"):
- class OpenptyTest(unittest.TestCase):
-+    @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
-     def test(self):
-         master, slave = os.openpty()
-         self.addCleanup(os.close, master)
-diff -up Python-2.7.6/Lib/test/test_pty.py.tty-fail Python-2.7.6/Lib/test/test_pty.py
---- Python-2.7.6/Lib/test/test_pty.py.tty-fail 2013-11-10 08:36:40.000000000 +0100
-+++ Python-2.7.6/Lib/test/test_pty.py  2014-01-29 14:31:43.761343267 +0100
-@@ -111,6 +111,7 @@ class PtyTest(unittest.TestCase):
-         os.close(master_fd)
-+    @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
-     def test_fork(self):
-         debug("calling pty.fork()")
-         pid, master_fd = pty.fork()
diff --git a/python/patches/00143-tsc-on-ppc.patch b/python/patches/00143-tsc-on-ppc.patch
deleted file mode 100644 (file)
index 447c6e3..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -up Python-2.7.2/Python/ceval.c.tsc-on-ppc Python-2.7.2/Python/ceval.c
---- Python-2.7.2/Python/ceval.c.tsc-on-ppc     2011-08-23 14:59:48.051300849 -0400
-+++ Python-2.7.2/Python/ceval.c        2011-08-23 15:33:25.412162902 -0400
-@@ -37,24 +37,42 @@ typedef unsigned long long uint64;
- */
- #if defined(__ppc__) || defined (__powerpc__)
--#define READ_TIMESTAMP(var) ppc_getcounter(&var)
-+#if defined( __powerpc64__) || defined(__LP64__)
-+/* 64-bit PowerPC */
-+#define READ_TIMESTAMP(var) ppc64_getcounter(&var)
-+static void
-+ppc64_getcounter(uint64 *v)
-+{
-+    /* On 64-bit PowerPC we can read the 64-bit timebase directly into a
-+       64-bit register */
-+    uint64 timebase;
-+#ifdef _ARCH_PWR4
-+    asm volatile ("mfspr %0,268" : "=r" (timebase));
-+#else
-+    asm volatile ("mftb %0" : "=r" (timebase));
-+#endif
-+    *v = timebase;
-+}
-+
-+#else
-+/* 32-bit PowerPC */
-+#define READ_TIMESTAMP(var) ppc32_getcounter(&var)
- static void
--ppc_getcounter(uint64 *v)
-+ppc32_getcounter(uint64 *v)
- {
--    register unsigned long tbu, tb, tbu2;
-+    union { long long ll; long ii[2]; } u;
-+    long tmp;
-   loop:
--    asm volatile ("mftbu %0" : "=r" (tbu) );
--    asm volatile ("mftb  %0" : "=r" (tb)  );
--    asm volatile ("mftbu %0" : "=r" (tbu2));
--    if (__builtin_expect(tbu != tbu2, 0)) goto loop;
--
--    /* The slightly peculiar way of writing the next lines is
--       compiled better by GCC than any other way I tried. */
--    ((long*)(v))[0] = tbu;
--    ((long*)(v))[1] = tb;
-+    asm volatile ("mftbu %0" : "=r" (u.ii[0]) );
-+    asm volatile ("mftb  %0" : "=r" (u.ii[1]) );
-+    asm volatile ("mftbu %0" : "=r" (tmp));
-+    if (__builtin_expect(u.ii[0] != tmp, 0)) goto loop;
-+
-+    *v = u.ll;
- }
-+#endif /* powerpc 32/64 bit */
- #elif defined(__i386__)
diff --git a/python/patches/00147-add-debug-malloc-stats.patch b/python/patches/00147-add-debug-malloc-stats.patch
deleted file mode 100644 (file)
index 0d783f5..0000000
+++ /dev/null
@@ -1,711 +0,0 @@
-diff -up Python-2.7.2/Include/dictobject.h.add-debug-malloc-stats Python-2.7.2/Include/dictobject.h
---- Python-2.7.2/Include/dictobject.h.add-debug-malloc-stats   2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/dictobject.h  2011-09-16 19:03:25.105821625 -0400
-@@ -150,6 +150,8 @@ PyAPI_FUNC(PyObject *) PyDict_GetItemStr
- PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
- PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
-+PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/floatobject.h.add-debug-malloc-stats Python-2.7.2/Include/floatobject.h
---- Python-2.7.2/Include/floatobject.h.add-debug-malloc-stats  2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/floatobject.h 2011-09-16 19:03:25.106821625 -0400
-@@ -132,6 +132,7 @@ PyAPI_FUNC(PyObject *) _PyFloat_FormatAd
-    failure.  Used in builtin_round in bltinmodule.c. */
- PyAPI_FUNC(PyObject *) _Py_double_round(double x, int ndigits);
-+PyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out);
- #ifdef __cplusplus
-diff -up Python-2.7.2/Include/frameobject.h.add-debug-malloc-stats Python-2.7.2/Include/frameobject.h
---- Python-2.7.2/Include/frameobject.h.add-debug-malloc-stats  2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/frameobject.h 2011-09-16 19:03:25.107821625 -0400
-@@ -80,6 +80,8 @@ PyAPI_FUNC(void) PyFrame_FastToLocals(Py
- PyAPI_FUNC(int) PyFrame_ClearFreeList(void);
-+PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
-+
- /* Return the line of code the frame is currently executing. */
- PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
-diff -up Python-2.7.2/Include/intobject.h.add-debug-malloc-stats Python-2.7.2/Include/intobject.h
---- Python-2.7.2/Include/intobject.h.add-debug-malloc-stats    2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/intobject.h   2011-09-16 19:03:25.107821625 -0400
-@@ -74,6 +74,8 @@ PyAPI_FUNC(PyObject *) _PyInt_FormatAdva
-                                            char *format_spec,
-                                            Py_ssize_t format_spec_len);
-+PyAPI_FUNC(void) _PyInt_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/listobject.h.add-debug-malloc-stats Python-2.7.2/Include/listobject.h
---- Python-2.7.2/Include/listobject.h.add-debug-malloc-stats   2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/listobject.h  2011-09-16 19:03:25.107821625 -0400
-@@ -62,6 +62,8 @@ PyAPI_FUNC(PyObject *) _PyList_Extend(Py
- #define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v))
- #define PyList_GET_SIZE(op)    Py_SIZE(op)
-+PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/methodobject.h.add-debug-malloc-stats Python-2.7.2/Include/methodobject.h
---- Python-2.7.2/Include/methodobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/methodobject.h        2011-09-16 19:03:25.108821625 -0400
-@@ -87,6 +87,10 @@ typedef struct {
- PyAPI_FUNC(int) PyCFunction_ClearFreeList(void);
-+PyAPI_FUNC(void) _PyCFunction_DebugMallocStats(FILE *out);
-+PyAPI_FUNC(void) _PyMethod_DebugMallocStats(FILE *out);
-+
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/object.h.add-debug-malloc-stats Python-2.7.2/Include/object.h
---- Python-2.7.2/Include/object.h.add-debug-malloc-stats       2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/object.h      2011-09-16 19:03:25.108821625 -0400
-@@ -980,6 +980,13 @@ PyAPI_DATA(PyObject *) _PyTrash_delete_l
-             _PyTrash_thread_deposit_object((PyObject*)op); \
-     } while (0);
-+PyAPI_FUNC(void)
-+_PyDebugAllocatorStats(FILE *out, const char *block_name, int num_blocks,
-+                     size_t sizeof_block);
-+
-+PyAPI_FUNC(void)
-+_PyObject_DebugTypeStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/objimpl.h.add-debug-malloc-stats Python-2.7.2/Include/objimpl.h
---- Python-2.7.2/Include/objimpl.h.add-debug-malloc-stats      2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/objimpl.h     2011-09-16 19:03:25.108821625 -0400
-@@ -101,13 +101,13 @@ PyAPI_FUNC(void) PyObject_Free(void *);
- /* Macros */
- #ifdef WITH_PYMALLOC
-+PyAPI_FUNC(void) _PyObject_DebugMallocStats(FILE *out);
- #ifdef PYMALLOC_DEBUG   /* WITH_PYMALLOC && PYMALLOC_DEBUG */
- PyAPI_FUNC(void *) _PyObject_DebugMalloc(size_t nbytes);
- PyAPI_FUNC(void *) _PyObject_DebugRealloc(void *p, size_t nbytes);
- PyAPI_FUNC(void) _PyObject_DebugFree(void *p);
- PyAPI_FUNC(void) _PyObject_DebugDumpAddress(const void *p);
- PyAPI_FUNC(void) _PyObject_DebugCheckAddress(const void *p);
--PyAPI_FUNC(void) _PyObject_DebugMallocStats(void);
- PyAPI_FUNC(void *) _PyObject_DebugMallocApi(char api, size_t nbytes);
- PyAPI_FUNC(void *) _PyObject_DebugReallocApi(char api, void *p, size_t nbytes);
- PyAPI_FUNC(void) _PyObject_DebugFreeApi(char api, void *p);
-diff -up Python-2.7.2/Include/stringobject.h.add-debug-malloc-stats Python-2.7.2/Include/stringobject.h
---- Python-2.7.2/Include/stringobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/stringobject.h        2011-09-16 19:03:25.109821625 -0400
-@@ -204,6 +204,8 @@ PyAPI_FUNC(PyObject *) _PyBytes_FormatAd
-                                              char *format_spec,
-                                              Py_ssize_t format_spec_len);
-+PyAPI_FUNC(void) _PyString_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/unicodeobject.h.add-debug-malloc-stats Python-2.7.2/Include/unicodeobject.h
---- Python-2.7.2/Include/unicodeobject.h.add-debug-malloc-stats        2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/unicodeobject.h       2011-09-16 19:03:25.109821625 -0400
-@@ -1406,6 +1406,8 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha(
-     Py_UNICODE ch       /* Unicode character */
-     );
-+PyAPI_FUNC(void) _PyUnicode_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Lib/test/test_sys.py.add-debug-malloc-stats Python-2.7.2/Lib/test/test_sys.py
---- Python-2.7.2/Lib/test/test_sys.py.add-debug-malloc-stats   2011-09-16 19:03:25.048821626 -0400
-+++ Python-2.7.2/Lib/test/test_sys.py  2011-09-16 19:03:25.110821625 -0400
-@@ -473,6 +473,32 @@ class SysModuleTest(unittest.TestCase):
-         p.wait()
-         self.assertIn(executable, ["''", repr(sys.executable)])
-+    def test_debugmallocstats(self):
-+        # Test sys._debugmallocstats()
-+
-+        import subprocess
-+
-+        # Verify the default of writing to stderr:
-+        p = subprocess.Popen([sys.executable,
-+                              '-c', 'import sys; sys._debugmallocstats()'],
-+                             stderr=subprocess.PIPE)
-+        out, err = p.communicate()
-+        p.wait()
-+        self.assertIn("arenas allocated current", err)
-+                                     
-+        # Verify that we can redirect the output to a file (not a file-like
-+        # object, though):
-+        with open('mallocstats.txt', 'w') as out:
-+            sys._debugmallocstats(out)
-+        result = open('mallocstats.txt').read()
-+        self.assertIn("arenas allocated current", result)
-+        os.unlink('mallocstats.txt')
-+
-+        # Verify that the destination must be a file:
-+        with self.assertRaises(TypeError):
-+            sys._debugmallocstats(42)
-+        
-+
- @test.test_support.cpython_only
- class SizeofTest(unittest.TestCase):
-
-diff -up Python-2.7.2/Objects/classobject.c.add-debug-malloc-stats Python-2.7.2/Objects/classobject.c
---- Python-2.7.2/Objects/classobject.c.add-debug-malloc-stats  2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/classobject.c 2011-09-16 19:03:25.110821625 -0400
-@@ -2670,3 +2670,12 @@ PyMethod_Fini(void)
- {
-     (void)PyMethod_ClearFreeList();
- }
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyMethod_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PyMethodObject",
-+                           numfree, sizeof(PyMethodObject));
-+}
-diff -up Python-2.7.2/Objects/dictobject.c.add-debug-malloc-stats Python-2.7.2/Objects/dictobject.c
---- Python-2.7.2/Objects/dictobject.c.add-debug-malloc-stats   2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/dictobject.c  2011-09-16 19:03:25.111821625 -0400
-@@ -225,6 +225,15 @@ show_track(void)
- static PyDictObject *free_list[PyDict_MAXFREELIST];
- static int numfree = 0;
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyDict_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PyDictObject", numfree, sizeof(PyDictObject));
-+}
-+
-+
- void
- PyDict_Fini(void)
- {
-diff -up Python-2.7.2/Objects/floatobject.c.add-debug-malloc-stats Python-2.7.2/Objects/floatobject.c
---- Python-2.7.2/Objects/floatobject.c.add-debug-malloc-stats  2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/floatobject.c 2011-09-16 19:03:25.111821625 -0400
-@@ -35,6 +35,22 @@ typedef struct _floatblock PyFloatBlock;
- static PyFloatBlock *block_list = NULL;
- static PyFloatObject *free_list = NULL;
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyFloat_DebugMallocStats(FILE *out)
-+{
-+  int num_blocks = 0;
-+  PyFloatBlock *block;
-+
-+  /* Walk the block list, counting */
-+  for (block = block_list; block ; block = block->next) {
-+      num_blocks++;
-+  }
-+
-+  _PyDebugAllocatorStats(out,
-+                         "PyFloatBlock", num_blocks, sizeof(PyFloatBlock));
-+}
-+
- static PyFloatObject *
- fill_free_list(void)
- {
-diff -up Python-2.7.2/Objects/frameobject.c.add-debug-malloc-stats Python-2.7.2/Objects/frameobject.c
---- Python-2.7.2/Objects/frameobject.c.add-debug-malloc-stats  2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/frameobject.c 2011-09-16 19:03:25.112821625 -0400
-@@ -980,3 +980,13 @@ PyFrame_Fini(void)
-     Py_XDECREF(builtin_object);
-     builtin_object = NULL;
- }
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyFrame_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PyFrameObject",
-+                           numfree, sizeof(PyFrameObject));
-+}
-+
-diff -up Python-2.7.2/Objects/intobject.c.add-debug-malloc-stats Python-2.7.2/Objects/intobject.c
---- Python-2.7.2/Objects/intobject.c.add-debug-malloc-stats    2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/intobject.c   2011-09-16 19:03:25.112821625 -0400
-@@ -44,6 +44,23 @@ typedef struct _intblock PyIntBlock;
- static PyIntBlock *block_list = NULL;
- static PyIntObject *free_list = NULL;
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyInt_DebugMallocStats(FILE *out)
-+{
-+    int num_blocks = 0;
-+    PyIntBlock *block;
-+
-+    /* Walk the block list, counting */
-+    for (block = block_list; block ; block = block->next) {
-+        num_blocks++;
-+    }
-+
-+    _PyDebugAllocatorStats(out,
-+                           "PyIntBlock", num_blocks, sizeof(PyIntBlock));
-+}
-+
- static PyIntObject *
- fill_free_list(void)
- {
-diff -up Python-2.7.2/Objects/listobject.c.add-debug-malloc-stats Python-2.7.2/Objects/listobject.c
---- Python-2.7.2/Objects/listobject.c.add-debug-malloc-stats   2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/listobject.c  2011-09-16 19:03:25.113821625 -0400
-@@ -109,6 +109,15 @@ PyList_Fini(void)
-     }
- }
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyList_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PyListObject",
-+                           numfree, sizeof(PyListObject));
-+}
-+
- PyObject *
- PyList_New(Py_ssize_t size)
- {
-diff -up Python-2.7.2/Objects/methodobject.c.add-debug-malloc-stats Python-2.7.2/Objects/methodobject.c
---- Python-2.7.2/Objects/methodobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/methodobject.c        2011-09-16 19:03:25.113821625 -0400
-@@ -412,6 +412,15 @@ PyCFunction_Fini(void)
-     (void)PyCFunction_ClearFreeList();
- }
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyCFunction_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PyCFunction",
-+                           numfree, sizeof(PyCFunction));
-+}
-+
- /* PyCFunction_New() is now just a macro that calls PyCFunction_NewEx(),
-    but it's part of the API so we need to keep a function around that
-    existing C extensions can call.
-diff -up Python-2.7.2/Objects/object.c.add-debug-malloc-stats Python-2.7.2/Objects/object.c
---- Python-2.7.2/Objects/object.c.add-debug-malloc-stats       2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/object.c      2011-09-16 19:04:46.463820849 -0400
-@@ -2334,6 +2334,23 @@ PyMem_Free(void *p)
-     PyMem_FREE(p);
- }
-+void
-+_PyObject_DebugTypeStats(FILE *out)
-+{
-+    _PyString_DebugMallocStats(out);
-+    _PyCFunction_DebugMallocStats(out);
-+    _PyDict_DebugMallocStats(out);
-+    _PyFloat_DebugMallocStats(out);
-+    _PyFrame_DebugMallocStats(out);
-+    _PyInt_DebugMallocStats(out);
-+    _PyList_DebugMallocStats(out);
-+    _PyMethod_DebugMallocStats(out);
-+    _PySet_DebugMallocStats(out);
-+    _PyTuple_DebugMallocStats(out);
-+#if Py_USING_UNICODE
-+    _PyUnicode_DebugMallocStats(out);
-+#endif
-+}
- /* These methods are used to control infinite recursion in repr, str, print,
-    etc.  Container objects that may recursively contain themselves,
-diff -up Python-2.7.2/Objects/obmalloc.c.add-debug-malloc-stats Python-2.7.2/Objects/obmalloc.c
---- Python-2.7.2/Objects/obmalloc.c.add-debug-malloc-stats     2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/obmalloc.c    2011-09-16 19:03:25.114821625 -0400
-@@ -508,12 +508,10 @@ static struct arena_object* usable_arena
- /* Number of arenas allocated that haven't been free()'d. */
- static size_t narenas_currently_allocated = 0;
--#ifdef PYMALLOC_DEBUG
- /* Total number of times malloc() called to allocate an arena. */
- static size_t ntimes_arena_allocated = 0;
- /* High water mark (max value ever seen) for narenas_currently_allocated. */
- static size_t narenas_highwater = 0;
--#endif
- /* Allocate a new arena.  If we run out of memory, return NULL.  Else
-  * allocate a new arena, and return the address of an arena_object
-@@ -528,7 +526,7 @@ new_arena(void)
- #ifdef PYMALLOC_DEBUG
-     if (Py_GETENV("PYTHONMALLOCSTATS"))
--        _PyObject_DebugMallocStats();
-+        _PyObject_DebugMallocStats(stderr);
- #endif
-     if (unused_arena_objects == NULL) {
-         uint i;
-@@ -588,11 +586,9 @@ new_arena(void)
-     arenaobj->address = (uptr)address;
-     ++narenas_currently_allocated;
--#ifdef PYMALLOC_DEBUG
-     ++ntimes_arena_allocated;
-     if (narenas_currently_allocated > narenas_highwater)
-         narenas_highwater = narenas_currently_allocated;
--#endif
-     arenaobj->freepools = NULL;
-     /* pool_address <- first pool-aligned address in the arena
-        nfreepools <- number of whole pools that fit after alignment */
-@@ -1694,17 +1690,19 @@ _PyObject_DebugDumpAddress(const void *p
-     }
- }
-+#endif  /* PYMALLOC_DEBUG */
-+
- static size_t
--printone(const char* msg, size_t value)
-+printone(FILE *out, const char* msg, size_t value)
- {
-     int i, k;
-     char buf[100];
-     size_t origvalue = value;
--    fputs(msg, stderr);
-+    fputs(msg, out);
-     for (i = (int)strlen(msg); i < 35; ++i)
--        fputc(' ', stderr);
--    fputc('=', stderr);
-+        fputc(' ', out);
-+    fputc('=', out);
-     /* Write the value with commas. */
-     i = 22;
-@@ -1725,17 +1723,32 @@ printone(const char* msg, size_t value)
-     while (i >= 0)
-         buf[i--] = ' ';
--    fputs(buf, stderr);
-+    fputs(buf, out);
-     return origvalue;
- }
--/* Print summary info to stderr about the state of pymalloc's structures.
-+void
-+_PyDebugAllocatorStats(FILE *out,
-+                       const char *block_name, int num_blocks, size_t sizeof_block)
-+{
-+       char buf1[128];
-+       char buf2[128];
-+       PyOS_snprintf(buf1, sizeof(buf1),
-+                     "%d %ss * %zd bytes each",
-+                     num_blocks, block_name, sizeof_block);
-+       PyOS_snprintf(buf2, sizeof(buf2),
-+                     "%48s ", buf1);
-+      (void)printone(out, buf2, num_blocks * sizeof_block);
-+}
-+
-+
-+/* Print summary info to "out" about the state of pymalloc's structures.
-  * In Py_DEBUG mode, also perform some expensive internal consistency
-  * checks.
-  */
- void
--_PyObject_DebugMallocStats(void)
-+_PyObject_DebugMallocStats(FILE *out)
- {
-     uint i;
-     const uint numclasses = SMALL_REQUEST_THRESHOLD >> ALIGNMENT_SHIFT;
-@@ -1764,7 +1777,7 @@ _PyObject_DebugMallocStats(void)
-     size_t total;
-     char buf[128];
--    fprintf(stderr, "Small block threshold = %d, in %u size classes.\n",
-+    fprintf(out, "Small block threshold = %d, in %u size classes.\n",
-             SMALL_REQUEST_THRESHOLD, numclasses);
-     for (i = 0; i < numclasses; ++i)
-@@ -1818,10 +1831,10 @@ _PyObject_DebugMallocStats(void)
-     }
-     assert(narenas == narenas_currently_allocated);
--    fputc('\n', stderr);
-+    fputc('\n', out);
-     fputs("class   size   num pools   blocks in use  avail blocks\n"
-           "-----   ----   ---------   -------------  ------------\n",
--          stderr);
-+          out);
-     for (i = 0; i < numclasses; ++i) {
-         size_t p = numpools[i];
-@@ -1832,7 +1845,7 @@ _PyObject_DebugMallocStats(void)
-             assert(b == 0 && f == 0);
-             continue;
-         }
--        fprintf(stderr, "%5u %6u "
-+        fprintf(out, "%5u %6u "
-                         "%11" PY_FORMAT_SIZE_T "u "
-                         "%15" PY_FORMAT_SIZE_T "u "
-                         "%13" PY_FORMAT_SIZE_T "u\n",
-@@ -1842,36 +1855,35 @@ _PyObject_DebugMallocStats(void)
-         pool_header_bytes += p * POOL_OVERHEAD;
-         quantization += p * ((POOL_SIZE - POOL_OVERHEAD) % size);
-     }
--    fputc('\n', stderr);
--    (void)printone("# times object malloc called", serialno);
--
--    (void)printone("# arenas allocated total", ntimes_arena_allocated);
--    (void)printone("# arenas reclaimed", ntimes_arena_allocated - narenas);
--    (void)printone("# arenas highwater mark", narenas_highwater);
--    (void)printone("# arenas allocated current", narenas);
-+    fputc('\n', out);
-+#ifdef PYMALLOC_DEBUG
-+    (void)printone(out, "# times object malloc called", serialno);
-+#endif
-+    (void)printone(out, "# arenas allocated total", ntimes_arena_allocated);
-+    (void)printone(out, "# arenas reclaimed", ntimes_arena_allocated - narenas);
-+    (void)printone(out, "# arenas highwater mark", narenas_highwater);
-+    (void)printone(out, "# arenas allocated current", narenas);
-     PyOS_snprintf(buf, sizeof(buf),
-         "%" PY_FORMAT_SIZE_T "u arenas * %d bytes/arena",
-         narenas, ARENA_SIZE);
--    (void)printone(buf, narenas * ARENA_SIZE);
-+    (void)printone(out, buf, narenas * ARENA_SIZE);
--    fputc('\n', stderr);
-+    fputc('\n', out);
--    total = printone("# bytes in allocated blocks", allocated_bytes);
--    total += printone("# bytes in available blocks", available_bytes);
-+    total = printone(out, "# bytes in allocated blocks", allocated_bytes);
-+    total += printone(out, "# bytes in available blocks", available_bytes);
-     PyOS_snprintf(buf, sizeof(buf),
-         "%u unused pools * %d bytes", numfreepools, POOL_SIZE);
--    total += printone(buf, (size_t)numfreepools * POOL_SIZE);
-+    total += printone(out, buf, (size_t)numfreepools * POOL_SIZE);
--    total += printone("# bytes lost to pool headers", pool_header_bytes);
--    total += printone("# bytes lost to quantization", quantization);
--    total += printone("# bytes lost to arena alignment", arena_alignment);
--    (void)printone("Total", total);
-+    total += printone(out, "# bytes lost to pool headers", pool_header_bytes);
-+    total += printone(out, "# bytes lost to quantization", quantization);
-+    total += printone(out, "# bytes lost to arena alignment", arena_alignment);
-+    (void)printone(out, "Total", total);
- }
--#endif  /* PYMALLOC_DEBUG */
--
- #ifdef Py_USING_MEMORY_DEBUGGER
- /* Make this function last so gcc won't inline it since the definition is
-  * after the reference.
-diff -up Python-2.7.2/Objects/setobject.c.add-debug-malloc-stats Python-2.7.2/Objects/setobject.c
---- Python-2.7.2/Objects/setobject.c.add-debug-malloc-stats    2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/setobject.c   2011-09-16 19:03:25.115821625 -0400
-@@ -1088,6 +1088,16 @@ PySet_Fini(void)
-     Py_CLEAR(emptyfrozenset);
- }
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PySet_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out,
-+                           "free PySetObject",
-+                           numfree, sizeof(PySetObject));
-+}
-+
-+
- static PyObject *
- set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
- {
-diff -up Python-2.7.2/Objects/stringobject.c.add-debug-malloc-stats Python-2.7.2/Objects/stringobject.c
---- Python-2.7.2/Objects/stringobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/stringobject.c        2011-09-16 19:03:25.116821625 -0400
-@@ -4822,3 +4822,43 @@ void _Py_ReleaseInternedStrings(void)
-     PyDict_Clear(interned);
-     Py_CLEAR(interned);
- }
-+
-+void _PyString_DebugMallocStats(FILE *out)
-+{
-+    ssize_t i;
-+    int num_immortal = 0, num_mortal = 0;
-+    ssize_t immortal_size = 0, mortal_size = 0;
-+
-+    if (interned == NULL || !PyDict_Check(interned))
-+        return;
-+
-+    for (i = 0; i <= ((PyDictObject*)interned)->ma_mask; i++) {
-+        PyDictEntry *ep = ((PyDictObject*)interned)->ma_table + i;
-+        PyObject *pvalue = ep->me_value;
-+        if (pvalue != NULL) {
-+            PyStringObject *s = (PyStringObject *)ep->me_key;
-+
-+            switch (s->ob_sstate) {
-+            case SSTATE_NOT_INTERNED:
-+                /* XXX Shouldn't happen */
-+                break;
-+            case SSTATE_INTERNED_IMMORTAL:
-+                num_immortal ++;
-+                immortal_size += s->ob_size;
-+                break;
-+            case SSTATE_INTERNED_MORTAL:
-+                num_mortal ++;
-+                mortal_size += s->ob_size;
-+                break;
-+            default:
-+                Py_FatalError("Inconsistent interned string state.");
-+            }
-+        }
-+    }
-+
-+    fprintf(out, "%d mortal interned strings\n", num_mortal);
-+    fprintf(out, "%d immortal interned strings\n", num_immortal);
-+    fprintf(out, "total size of all interned strings: "
-+            "%zi/%zi "
-+            "mortal/immortal\n", mortal_size, immortal_size);
-+}
-diff -up Python-2.7.2/Objects/tupleobject.c.add-debug-malloc-stats Python-2.7.2/Objects/tupleobject.c
---- Python-2.7.2/Objects/tupleobject.c.add-debug-malloc-stats  2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/tupleobject.c 2011-09-16 19:03:25.116821625 -0400
-@@ -44,6 +44,22 @@ show_track(void)
- }
- #endif
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyTuple_DebugMallocStats(FILE *out)
-+{
-+#if PyTuple_MAXSAVESIZE > 0
-+    int i;
-+    char buf[128];
-+    for (i = 1; i < PyTuple_MAXSAVESIZE; i++) {
-+        PyOS_snprintf(buf, sizeof(buf),
-+                      "free %d-sized PyTupleObject", i);
-+        _PyDebugAllocatorStats(out,
-+                               buf,
-+                               numfree[i], _PyObject_VAR_SIZE(&PyTuple_Type, i));
-+    }
-+#endif
-+}
- PyObject *
- PyTuple_New(register Py_ssize_t size)
-diff -up Python-2.7.2/Objects/unicodeobject.c.add-debug-malloc-stats Python-2.7.2/Objects/unicodeobject.c
---- Python-2.7.2/Objects/unicodeobject.c.add-debug-malloc-stats        2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/unicodeobject.c       2011-09-16 19:03:25.118821625 -0400
-@@ -8883,6 +8883,12 @@ _PyUnicode_Fini(void)
-     (void)PyUnicode_ClearFreeList();
- }
-+void _PyUnicode_DebugMallocStats(FILE *out)
-+{
-+    _PyDebugAllocatorStats(out, "free PyUnicodeObject", numfree,
-+                           sizeof(PyUnicodeObject));
-+}
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Python/pythonrun.c.add-debug-malloc-stats Python-2.7.2/Python/pythonrun.c
---- Python-2.7.2/Python/pythonrun.c.add-debug-malloc-stats     2011-09-16 19:03:25.025821626 -0400
-+++ Python-2.7.2/Python/pythonrun.c    2011-09-16 19:03:25.118821625 -0400
-@@ -549,7 +549,7 @@ Py_Finalize(void)
- #endif /* Py_TRACE_REFS */
- #ifdef PYMALLOC_DEBUG
-     if (Py_GETENV("PYTHONMALLOCSTATS"))
--        _PyObject_DebugMallocStats();
-+        _PyObject_DebugMallocStats(stderr);
- #endif
-     call_ll_exitfuncs();
-diff -up Python-2.7.2/Python/sysmodule.c.add-debug-malloc-stats Python-2.7.2/Python/sysmodule.c
---- Python-2.7.2/Python/sysmodule.c.add-debug-malloc-stats     2011-09-16 19:03:25.007821626 -0400
-+++ Python-2.7.2/Python/sysmodule.c    2011-09-16 19:03:25.119821625 -0400
-@@ -872,6 +872,57 @@ a 11-tuple where the entries in the tupl
- extern "C" {
- #endif
-+static PyObject *
-+sys_debugmallocstats(PyObject *self, PyObject *args)
-+{
-+    PyObject *file = NULL;
-+    FILE *fp;
-+
-+    if (!PyArg_ParseTuple(args, "|O!",
-+                          &PyFile_Type, &file)) {
-+      return NULL;
-+    }
-+    if (!file) {
-+        /* Default to sys.stderr: */
-+      file = PySys_GetObject("stderr");
-+      if (!file) {
-+          PyErr_SetString(PyExc_ValueError, "sys.stderr not set");
-+          return NULL;
-+      }
-+      if (!PyFile_Check(file)) {
-+          PyErr_SetString(PyExc_TypeError, "sys.stderr is not a file");
-+          return NULL;
-+      }
-+    }
-+
-+    Py_INCREF(file);
-+    /* OK, we now own a ref on non-NULL "file" */
-+
-+    fp = PyFile_AsFile(file);
-+    if (!fp) {
-+        PyErr_SetString(PyExc_ValueError, "file is closed");
-+        Py_DECREF(file);
-+        return NULL;  
-+    }
-+
-+    _PyObject_DebugMallocStats(fp);
-+    fputc('\n', fp);
-+    _PyObject_DebugTypeStats(fp);
-+
-+    Py_DECREF(file);
-+
-+    Py_RETURN_NONE;
-+}
-+PyDoc_STRVAR(debugmallocstats_doc,
-+"_debugmallocstats([file])\n\
-+\n\
-+Print summary info to the given file (or sys.stderr) about the state of\n\
-+pymalloc's structures.\n\
-+\n\
-+In Py_DEBUG mode, also perform some expensive internal consistency\n\
-+checks.\n\
-+");
-+
- #ifdef Py_TRACE_REFS
- /* Defined in objects.c because it uses static globals if that file */
- extern PyObject *_Py_GetObjects(PyObject *, PyObject *);
-@@ -970,6 +1021,8 @@ static PyMethodDef sys_methods[] = {
-     {"settrace",        sys_settrace, METH_O, settrace_doc},
-     {"gettrace",        sys_gettrace, METH_NOARGS, gettrace_doc},
-     {"call_tracing", sys_call_tracing, METH_VARARGS, call_tracing_doc},
-+    {"_debugmallocstats", sys_debugmallocstats, METH_VARARGS,
-+     debugmallocstats_doc},
-     {NULL,              NULL}           /* sentinel */
- };
diff --git a/python/patches/00155-avoid-ctypes-thunks.patch b/python/patches/00155-avoid-ctypes-thunks.patch
deleted file mode 100644 (file)
index 92dd668..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up Python-2.7.3/Lib/ctypes/__init__.py.rhbz814391 Python-2.7.3/Lib/ctypes/__init__.py
---- Python-2.7.3/Lib/ctypes/__init__.py.rhbz814391     2012-04-20 14:51:19.390990244 -0400
-+++ Python-2.7.3/Lib/ctypes/__init__.py        2012-04-20 14:51:45.141668316 -0400
-@@ -272,11 +272,6 @@ def _reset_cache():
-     # _SimpleCData.c_char_p_from_param
-     POINTER(c_char).from_param = c_char_p.from_param
-     _pointer_type_cache[None] = c_void_p
--    # XXX for whatever reasons, creating the first instance of a callback
--    # function is needed for the unittests on Win64 to succeed.  This MAY
--    # be a compiler bug, since the problem occurs only when _ctypes is
--    # compiled with the MS SDK compiler.  Or an uninitialized variable?
--    CFUNCTYPE(c_int)(lambda: None)
- try:
-     from _ctypes import set_conversion_mode
diff --git a/python/patches/00156-gdb-autoload-safepath.patch b/python/patches/00156-gdb-autoload-safepath.patch
deleted file mode 100644 (file)
index a16fe8d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -up Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath Python-2.7.3/Lib/test/test_gdb.py
---- Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath    2012-04-30 15:53:57.254045220 -0400
-+++ Python-2.7.3/Lib/test/test_gdb.py  2012-04-30 16:19:19.569941124 -0400
-@@ -54,6 +54,19 @@ def gdb_has_frame_select():
- HAS_PYUP_PYDOWN = gdb_has_frame_select()
-+def gdb_has_autoload_safepath():
-+    # Recent GDBs will only auto-load scripts from certain safe
-+    # locations, so we will need to turn off this protection.
-+    # However, if the GDB doesn't have it, then the following
-+    # command will generate noise on stderr (rhbz#817072):
-+    cmd = "--eval-command=set auto-load safe-path /"
-+    p = subprocess.Popen(["gdb", "--batch", cmd],
-+                         stderr=subprocess.PIPE)
-+    _, stderr = p.communicate()
-+    return '"on" or "off" expected.' not in stderr
-+    
-+HAS_AUTOLOAD_SAFEPATH = gdb_has_autoload_safepath()
-+
- class DebuggerTests(unittest.TestCase):
-     """Test that the debugger can debug Python."""
-diff -up Python-2.7.10/Lib/test/test_gdb.py.ms Python-2.7.10/Lib/test/test_gdb.py
---- Python-2.7.10/Lib/test/test_gdb.py.ms      2015-05-25 17:00:25.028462615 +0200
-+++ Python-2.7.10/Lib/test/test_gdb.py 2015-05-25 17:01:53.166359822 +0200
-@@ -153,6 +153,17 @@ class DebuggerTests(unittest.TestCase):
-                     'run']
-+        if HAS_AUTOLOAD_SAFEPATH:
-+            # Recent GDBs will only auto-load scripts from certain safe
-+            # locations.
-+            # Where necessary, turn off this protection to ensure that
-+            # our -gdb.py script can be loaded - but not on earlier gdb builds
-+            # as this would generate noise on stderr (rhbz#817072):
-+            init_commands = ['set auto-load safe-path /']
-+        else:
-+            init_commands = []
-+
-+
-         # GDB as of 7.4 onwards can distinguish between the
-         # value of a variable at entry vs current value:
-         #   http://sourceware.org/gdb/onlinedocs/gdb/Variables.html
-@@ -167,10 +178,11 @@ class DebuggerTests(unittest.TestCase):
-         else:
-             commands += ['backtrace']
--        # print commands
-+        # print init_commands
-         # Use "commands" to generate the arguments with which to invoke "gdb":
-         args = ["gdb", "--batch", "-nx"]
-+        args += ['--init-eval-command=%s' % cmd for cmd in init_commands]
-         args += ['--eval-command=%s' % cmd for cmd in commands]
-         args += ["--args",
-                  sys.executable]
diff --git a/python/patches/00157-uid-gid-overflows.patch b/python/patches/00157-uid-gid-overflows.patch
deleted file mode 100644 (file)
index a31c98a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows Python-2.7.3/Lib/test/test_os.py
---- Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows 2012-04-09 19:07:32.000000000 -0400
-+++ Python-2.7.3/Lib/test/test_os.py   2012-06-26 14:51:36.000817929 -0400
-@@ -677,30 +677,36 @@ if sys.platform != 'win32':
-     def test_setuid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.setuid, 0)
-+        self.assertRaises(TypeError, os.setuid, 'not an int')
-         self.assertRaises(OverflowError, os.setuid, 1<<32)
-     @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
-     def test_setgid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.setgid, 0)
-+        self.assertRaises(TypeError, os.setgid, 'not an int')
-         self.assertRaises(OverflowError, os.setgid, 1<<32)
-     @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
-     def test_seteuid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.seteuid, 0)
-+        self.assertRaises(TypeError, os.seteuid, 'not an int')
-         self.assertRaises(OverflowError, os.seteuid, 1<<32)
-     @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
-     def test_setegid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.setegid, 0)
-+        self.assertRaises(TypeError, os.setegid, 'not an int')
-         self.assertRaises(OverflowError, os.setegid, 1<<32)
-     @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
-     def test_setreuid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.setreuid, 0, 0)
-+        self.assertRaises(TypeError, os.setreuid, 'not an int', 0)
-+        self.assertRaises(TypeError, os.setreuid, 0, 'not an int')
-         self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
-         self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
-@@ -715,6 +721,8 @@ if sys.platform != 'win32':
-     def test_setregid(self):
-         if os.getuid() != 0:
-             self.assertRaises(os.error, os.setregid, 0, 0)
-+        self.assertRaises(TypeError, os.setregid, 'not an int', 0)
-+        self.assertRaises(TypeError, os.setregid, 0, 'not an int')
-         self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
-         self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
diff --git a/python/patches/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch b/python/patches/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
deleted file mode 100644 (file)
index 9807883..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
-index 3354b34..10ba0e5 100644
---- a/Lib/test/test_gdb.py
-+++ b/Lib/test/test_gdb.py
-@@ -725,11 +725,10 @@ class PyListTests(DebuggerTests):
-                            '   2    \n'
-                            '   3    def foo(a, b, c):\n',
-                            bt)
--
-+@unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-+@unittest.skipIf(python_is_optimized(),
-+                "Python was compiled with optimizations")
- class StackNavigationTests(DebuggerTests):
--    @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
--    @unittest.skipIf(python_is_optimized(),
--                     "Python was compiled with optimizations")
-     def test_pyup_command(self):
-         'Verify that the "py-up" command works'
-         bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -740,7 +739,6 @@ class StackNavigationTests(DebuggerTests):
-     baz\(a, b, c\)
- $''')
--    @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-     def test_down_at_bottom(self):
-         'Verify handling of "py-down" at the bottom of the stack'
-         bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -748,9 +746,6 @@ $''')
-         self.assertEndsWith(bt,
-                             'Unable to find a newer python frame\n')
--    @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
--    @unittest.skipIf(python_is_optimized(),
--                     "Python was compiled with optimizations")
-     def test_up_at_top(self):
-         'Verify handling of "py-up" at the top of the stack'
-         bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -758,9 +753,6 @@ $''')
-         self.assertEndsWith(bt,
-                             'Unable to find an older python frame\n')
--    @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
--    @unittest.skipIf(python_is_optimized(),
--                     "Python was compiled with optimizations")
-     def test_up_then_down(self):
-         'Verify "py-up" followed by "py-down"'
-         bt = self.get_stack_trace(script=self.get_sample_script(),
diff --git a/python/patches/00168-distutils-cflags.patch b/python/patches/00168-distutils-cflags.patch
deleted file mode 100644 (file)
index 0c4a8df..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.6.6/Lib/distutils/sysconfig.py.distutils-cflags Python-2.6.6/Lib/distutils/sysconfig.py
---- Python-2.6.6/Lib/distutils/sysconfig.py.distutils-cflags   2011-08-12 17:18:17.833091153 -0400
-+++ Python-2.6.6/Lib/distutils/sysconfig.py    2011-08-12 17:18:27.449106938 -0400
-@@ -187,7 +187,7 @@ def customize_compiler(compiler):
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = cflags + ' ' + os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
diff --git a/python/patches/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch b/python/patches/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
deleted file mode 100644 (file)
index debf92f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
---- a/Lib/multiprocessing/connection.py
-+++ b/Lib/multiprocessing/connection.py
-@@ -41,6 +41,10 @@
- # A very generous timeout when it comes to local connections...
- CONNECTION_TIMEOUT = 20.
-+# The hmac module implicitly defaults to using MD5.
-+# Support using a stronger algorithm for the challenge/response code:
-+HMAC_DIGEST_NAME='sha256'
-+
- _mmap_counter = itertools.count()
- default_family = 'AF_INET'
-@@ -700,12 +704,16 @@
- WELCOME = b'#WELCOME#'
- FAILURE = b'#FAILURE#'
-+def get_digestmod_for_hmac():
-+    import hashlib
-+    return getattr(hashlib, HMAC_DIGEST_NAME)
-+
- def deliver_challenge(connection, authkey):
-     import hmac
-     assert isinstance(authkey, bytes)
-     message = os.urandom(MESSAGE_LENGTH)
-     connection.send_bytes(CHALLENGE + message)
--    digest = hmac.new(authkey, message).digest()
-+    digest = hmac.new(authkey, message, get_digestmod_for_hmac()).digest()
-     response = connection.recv_bytes(256)        # reject large message
-     if response == digest:
-         connection.send_bytes(WELCOME)
-@@ -719,7 +727,7 @@
-     message = connection.recv_bytes(256)         # reject large message
-     assert message[:len(CHALLENGE)] == CHALLENGE, 'message = %r' % message
-     message = message[len(CHALLENGE):]
--    digest = hmac.new(authkey, message).digest()
-+    digest = hmac.new(authkey, message, get_digestmod_for_hmac()).digest()
-     connection.send_bytes(digest)
-     response = connection.recv_bytes(256)        # reject large message
-     if response != WELCOME:
diff --git a/python/patches/00170-gc-assertions.patch b/python/patches/00170-gc-assertions.patch
deleted file mode 100644 (file)
index 9ade298..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
-index 7e47b2d..12a210d 100644
---- a/Lib/test/test_gc.py
-+++ b/Lib/test/test_gc.py
-@@ -1,7 +1,8 @@
- import unittest
- from test.support import (verbose, run_unittest, start_threads,
--                          requires_type_collecting)
-+                          requires_type_collecting, import_module)
- import sys
-+import sysconfig
- import time
- import gc
- import weakref
-@@ -39,6 +40,8 @@ class GC_Detector(object):
-         self.wr = weakref.ref(C1055820(666), it_happened)
-+BUILT_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
-+
- ### Tests
- ###############################################################################
-@@ -537,6 +540,49 @@ class GCTests(unittest.TestCase):
-             # would be damaged, with an empty __dict__.
-             self.assertEqual(x, None)
-+    @unittest.skipIf(BUILT_WITH_NDEBUG,
-+                     'built with -NDEBUG')
-+    def test_refcount_errors(self):
-+        # Verify the "handling" of objects with broken refcounts
-+ 
-+        import_module("ctypes") #skip if not supported
-+
-+        import subprocess
-+        code = '''if 1:
-+        a = []
-+        b = [a]
-+
-+        # Simulate the refcount of "a" being too low (compared to the
-+        # references held on it by live data), but keeping it above zero
-+        # (to avoid deallocating it):
-+        import ctypes
-+        ctypes.pythonapi.Py_DecRef(ctypes.py_object(a))
-+
-+        # The garbage collector should now have a fatal error when it reaches
-+        # the broken object:
-+        import gc
-+        gc.collect()
-+        '''
-+        p = subprocess.Popen([sys.executable, "-c", code],
-+                             stdout=subprocess.PIPE,
-+                             stderr=subprocess.PIPE)
-+        stdout, stderr = p.communicate()
-+        p.stdout.close()
-+        p.stderr.close()
-+        # Verify that stderr has a useful error message:
-+        self.assertRegexpMatches(stderr,
-+            b'Modules/gcmodule.c:[0-9]+: visit_decref: Assertion "gc->gc.gc_refs != 0" failed.')
-+        self.assertRegexpMatches(stderr,
-+            b'refcount was too small')
-+        self.assertRegexpMatches(stderr,
-+            b'object  : \[\]')
-+        self.assertRegexpMatches(stderr,
-+            b'type    : list')
-+        self.assertRegexpMatches(stderr,
-+            b'refcount: 1')
-+        self.assertRegexpMatches(stderr,
-+            b'address : 0x[0-9a-f]+')
-+
- class GCTogglingTests(unittest.TestCase):
-     def setUp(self):
-         gc.enable()
-diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
-index 916e481..0233ce2 100644
---- a/Modules/gcmodule.c
-+++ b/Modules/gcmodule.c
-@@ -21,6 +21,73 @@
- #include "Python.h"
- #include "frameobject.h"        /* for PyFrame_ClearFreeList */
-+/* 
-+   Define a pair of assertion macros.
-+
-+   These work like the regular C assert(), in that they will abort the
-+   process with a message on stderr if the given condition fails to hold,
-+   but compile away to nothing if NDEBUG is defined.
-+
-+   However, before aborting, Python will also try to call _PyObject_Dump() on
-+   the given object.  This may be of use when investigating bugs in which a
-+   particular object is corrupt (e.g. buggy a tp_visit method in an extension
-+   module breaking the garbage collector), to help locate the broken objects.
-+
-+   The WITH_MSG variant allows you to supply an additional message that Python
-+   will attempt to print to stderr, after the object dump.
-+*/
-+#ifdef NDEBUG
-+/* No debugging: compile away the assertions: */
-+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) ((void)0)
-+#else
-+/* With debugging: generate checks: */
-+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) \
-+  ((expr)                                           \
-+   ? (void)(0)                                      \
-+   : _PyObject_AssertFailed((obj),                  \
-+                            (msg),                  \
-+                            (__STRING(expr)),       \
-+                            (__FILE__),             \
-+                            (__LINE__),             \
-+                            (__PRETTY_FUNCTION__)))
-+#endif
-+
-+#define PyObject_ASSERT(obj, expr) \
-+  PyObject_ASSERT_WITH_MSG(obj, expr, NULL)
-+
-+static void _PyObject_AssertFailed(PyObject *,  const char *,
-+                                 const char *, const char *, int,
-+                                 const char *);
-+
-+static void
-+_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr,
-+                     const char *file, int line, const char *function)
-+{
-+    fprintf(stderr,
-+            "%s:%d: %s: Assertion \"%s\" failed.\n",
-+            file, line, function, expr);
-+    if (msg) {
-+        fprintf(stderr, "%s\n", msg);
-+    }
-+
-+    fflush(stderr);
-+
-+    if (obj) {
-+        /* This might succeed or fail, but we're about to abort, so at least
-+           try to provide any extra info we can: */
-+        _PyObject_Dump(obj);
-+    }
-+    else {
-+        fprintf(stderr, "NULL object\n");
-+    }
-+
-+    fflush(stdout);
-+    fflush(stderr);
-+
-+    /* Terminate the process: */
-+    abort();
-+}
-+
- /* Get an object's GC head */
- #define AS_GC(o) ((PyGC_Head *)(o)-1)
-@@ -328,7 +395,8 @@ update_refs(PyGC_Head *containers)
- {
-     PyGC_Head *gc = containers->gc.gc_next;
-     for (; gc != containers; gc = gc->gc.gc_next) {
--        assert(gc->gc.gc_refs == GC_REACHABLE);
-+        PyObject_ASSERT(FROM_GC(gc),
-+                        gc->gc.gc_refs == GC_REACHABLE);
-         gc->gc.gc_refs = Py_REFCNT(FROM_GC(gc));
-         /* Python's cyclic gc should never see an incoming refcount
-          * of 0:  if something decref'ed to 0, it should have been
-@@ -348,7 +416,8 @@ update_refs(PyGC_Head *containers)
-          * so serious that maybe this should be a release-build
-          * check instead of an assert?
-          */
--        assert(gc->gc.gc_refs != 0);
-+        PyObject_ASSERT(FROM_GC(gc),
-+                        gc->gc.gc_refs != 0);
-     }
- }
-@@ -363,7 +432,9 @@ visit_decref(PyObject *op, void *data)
-          * generation being collected, which can be recognized
-          * because only they have positive gc_refs.
-          */
--        assert(gc->gc.gc_refs != 0); /* else refcount was too small */
-+        PyObject_ASSERT_WITH_MSG(FROM_GC(gc),
-+                                 gc->gc.gc_refs != 0,
-+                                 "refcount was too small");
-         if (gc->gc.gc_refs > 0)
-             gc->gc.gc_refs--;
-     }
-@@ -423,9 +494,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable)
-          * If gc_refs == GC_UNTRACKED, it must be ignored.
-          */
-          else {
--            assert(gc_refs > 0
--                   || gc_refs == GC_REACHABLE
--                   || gc_refs == GC_UNTRACKED);
-+             PyObject_ASSERT(FROM_GC(gc),
-+                             gc_refs > 0
-+                             || gc_refs == GC_REACHABLE
-+                             || gc_refs == GC_UNTRACKED);
-          }
-     }
-     return 0;
-@@ -467,7 +539,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
-              */
-             PyObject *op = FROM_GC(gc);
-             traverseproc traverse = Py_TYPE(op)->tp_traverse;
--            assert(gc->gc.gc_refs > 0);
-+            PyObject_ASSERT(op, gc->gc.gc_refs > 0);
-             gc->gc.gc_refs = GC_REACHABLE;
-             (void) traverse(op,
-                             (visitproc)visit_reachable,
-@@ -545,7 +617,8 @@ move_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
-     for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) {
-         PyObject *op = FROM_GC(gc);
--        assert(IS_TENTATIVELY_UNREACHABLE(op));
-+        PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
-+
-         next = gc->gc.gc_next;
-         if (has_finalizer(op)) {
-@@ -621,7 +694,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-         PyWeakReference **wrlist;
-         op = FROM_GC(gc);
--        assert(IS_TENTATIVELY_UNREACHABLE(op));
-+        PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
-         next = gc->gc.gc_next;
-         if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
-@@ -642,9 +715,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-              * the callback pointer intact.  Obscure:  it also
-              * changes *wrlist.
-              */
--            assert(wr->wr_object == op);
-+            PyObject_ASSERT(wr->wr_object, wr->wr_object == op);
-             _PyWeakref_ClearRef(wr);
--            assert(wr->wr_object == Py_None);
-+            PyObject_ASSERT(wr->wr_object, wr->wr_object == Py_None);
-             if (wr->wr_callback == NULL)
-                 continue;                       /* no callback */
-@@ -678,7 +751,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-      */
-             if (IS_TENTATIVELY_UNREACHABLE(wr))
-                 continue;
--            assert(IS_REACHABLE(wr));
-+            PyObject_ASSERT(op, IS_REACHABLE(wr));
-             /* Create a new reference so that wr can't go away
-              * before we can process it again.
-@@ -687,7 +760,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-             /* Move wr to wrcb_to_call, for the next pass. */
-             wrasgc = AS_GC(wr);
--            assert(wrasgc != next); /* wrasgc is reachable, but
-+            PyObject_ASSERT(op, wrasgc != next);
-+                                    /* wrasgc is reachable, but
-                                        next isn't, so they can't
-                                        be the same */
-             gc_list_move(wrasgc, &wrcb_to_call);
-@@ -703,11 +777,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-         gc = wrcb_to_call.gc.gc_next;
-         op = FROM_GC(gc);
--        assert(IS_REACHABLE(op));
--        assert(PyWeakref_Check(op));
-+        PyObject_ASSERT(op, IS_REACHABLE(op));
-+        PyObject_ASSERT(op, PyWeakref_Check(op));
-         wr = (PyWeakReference *)op;
-         callback = wr->wr_callback;
--        assert(callback != NULL);
-+        PyObject_ASSERT(op, callback != NULL);
-         /* copy-paste of weakrefobject.c's handle_callback() */
-         temp = PyObject_CallFunctionObjArgs(callback, wr, NULL);
-@@ -810,7 +884,7 @@ delete_garbage(PyGC_Head *collectable, PyGC_Head *old)
-         PyGC_Head *gc = collectable->gc.gc_next;
-         PyObject *op = FROM_GC(gc);
--        assert(IS_TENTATIVELY_UNREACHABLE(op));
-+        PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
-         if (debug & DEBUG_SAVEALL) {
-             PyList_Append(garbage, op);
-         }
diff --git a/python/patches/00174-fix-for-usr-move.patch b/python/patches/00174-fix-for-usr-move.patch
deleted file mode 100644 (file)
index b48dc5c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up Python-2.7.3/Modules/getpath.c.fix-for-usr-move Python-2.7.3/Modules/getpath.c
---- Python-2.7.3/Modules/getpath.c.fix-for-usr-move    2013-03-06 14:25:32.801828698 -0500
-+++ Python-2.7.3/Modules/getpath.c     2013-03-06 15:59:30.872443168 -0500
-@@ -510,6 +510,24 @@ calculate_path(void)
-        MAXPATHLEN bytes long.
-     */
-+    /*
-+      Workaround for rhbz#817554, where an empty argv0_path erroneously
-+      locates "prefix" as "/lib[64]/python2.7" due to it finding
-+      "/lib[64]/python2.7/os.py" via the /lib -> /usr/lib symlink for
-+      https://fedoraproject.org/wiki/Features/UsrMove
-+    */
-+    if (argv0_path[0] == '\0' && 0 == strcmp(prog, "cmpi_swig")) {
-+        /*
-+          We have an empty argv0_path, presumably because prog aka
-+          Py_GetProgramName() was not found on $PATH.
-+
-+          Set argv0_path to "/usr/" so that search_for_prefix() and
-+          search_for_exec_prefix() don't erroneously pick up
-+          on /lib/ via the UsrMove symlink:
-+        */
-+        strcpy(argv0_path, "/usr/");
-+    }
-+
-     if (!(pfound = search_for_prefix(argv0_path, home))) {
-         if (!Py_FrozenFlag)
-             fprintf(stderr,
diff --git a/python/patches/00180-python-add-support-for-ppc64p7.patch b/python/patches/00180-python-add-support-for-ppc64p7.patch
deleted file mode 100644 (file)
index ef94c86..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/config.sub b/config.sub
-index 3478c1f..e422173 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1040,7 +1040,7 @@ case $basic_machine in
-               ;;
-       ppc64)  basic_machine=powerpc64-unknown
-               ;;
--      ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+      ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64le | powerpc64little)
-               basic_machine=powerpc64le-unknown
diff --git a/python/patches/00181-allow-arbitrary-timeout-in-condition-wait.patch b/python/patches/00181-allow-arbitrary-timeout-in-condition-wait.patch
deleted file mode 100644 (file)
index 757c7dd..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/Lib/threading.py b/Lib/threading.py
-index cb49c4a..c9795a5 100644
---- a/Lib/threading.py
-+++ b/Lib/threading.py
-@@ -305,7 +305,7 @@ class _Condition(_Verbose):
-         else:
-             return True
--    def wait(self, timeout=None):
-+    def wait(self, timeout=None, balancing=True):
-         """Wait until notified or until a timeout occurs.
-         If the calling thread has not acquired the lock when this method is
-@@ -354,7 +354,10 @@ class _Condition(_Verbose):
-                     remaining = endtime - _time()
-                     if remaining <= 0:
-                         break
--                    delay = min(delay * 2, remaining, .05)
-+                    if balancing:
-+                        delay = min(delay * 2, remaining, 0.05)
-+                    else:
-+                        delay = remaining
-                     _sleep(delay)
-                 if not gotit:
-                     if __debug__:
-@@ -599,7 +602,7 @@ class _Event(_Verbose):
-         with self.__cond:
-             self.__flag = False
--    def wait(self, timeout=None):
-+    def wait(self, timeout=None, balancing=True):
-         """Block until the internal flag is true.
-         If the internal flag is true on entry, return immediately. Otherwise,
-@@ -617,7 +620,7 @@ class _Event(_Verbose):
-         """
-         with self.__cond:
-             if not self.__flag:
--                self.__cond.wait(timeout)
-+                self.__cond.wait(timeout, balancing)
-             return self.__flag
-
- # Helper to generate new thread names
-@@ -908,7 +911,7 @@ class Thread(_Verbose):
-             if 'dummy_threading' not in _sys.modules:
-                 raise
--    def join(self, timeout=None):
-+    def join(self, timeout=None, balancing=True):
-         """Wait until the thread terminates.
-         This blocks the calling thread until the thread whose join() method is
-@@ -957,7 +960,7 @@ class Thread(_Verbose):
-                         if __debug__:
-                             self._note("%s.join(): timed out", self)
-                         break
--                    self.__block.wait(delay)
-+                    self.__block.wait(delay, balancing)
-                 else:
-                     if __debug__:
-                         self._note("%s.join(): thread stopped", self)
-@@ -1143,7 +1146,7 @@ class _DummyThread(Thread):
-     def _set_daemon(self):
-         return True
--    def join(self, timeout=None):
-+    def join(self, timeout=None, balancing=True):
-         assert False, "cannot join a dummy thread"
diff --git a/python/patches/00185-urllib2-honors-noproxy-for-ftp.patch b/python/patches/00185-urllib2-honors-noproxy-for-ftp.patch
deleted file mode 100644 (file)
index b26c4d4..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.5/Lib/urllib2.py.orig Python-2.7.5/Lib/urllib2.py
---- Python-2.7.5/Lib/urllib2.py.orig   2013-07-17 12:22:58.595525622 +0200
-+++ Python-2.7.5/Lib/urllib2.py        2013-07-17 12:19:59.875898030 +0200
-@@ -728,6 +728,8 @@ class ProxyHandler(BaseHandler):
-         if proxy_type is None:
-             proxy_type = orig_type
-+        req.get_host()
-+
-         if req.host and proxy_bypass(req.host):
-             return None
diff --git a/python/patches/00187-add-RPATH-to-pyexpat.patch b/python/patches/00187-add-RPATH-to-pyexpat.patch
deleted file mode 100644 (file)
index 0ac5227..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -r e8b8279ca118 setup.py
---- a/setup.py Sun Jul 21 21:57:52 2013 -0400
-+++ b/setup.py Tue Aug 20 09:45:31 2013 +0200
-@@ -1480,12 +1480,21 @@
-                              'expat/xmltok_impl.h'
-                              ]
-+        # Add an explicit RPATH to pyexpat.so pointing at the directory
-+        # containing the system expat (which has the extra XML_SetHashSalt
-+        # symbol), to avoid an ImportError with a link error if there's an
-+        # LD_LIBRARY_PATH containing a "vanilla" build of expat (without the
-+        # symbol) (rhbz#833271):
-+        EXPAT_RPATH = '/usr/lib64' if sys.maxint == 0x7fffffffffffffff else '/usr/lib'
-+
-+
-         exts.append(Extension('pyexpat',
-                               define_macros = define_macros,
-                               include_dirs = expat_inc,
-                               libraries = expat_lib,
-                               sources = ['pyexpat.c'] + expat_sources,
-                               depends = expat_depends,
-+                              extra_link_args = ['-Wl,-rpath,%s' % EXPAT_RPATH]
-                               ))
-         # Fredrik Lundh's cElementTree module.  Note that this also
diff --git a/python/patches/00189-use-rpm-wheels.patch b/python/patches/00189-use-rpm-wheels.patch
deleted file mode 100644 (file)
index d7428f8..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
-index 89ed1ef..8008222 100644
---- a/Lib/ensurepip/__init__.py
-+++ b/Lib/ensurepip/__init__.py
-@@ -1,9 +1,10 @@
- #!/usr/bin/env python2
- from __future__ import print_function
-+import distutils.version
-+import glob
- import os
- import os.path
--import pkgutil
- import shutil
- import sys
- import tempfile
-@@ -11,10 +12,20 @@ import tempfile
- __all__ = ["version", "bootstrap"]
-+_WHEEL_DIR = "/usr/share/python-wheels/"
--_SETUPTOOLS_VERSION = "39.0.1"
--_PIP_VERSION = "9.0.3"
-+def _get_most_recent_wheel_version(pkg):
-+    prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
-+    suffix = "-py2.py3-none-any.whl"
-+    pattern = "{}*{}".format(prefix, suffix)
-+    versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern))
-+    return str(max(versions, key=distutils.version.LooseVersion))
-+
-+
-+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
-+
-+_PIP_VERSION = _get_most_recent_wheel_version("pip")
- _PROJECTS = [
-     ("setuptools", _SETUPTOOLS_VERSION),
-@@ -28,8 +39,13 @@ def _run_pip(args, additional_paths=None):
-         sys.path = additional_paths + sys.path
-     # Install the bundled software
--    import pip
--    return pip.main(args)
-+    try:
-+        # pip 10
-+        from pip._internal import main
-+    except ImportError:
-+        # pip 9
-+        from pip import main
-+    return main(args)
- def version():
-@@ -100,12 +116,9 @@ def _bootstrap(root=None, upgrade=False, user=False,
-         additional_paths = []
-         for project, version in _PROJECTS:
-             wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
--            whl = pkgutil.get_data(
--                "ensurepip",
--                "_bundled/{}".format(wheel_name),
--            )
--            with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
--                fp.write(whl)
-+            with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp:
-+                with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
-+                    fp.write(sfp.read())
-             additional_paths.append(os.path.join(tmpdir, wheel_name))
diff --git a/python/patches/00190-gdb-py-bt-dont-raise-exception-from-eval.patch b/python/patches/00190-gdb-py-bt-dont-raise-exception-from-eval.patch
deleted file mode 100644 (file)
index 4ef2a5d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- Python-2.7.5-orig/Tools/gdb/libpython.py   2013-05-12 03:32:54.000000000 +0000
-+++ Python-2.7.5-orig/Tools/gdb/libpython.py   2013-09-15 09:56:25.494000000 +0000
-@@ -887,6 +887,8 @@ 
-         newline character'''
-         if self.is_optimized_out():
-             return '(frame information optimized out)'
-+        if self.filename() == '<string>':
-+            return '(in an eval block)'
-         filename = self.filename()
-         try:
-             f = open(filename, 'r')
diff --git a/python/patches/00191-disable-NOOP.patch b/python/patches/00191-disable-NOOP.patch
deleted file mode 100644 (file)
index 2d4189a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
-index 1bb6690..28ed25d 100644
---- a/Lib/test/test_smtplib.py
-+++ b/Lib/test/test_smtplib.py
-@@ -182,6 +182,7 @@ class DebuggingServerTests(unittest.TestCase):
-         smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
-         smtp.quit()
-+    @unittest._skipInRpmBuild("Does not work in network-free environment")
-     def testNOOP(self):
-         smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
-         expected = (250, 'Ok')
diff --git a/python/patches/00193-enable-loading-sqlite-extensions.patch b/python/patches/00193-enable-loading-sqlite-extensions.patch
deleted file mode 100644 (file)
index 36d053a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- Python-2.7.5/setup.py.orig  2013-05-11 20:32:54.000000000 -0700
-+++ Python-2.7.5/setup.py  2014-02-18 14:16:07.999004901 -0800
-@@ -1168,7 +1168,7 @@ class PyBuildExt(build_ext):
-                 sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"'))
-             # Comment this out if you want the sqlite3 module to be able to load extensions.
--            sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1"))
-+            #sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1"))
-             if host_platform == 'darwin':
-                 # In every directory on the search path search for a dynamic
diff --git a/python/patches/00289-disable-nis-detection.patch b/python/patches/00289-disable-nis-detection.patch
deleted file mode 100644 (file)
index 4e185bb..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 585e380..9993f11 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1346,11 +1346,7 @@ class PyBuildExt(build_ext):
-             else:
-                 missing.append('resource')
--            nis = self._detect_nis(inc_dirs, lib_dirs)
--            if nis is not None:
--                exts.append(nis)
--            else:
--                missing.append('nis')
-+            # nis (Sun yellow pages) is handled in Setup.dist
-         # Curses support, requiring the System V version of curses, often
-         # provided by the ncurses library.
-@@ -2162,51 +2158,6 @@ class PyBuildExt(build_ext):
-             # for dlopen, see bpo-32647
-             ext.libraries.append('dl')
--    def _detect_nis(self, inc_dirs, lib_dirs):
--        if host_platform in {'win32', 'cygwin', 'qnx6'}:
--            return None
--
--        libs = []
--        library_dirs = []
--        includes_dirs = []
--
--        # bpo-32521: glibc has deprecated Sun RPC for some time. Fedora 28
--        # moved headers and libraries to libtirpc and libnsl. The headers
--        # are in tircp and nsl sub directories.
--        rpcsvc_inc = find_file(
--            'rpcsvc/yp_prot.h', inc_dirs,
--            [os.path.join(inc_dir, 'nsl') for inc_dir in inc_dirs]
--        )
--        rpc_inc = find_file(
--            'rpc/rpc.h', inc_dirs,
--            [os.path.join(inc_dir, 'tirpc') for inc_dir in inc_dirs]
--        )
--        if rpcsvc_inc is None or rpc_inc is None:
--            # not found
--            return None
--        includes_dirs.extend(rpcsvc_inc)
--        includes_dirs.extend(rpc_inc)
--
--        if self.compiler.find_library_file(lib_dirs, 'nsl'):
--            libs.append('nsl')
--        else:
--            # libnsl-devel: check for libnsl in nsl/ subdirectory
--            nsl_dirs = [os.path.join(lib_dir, 'nsl') for lib_dir in lib_dirs]
--            libnsl = self.compiler.find_library_file(nsl_dirs, 'nsl')
--            if libnsl is not None:
--                library_dirs.append(os.path.dirname(libnsl))
--                libs.append('nsl')
--
--        if self.compiler.find_library_file(lib_dirs, 'tirpc'):
--            libs.append('tirpc')
--
--        return Extension(
--            'nis', ['nismodule.c'],
--            libraries=libs,
--            library_dirs=library_dirs,
--            include_dirs=includes_dirs
--        )
--
- class PyBuildInstall(install):
-     # Suppress the warning about installation into the lib_dynload
diff --git a/python/patches/00309-shutil-spawn-subprocess.patch b/python/patches/00309-shutil-spawn-subprocess.patch
deleted file mode 100644 (file)
index adc56c4..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From add531a1e55b0a739b0f42582f1c9747e5649ace Mon Sep 17 00:00:00 2001
-From: Benjamin Peterson <benjamin@python.org>
-Date: Tue, 28 Aug 2018 22:12:56 -0700
-Subject: [PATCH] closes bpo-34540: Convert shutil._call_external_zip to use
- subprocess rather than distutils.spawn.
-
----
- Lib/shutil.py                                    | 16 ++++++++++------
- .../2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst     |  3 +++
- 2 files changed, 13 insertions(+), 6 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst
-
-diff --git a/Lib/shutil.py b/Lib/shutil.py
-index 3462f7c5e91c..0ab1a06f5260 100644
---- a/Lib/shutil.py
-+++ b/Lib/shutil.py
-@@ -413,17 +413,21 @@ def _set_uid_gid(tarinfo):
-     return archive_name
--def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False):
-+def _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger):
-     # XXX see if we want to keep an external call here
-     if verbose:
-         zipoptions = "-r"
-     else:
-         zipoptions = "-rq"
--    from distutils.errors import DistutilsExecError
--    from distutils.spawn import spawn
-+    cmd = ["zip", zipoptions, zip_filename, base_dir]
-+    if logger is not None:
-+        logger.info(' '.join(cmd))
-+    if dry_run:
-+        return
-+    import subprocess
-     try:
--        spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run)
--    except DistutilsExecError:
-+        subprocess.check_call(cmd)
-+    except subprocess.CalledProcessError:
-         # XXX really should distinguish between "couldn't find
-         # external 'zip' command" and "zip failed".
-         raise ExecError, \
-@@ -458,7 +462,7 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None):
-         zipfile = None
-     if zipfile is None:
--        _call_external_zip(base_dir, zip_filename, verbose, dry_run)
-+        _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger)
-     else:
-         if logger is not None:
-             logger.info("creating '%s' and adding '%s' to it",
-diff --git a/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst b/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst
-new file mode 100644
-index 000000000000..4f686962a87b
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst
-@@ -0,0 +1,3 @@
-+When ``shutil.make_archive`` falls back to the external ``zip`` problem, it
-+uses :mod:`subprocess` to invoke it rather than :mod:`distutils.spawn`. This
-+closes a possible shell injection vector.
diff --git a/python/patches/00310-use-xml-sethashsalt-in-elementtree.patch b/python/patches/00310-use-xml-sethashsalt-in-elementtree.patch
deleted file mode 100644 (file)
index 27d8d1c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-From 554c48934c599b3fb04c73d740bba1a745b89b41 Mon Sep 17 00:00:00 2001
-From: Christian Heimes <christian@python.org>
-Date: Tue, 18 Sep 2018 14:38:58 +0200
-Subject: [PATCH] [2.7] bpo-34623: Use XML_SetHashSalt in _elementtree
- (GH-9146)
-
-The C accelerated _elementtree module now initializes hash randomization
-salt from _Py_HashSecret instead of libexpat's default CPRNG.
-
-Signed-off-by: Christian Heimes <christian@python.org>
-
-https://bugs.python.org/issue34623.
-(cherry picked from commit cb5778f00ce48631c7140f33ba242496aaf7102b)
-
-Co-authored-by: Christian Heimes <christian@python.org>
----
- Include/pyexpat.h                                            | 4 +++-
- .../next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst   | 2 ++
- Modules/_elementtree.c                                       | 5 +++++
- Modules/pyexpat.c                                            | 5 +++++
- 4 files changed, 15 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-
-diff --git a/Include/pyexpat.h b/Include/pyexpat.h
-index 5340ef5fa386..3fc5fa54da63 100644
---- a/Include/pyexpat.h
-+++ b/Include/pyexpat.h
-@@ -3,7 +3,7 @@
- /* note: you must import expat.h before importing this module! */
--#define PyExpat_CAPI_MAGIC  "pyexpat.expat_CAPI 1.0"
-+#define PyExpat_CAPI_MAGIC  "pyexpat.expat_CAPI 1.1"
- #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
- struct PyExpat_CAPI 
-@@ -43,6 +43,8 @@ struct PyExpat_CAPI
-         XML_Parser parser, XML_UnknownEncodingHandler handler,
-         void *encodingHandlerData);
-     void (*SetUserData)(XML_Parser parser, void *userData);
-+    /* might be none for expat < 2.1.0 */
-+    int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
-     /* always add new stuff to the end! */
- };
-diff --git a/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-new file mode 100644
-index 000000000000..31ad92ef8582
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-@@ -0,0 +1,2 @@
-+The C accelerated _elementtree module now initializes hash randomization
-+salt from _Py_HashSecret instead of libexpat's default CSPRNG.
-diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
-index f7f992dd3a95..b38e0ab329c7 100644
---- a/Modules/_elementtree.c
-+++ b/Modules/_elementtree.c
-@@ -2574,6 +2574,11 @@ xmlparser(PyObject* self_, PyObject* args, PyObject* kw)
-         PyErr_NoMemory();
-         return NULL;
-     }
-+    /* expat < 2.1.0 has no XML_SetHashSalt() */
-+    if (EXPAT(SetHashSalt) != NULL) {
-+        EXPAT(SetHashSalt)(self->parser,
-+                           (unsigned long)_Py_HashSecret.prefix);
-+    }
-     ALLOC(sizeof(XMLParserObject), "create expatparser");
-diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
-index 2b4d31293c64..1f8c0d70a559 100644
---- a/Modules/pyexpat.c
-+++ b/Modules/pyexpat.c
-@@ -2042,6 +2042,11 @@ MODULE_INITFUNC(void)
-     capi.SetProcessingInstructionHandler = XML_SetProcessingInstructionHandler;
-     capi.SetUnknownEncodingHandler = XML_SetUnknownEncodingHandler;
-     capi.SetUserData = XML_SetUserData;
-+#if XML_COMBINED_VERSION >= 20100
-+    capi.SetHashSalt = XML_SetHashSalt;
-+#else
-+    capi.SetHashSalt = NULL;
-+#endif
-     /* export using capsule */
-     capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);
diff --git a/python/patches/05000-autotool-intermediates.patch b/python/patches/05000-autotool-intermediates.patch
deleted file mode 100644 (file)
index dfe0257..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-diff -up ./configure.autotool-intermediates ./configure
---- ./configure.autotool-intermediates 2013-04-09 11:24:01.024185796 +0200
-+++ ./configure        2013-04-09 11:24:01.780183954 +0200
-@@ -639,6 +639,8 @@ TRUE
- MACHDEP_OBJS
- DYNLOADFILE
- DLINCLDIR
-+DTRACEHDRS
-+DTRACEOBJS
- THREADOBJ
- LDLAST
- USE_THREAD_MODULE
-@@ -659,6 +661,8 @@ OTHER_LIBTOOL_OPT
- UNIVERSAL_ARCH_FLAGS
- BASECFLAGS
- OPT
-+DEBUG_SUFFIX
-+DEBUG_EXT
- LN
- MKDIR_P
- INSTALL_DATA
-@@ -795,8 +799,11 @@ with_pth
- enable_ipv6
- with_doc_strings
- with_tsc
-+with_count_allocs
-+with_call_profile
- with_pymalloc
- with_valgrind
-+with_dtrace
- with_wctype_functions
- with_fpectl
- with_libm
-@@ -1472,8 +1479,11 @@ Optional Packages:
-   --with-pth              use GNU pth threading libraries
-   --with(out)-doc-strings disable/enable documentation strings
-   --with(out)-tsc         enable/disable timestamp counter profile
-+  --with(out)count-allocs  enable/disable per-type instance accounting
-+  --with(out)-call-profile  enable/disable statistics on function call invocation
-   --with(out)-pymalloc    disable/enable specialized mallocs
-   --with-valgrind         Enable Valgrind support
-+  --with(out)-dtrace      disable/enable dtrace support
-   --with-wctype-functions use wctype.h functions
-   --with-fpectl           enable SIGFPE catching
-   --with-libm=STRING      math library
-@@ -5343,8 +5353,8 @@ $as_echo "#define Py_ENABLE_SHARED 1" >>
-         INSTSONAME="$LDLIBRARY".$SOVERSION
-           ;;
-     Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
--        LDLIBRARY='libpython$(VERSION).so'
--        BLDLIBRARY='-L. -lpython$(VERSION)'
-+        LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
-+        BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
-         RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-         case $ac_sys_system in
-             FreeBSD*)
-@@ -5367,7 +5377,7 @@ $as_echo "#define Py_ENABLE_SHARED 1" >>
-         ;;
-     OSF*)
-         LDLIBRARY='libpython$(VERSION).so'
--        BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
-+        BLDLIBRARY='-L. -lpython$(VERSION)'
-         RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-         ;;
-     atheos*)
-@@ -5894,6 +5904,14 @@ $as_echo "no" >&6; }
- fi
-+if test "$Py_DEBUG" = 'true'
-+then
-+      DEBUG_EXT=_d
-+      DEBUG_SUFFIX=-debug
-+fi
-+
-+
-+
- # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
- # merged with this chunk of code?
-@@ -9958,6 +9976,50 @@ $as_echo "no" >&6; }
- fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-count-allocs" >&5
-+$as_echo_n "checking for --with-count-allocs... " >&6; }
-+
-+# Check whether --with-count-allocs was given.
-+if test "${with_count_allocs+set}" = set; then :
-+  withval=$with_count_allocs;
-+if test "$withval" != no
-+then
-+
-+$as_echo "#define COUNT_ALLOCS 1" >>confdefs.h
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-call-profile" >&5
-+$as_echo_n "checking for --with-call-profile... " >&6; }
-+
-+# Check whether --with-call-profile was given.
-+if test "${with_call_profile+set}" = set; then :
-+  withval=$with_call_profile;
-+if test "$withval" != no
-+then
-+
-+$as_echo "#define CALL_PROFILE 1" >>confdefs.h
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
- # Check for Python-specific malloc support
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5
- $as_echo_n "checking for --with-pymalloc... " >&6; }
-@@ -10007,6 +10069,46 @@ fi
- fi
-+# Check for dtrace support
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5
-+$as_echo_n "checking for --with-dtrace... " >&6; }
-+
-+# Check whether --with-dtrace was given.
-+if test "${with_dtrace+set}" = set; then :
-+  withval=$with_dtrace;
-+fi
-+
-+
-+if test ! -z "$with_dtrace"
-+then
-+    if dtrace -G -o /dev/null -s $srcdir/Include/pydtrace.d 2>/dev/null
-+    then
-+
-+$as_echo "#define WITH_DTRACE 1" >>confdefs.h
-+
-+      with_dtrace="Sun"
-+      DTRACEOBJS="Python/dtrace.o"
-+      DTRADEHDRS=""
-+    elif dtrace -h -o /dev/null -s $srcdir/Include/pydtrace.d
-+    then
-+
-+$as_echo "#define WITH_DTRACE 1" >>confdefs.h
-+
-+      with_dtrace="Apple"
-+      DTRACEOBJS=""
-+      DTRADEHDRS="pydtrace.h"
-+    else
-+      with_dtrace="no"
-+    fi
-+else
-+    with_dtrace="no"
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5
-+$as_echo "$with_dtrace" >&6; }
-+
-+
-+
- # Check for --with-wctype-functions
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wctype-functions" >&5
- $as_echo_n "checking for --with-wctype-functions... " >&6; }
-diff -up ./pyconfig.h.in.autotool-intermediates ./pyconfig.h.in
---- ./pyconfig.h.in.autotool-intermediates     2013-04-09 11:24:01.020185806 +0200
-+++ ./pyconfig.h.in    2013-04-09 11:24:02.088183204 +0200
-@@ -18,6 +18,12 @@
- /* Define this if you have BeOS threads. */
- #undef BEOS_THREADS
-+/* Define to keep records on function call invocation */
-+#undef CALL_PROFILE
-+
-+/* Define to keep records of the number of instances of each type */
-+#undef COUNT_ALLOCS
-+
- /* Define if you have the Mach cthreads package */
- #undef C_THREADS
-@@ -1119,12 +1125,6 @@
- /* Define to profile with the Pentium timestamp counter */
- #undef WITH_TSC
--/* Define to keep records of the number of instances of each type */
--#undef COUNT_ALLOCS
--
--/* Define to keep records on function call invocation */
--#undef CALL_PROFILE
--
- /* Define if you want pymalloc to be disabled when running under valgrind */
- #undef WITH_VALGRIND
diff --git a/python/patches/python-2.3.4-lib64-regex.patch b/python/patches/python-2.3.4-lib64-regex.patch
deleted file mode 100644 (file)
index 2b38d4c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- Python-2.3.4/Lib/test/test_re.py                   2004-04-20 23:32:33.000000000 +0200
-+++ Python-2.3.4/Lib/test/test_re.py.lib64-regex       2004-05-29 17:36:52.000000000 +0200
-@@ -497,6 +497,15 @@
-         self.assert_(re.compile('bug_926075') is not
-                      re.compile(eval("u'bug_926075'")))
-+    def test_bug_931848(self):
-+        try:
-+            unicode
-+        except NameError:
-+            pass
-+        pattern = eval('u"[\u002E\u3002\uFF0E\uFF61]"')
-+        self.assertEqual(re.compile(pattern).split("a.b.c"),
-+                         ['a','b','c'])
-+
- def run_re_tests():
-     from test.re_tests import benchmarks, tests, SUCCEED, FAIL, SYNTAX_ERROR
-     if verbose:
diff --git a/python/patches/python-2.5-cflags.patch b/python/patches/python-2.5-cflags.patch
deleted file mode 100644 (file)
index 32243bf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- Python-2.5c1/Makefile.pre.in.cflags        2006-08-18 11:05:40.000000000 -0400
-+++ Python-2.5c1/Makefile.pre.in       2006-08-18 11:09:26.000000000 -0400
-@@ -334,7 +334,7 @@
- # Build the interpreter
- $(BUILDPYTHON):       Modules/python.o $(LIBRARY) $(LDLIBRARY)
--              $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
-+              $(LINKCC) $(CFLAGS) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
-                       Modules/python.o \
-                       $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
diff --git a/python/patches/python-2.5.1-plural-fix.patch b/python/patches/python-2.5.1-plural-fix.patch
deleted file mode 100644 (file)
index 5002cb2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py
---- Python-2.5.1/Lib/gettext.py.plural 2007-09-10 11:38:57.000000000 -0400
-+++ Python-2.5.1/Lib/gettext.py        2007-09-10 11:39:00.000000000 -0400
-@@ -299,6 +299,8 @@ class GNUTranslations(NullTranslations):
-                     item = item.strip()
-                     if not item:
-                         continue
-+                    if item.startswith("#"):
-+                        continue
-                     k = v = None
-                     if ':' in item:
-                         k, v = item.split(':', 1)
diff --git a/python/patches/python-2.5.1-sqlite-encoding.patch b/python/patches/python-2.5.1-sqlite-encoding.patch
deleted file mode 100644 (file)
index ff2a3f8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up Python-2.5.1/Lib/sqlite3/dbapi2.py.encoding Python-2.5.1/Lib/sqlite3/dbapi2.py
---- Python-2.5.1/Lib/sqlite3/dbapi2.py.encoding        2007-09-14 10:41:50.000000000 -0400
-+++ Python-2.5.1/Lib/sqlite3/dbapi2.py 2007-09-14 10:42:00.000000000 -0400
-@@ -1,7 +1,6 @@
--# -*- coding: iso-8859-1 -*-
- # pysqlite2/dbapi2.py: the DB-API 2.0 interface
- #
--# Copyright (C) 2004-2005 Gerhard Häring <gh@ghaering.de>
-+# Copyright (C) 2004-2005 Gerhard Haering <gh@ghaering.de>
- #
- # This file is part of pysqlite.
- #
-diff -up Python-2.5.1/Lib/sqlite3/__init__.py.encoding Python-2.5.1/Lib/sqlite3/__init__.py
---- Python-2.5.1/Lib/sqlite3/__init__.py.encoding      2007-09-14 10:41:47.000000000 -0400
-+++ Python-2.5.1/Lib/sqlite3/__init__.py       2007-09-14 10:42:06.000000000 -0400
-@@ -1,7 +1,6 @@
--#-*- coding: ISO-8859-1 -*-
- # pysqlite2/__init__.py: the pysqlite2 package.
- #
--# Copyright (C) 2005 Gerhard Häring <gh@ghaering.de>
-+# Copyright (C) 2005 Gerhard Haering <gh@ghaering.de>
- #
- # This file is part of pysqlite.
- #
diff --git a/python/patches/python-2.6-rpath.patch b/python/patches/python-2.6-rpath.patch
deleted file mode 100644 (file)
index 33d7cf6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.6/configure.ac.rpath Python-2.6/configure.ac
---- Python-2.6/configure.ac.rpath      2008-11-24 02:51:06.000000000 -0500
-+++ Python-2.6/configure.ac    2008-11-24 02:51:21.000000000 -0500
-@@ -729,7 +729,7 @@ if test $enable_shared = "yes"; then
-         ;;
-     OSF*)
-         LDLIBRARY='libpython$(VERSION).so'
--        BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
-+        BLDLIBRARY='-L. -lpython$(VERSION)'
-         RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-         ;;
-     atheos*)
diff --git a/python/patches/python-2.6.4-distutils-rpath.patch b/python/patches/python-2.6.4-distutils-rpath.patch
deleted file mode 100644 (file)
index f156507..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up Python-2.6.4/Lib/distutils/unixccompiler.py.distutils-rpath Python-2.6.4/Lib/distutils/unixccompiler.py
---- Python-2.6.4/Lib/distutils/unixccompiler.py.distutils-rpath        2009-09-09 04:34:06.000000000 -0400
-+++ Python-2.6.4/Lib/distutils/unixccompiler.py        2010-03-15 21:33:25.000000000 -0400
-@@ -142,6 +142,16 @@ class UnixCCompiler(CCompiler):
-     if sys.platform == "cygwin":
-         exe_extension = ".exe"
-+    def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
-+        """Remove standard library path from rpath"""
-+        libraries, library_dirs, runtime_library_dirs = \
-+            CCompiler._fix_lib_args(self, libraries, library_dirs,
-+                                    runtime_library_dirs)
-+        libdir = sysconfig.get_config_var('LIBDIR')
-+        if runtime_library_dirs and (libdir in runtime_library_dirs):
-+            runtime_library_dirs.remove(libdir)
-+        return libraries, library_dirs, runtime_library_dirs
-+
-     def preprocess(self, source,
-                    output_file=None, macros=None, include_dirs=None,
-                    extra_preargs=None, extra_postargs=None):
diff --git a/python/patches/python-2.7.1-config.patch b/python/patches/python-2.7.1-config.patch
deleted file mode 100644 (file)
index df9d4a6..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
---- Python-2.7.4/Modules/Setup.dist.rhconfig   2013-04-06 16:02:34.000000000 +0200
-+++ Python-2.7.4/Modules/Setup.dist    2013-04-08 10:05:16.369985654 +0200
-@@ -153,7 +153,7 @@ GLHACK=-Dclear=__GLclear
- # modules are to be built as shared libraries (see above for more
- # detail; also note that *static* reverses this effect):
--#*shared*
-+*shared*
- # GNU readline.  Unlike previous Python incarnations, GNU readline is
- # now incorporated in an optional module, configured in the Setup file
-@@ -163,77 +163,77 @@ GLHACK=-Dclear=__GLclear
- # it, depending on your system -- see the GNU readline instructions.
- # It's okay for this to be a shared library, too.
--#readline readline.c -lreadline -ltermcap
-+readline readline.c -lreadline -ltermcap
- # Modules that should always be present (non UNIX dependent):
--#array arraymodule.c  # array objects
--#cmath cmathmodule.c _math.c # -lm # complex math library functions
--#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
--#_struct _struct.c    # binary structure packing/unpacking
--#time timemodule.c # -lm # time operations and variables
--#operator operator.c  # operator.add() and similar goodies
--#_testcapi _testcapimodule.c    # Python C API test module
--#_random _randommodule.c      # Random number generator
--#_collections _collectionsmodule.c # Container types
-+array arraymodule.c   # array objects
-+cmath cmathmodule.c _math.c # -lm # complex math library functions
-+math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
-+_struct _struct.c     # binary structure packing/unpacking
-+time timemodule.c # -lm # time operations and variables
-+operator operator.c   # operator.add() and similar goodies
-+_testcapi _testcapimodule.c    # Python C API test module
-+_random _randommodule.c       # Random number generator
-+_collections _collectionsmodule.c # Container types
- #_heapq _heapqmodule.c                # Heapq type
--#itertools itertoolsmodule.c  # Functions creating iterators for efficient looping 
--#strop stropmodule.c          # String manipulations
--#_functools _functoolsmodule.c        # Tools for working with functions and callable objects
-+itertools itertoolsmodule.c   # Functions creating iterators for efficient looping 
-+strop stropmodule.c           # String manipulations
-+_functools _functoolsmodule.c # Tools for working with functions and callable objects
- #_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c       # elementtree accelerator
- #_pickle _pickle.c    # pickle accelerator
- #datetime datetimemodule.c    # date/time type
--#_bisect _bisectmodule.c      # Bisection algorithms
-+_bisect _bisectmodule.c       # Bisection algorithms
--#unicodedata unicodedata.c    # static Unicode character database
-+unicodedata unicodedata.c    # static Unicode character database
- # access to ISO C locale support
--#_locale _localemodule.c  # -lintl
-+_locale _localemodule.c  # -lintl
- # Standard I/O baseline
- #_io -I$(srcdir)/Modules/_io _io/bufferedio.c _io/bytesio.c _io/fileio.c _io/iobase.c _io/_iomodule.c _io/stringio.c _io/textio.c
- # Modules with some UNIX dependencies -- on by default:
- # (If you have a really backward UNIX, select and socket may not be
- # supported...)
--#fcntl fcntlmodule.c  # fcntl(2) and ioctl(2)
--#spwd spwdmodule.c            # spwd(3) 
--#grp grpmodule.c              # grp(3)
--#select selectmodule.c        # select(2); not on ancient System V
-+fcntl fcntlmodule.c   # fcntl(2) and ioctl(2)
-+spwd spwdmodule.c             # spwd(3) 
-+grp grpmodule.c               # grp(3)
-+select selectmodule.c # select(2); not on ancient System V
- # Memory-mapped files (also works on Win32).
--#mmap mmapmodule.c
-+mmap mmapmodule.c
- # CSV file helper
--#_csv _csv.c
-+_csv _csv.c
- # Socket module helper for socket(2)
--#_socket socketmodule.c timemodule.c
-+_socket socketmodule.c timemodule.c
- # Socket module helper for SSL support; you must comment out the other
- # socket line above, and possibly edit the SSL variable:
- #SSL=/usr/local/ssl
--#_ssl _ssl.c \
--#     -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
--#     -L$(SSL)/lib -lssl -lcrypto
-+_ssl _ssl.c \
-+      -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-+      -L$(SSL)/lib -lssl -lcrypto
- # The crypt module is now disabled by default because it breaks builds
- # on many systems (where -lcrypt is needed), e.g. Linux (I believe).
- #
- # First, look at Setup.config; configure may have set this for you.
--#crypt cryptmodule.c # -lcrypt        # crypt(3); needs -lcrypt on some systems
-+crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
- # Some more UNIX dependent modules -- off by default, since these
- # are not supported by all UNIX systems:
--#nis nismodule.c -lnsl        # Sun yellow pages -- not everywhere
--#termios termios.c    # Steen Lumholt's termios module
--#resource resource.c  # Jeremy Hylton's rlimit interface
-+#nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib/nsl
-+termios termios.c     # Steen Lumholt's termios module
-+resource resource.c   # Jeremy Hylton's rlimit interface
- # Multimedia modules -- off by default.
-@@ -238,8 +238,8 @@ GLHACK=-Dclear=__GLclear
- # #993173 says audioop works on 64-bit platforms, though.
- # These represent audio samples or images as strings:
--#audioop audioop.c    # Operations on audio samples
--#imageop imageop.c    # Operations on images
-+audioop audioop.c     # Operations on audio samples
-+imageop imageop.c     # Operations on images
- # Note that the _md5 and _sha modules are normally only built if the
-@@ -249,14 +249,14 @@ GLHACK=-Dclear=__GLclear
- # Message-Digest Algorithm, described in RFC 1321.  The necessary files
- # md5.c and md5.h are included here.
--#_md5 md5module.c md5.c
-+_md5 md5module.c md5.c
- # The _sha module implements the SHA checksum algorithms.
- # (NIST's Secure Hash Algorithms.)
--#_sha shamodule.c
--#_sha256 sha256module.c
--#_sha512 sha512module.c
-+_sha shamodule.c
-+_sha256 sha256module.c
-+_sha512 sha512module.c
- # SGI IRIX specific modules -- off by default.
-@@ -303,12 +303,12 @@ GLHACK=-Dclear=__GLclear
- # A Linux specific module -- off by default; this may also work on 
- # some *BSDs.
--#linuxaudiodev linuxaudiodev.c
-+linuxaudiodev linuxaudiodev.c
- # George Neville-Neil's timing module:
--#timing timingmodule.c
-+timing timingmodule.c
- # The _tkinter module.
-@@ -352,7 +352,7 @@ GLHACK=-Dclear=__GLclear
- # *** Uncomment for AIX:
- #     -lld \
- # *** Always uncomment this; X11 libraries to link with:
--#     -lX11
-+      -lX11
- # Lance Ellinghaus's syslog module
- #syslog syslogmodule.c                # syslog daemon interface
-@@ -374,7 +374,7 @@ GLHACK=-Dclear=__GLclear
- # it is a highly experimental and dangerous device for calling
- # *arbitrary* C functions in *arbitrary* shared libraries:
--#dl dlmodule.c
-+dl dlmodule.c
- # Modules that provide persistent dictionary-like semantics.  You will
-@@ -397,7 +397,7 @@ GLHACK=-Dclear=__GLclear
- #
- # First, look at Setup.config; configure may have set this for you.
--#gdbm gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
-+gdbm gdbmmodule.c -lgdbm
- # Sleepycat Berkeley DB interface.
-@@ -412,11 +412,9 @@ GLHACK=-Dclear=__GLclear
- #
- # Edit the variables DB and DBLIBVERto point to the db top directory
- # and the subdirectory of PORT where you built it.
--#DB=/usr/local/BerkeleyDB.4.0
--#DBLIBVER=4.0
--#DBINC=$(DB)/include
--#DBLIB=$(DB)/lib
--#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
-+DBINC=/usr/include/libdb
-+DBLIB=/usr/lib
-+_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb
- # Historical Berkeley DB 1.85
- #
-@@ -431,14 +430,14 @@ GLHACK=-Dclear=__GLclear
- # Helper module for various ascii-encoders
--#binascii binascii.c
-+binascii binascii.c
- # Fred Drake's interface to the Python parser
--#parser parsermodule.c
-+parser parsermodule.c
- # cStringIO and cPickle
--#cStringIO cStringIO.c
--#cPickle cPickle.c
-+cStringIO cStringIO.c
-+cPickle cPickle.c
- # Lee Busby's SIGFPE modules.
-@@ -461,7 +460,7 @@ GLHACK=-Dclear=__GLclear
- # 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)/lib -lz
- # Interface to the Expat XML parser
- #
-@@ -480,14 +479,14 @@ GLHACK=-Dclear=__GLclear
- # Hye-Shik Chang's CJKCodecs
- # multibytecodec is required for all the other CJK codec modules
--#_multibytecodec cjkcodecs/multibytecodec.c
-+_multibytecodec cjkcodecs/multibytecodec.c
--#_codecs_cn cjkcodecs/_codecs_cn.c
--#_codecs_hk cjkcodecs/_codecs_hk.c
--#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
--#_codecs_jp cjkcodecs/_codecs_jp.c
--#_codecs_kr cjkcodecs/_codecs_kr.c
--#_codecs_tw cjkcodecs/_codecs_tw.c
-+_codecs_cn cjkcodecs/_codecs_cn.c
-+_codecs_hk cjkcodecs/_codecs_hk.c
-+_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
-+_codecs_jp cjkcodecs/_codecs_jp.c
-+_codecs_kr cjkcodecs/_codecs_kr.c
-+_codecs_tw cjkcodecs/_codecs_tw.c
- # Example -- included for reference only:
- # xx xxmodule.c
diff --git a/python/patches/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch b/python/patches/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
deleted file mode 100644 (file)
index bb38281..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up Python-2.7.1/Lib/test/test_abc.py.cache_leak Python-2.7.1/Lib/test/test_abc.py
---- Python-2.7.1/Lib/test/test_abc.py.cache_leak       2010-12-28 18:06:35.551938356 -0500
-+++ Python-2.7.1/Lib/test/test_abc.py  2010-12-28 18:09:09.021059202 -0500
-@@ -3,6 +3,8 @@
- """Unit tests for abc.py."""
-+import sys
-+
- import unittest, weakref
- from test import test_support
-@@ -229,8 +231,12 @@ class TestABC(unittest.TestCase):
-         # Trigger cache.
-         C().f()
-         del C
--        test_support.gc_collect()
--        self.assertEqual(r(), None)
-+        # This doesn't work in our debug build, presumably due to its use
-+        # of COUNT_ALLOCS, which makes heap-allocated types immortal (once
-+        # they've ever had an instance):
-+        if not hasattr(sys, 'getcounts'):
-+            test_support.gc_collect()
-+            self.assertEqual(r(), None)
- def test_main():
-     test_support.run_unittest(TestABC)
diff --git a/python/patches/python-2.7.2-add-extension-suffix-to-python-config.patch b/python/patches/python-2.7.2-add-extension-suffix-to-python-config.patch
deleted file mode 100644 (file)
index d1ff052..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up Python-2.7.2/Misc/python-config.in.add-extension-suffix-to-python-config Python-2.7.2/Misc/python-config.in
---- Python-2.7.2/Misc/python-config.in.add-extension-suffix-to-python-config   2011-08-23 18:15:41.832497124 -0400
-+++ Python-2.7.2/Misc/python-config.in 2011-08-23 18:17:25.854490011 -0400
-@@ -6,7 +6,7 @@ import getopt
- from distutils import sysconfig
- valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
--              'ldflags', 'help']
-+              'ldflags', 'extension-suffix', 'help']
- def exit_with_usage(code=1):
-     print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
-@@ -54,3 +54,5 @@ for opt in opt_flags:
-                 libs.extend(getvar('LINKFORSHARED').split())
-         print ' '.join(libs)
-+    elif opt == '--extension-suffix':
-+        print (sys.pydebug and "_d" or "") + sysconfig.get_config_var('SO')
diff --git a/python/patches/python-2.7rc1-socketmodule-constants.patch b/python/patches/python-2.7rc1-socketmodule-constants.patch
deleted file mode 100644 (file)
index c32e103..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
---- Python-2.7rc1/Modules/socketmodule.c.socketmodule  2010-05-09 10:46:46.000000000 -0400
-+++ Python-2.7rc1/Modules/socketmodule.c       2010-06-07 23:04:19.374234780 -0400
-@@ -4783,6 +4783,61 @@ init_socket(void)
-     PyModule_AddIntConstant(m, "SO_SETFIB", SO_SETFIB);
- #endif
-+#ifdef        SO_SNDBUFFORCE
-+    PyModule_AddIntConstant(m, "SO_SNDBUFFORCE", SO_SNDBUFFORCE);
-+#endif
-+#ifdef        SO_RCVBUFFORCE
-+    PyModule_AddIntConstant(m, "SO_RCVBUFFORCE", SO_RCVBUFFORCE);
-+#endif
-+#ifdef        SO_NO_CHECK
-+    PyModule_AddIntConstant(m, "SO_NO_CHECK", SO_NO_CHECK);
-+#endif
-+#ifdef        SO_PRIORITY
-+    PyModule_AddIntConstant(m, "SO_PRIORITY", SO_PRIORITY);
-+#endif
-+#ifdef        SO_BSDCOMPAT
-+    PyModule_AddIntConstant(m, "SO_BSDCOMPAT", SO_BSDCOMPAT);
-+#endif
-+#ifdef        SO_PASSCRED
-+    PyModule_AddIntConstant(m, "SO_PASSCRED", SO_PASSCRED);
-+#endif
-+#ifdef        SO_PEERCRED
-+    PyModule_AddIntConstant(m, "SO_PEERCRED", SO_PEERCRED);
-+#endif
-+#ifdef        SO_SECURITY_AUTHENTICATION
-+    PyModule_AddIntConstant(m, "SO_SECURITY_AUTHENTICATION", SO_SECURITY_AUTHENTICATION);
-+#endif
-+#ifdef        SO_SECURITY_ENCRYPTION_TRANSPORT
-+    PyModule_AddIntConstant(m, "SO_SECURITY_ENCRYPTION_TRANSPORT", SO_SECURITY_ENCRYPTION_TRANSPORT);
-+#endif
-+#ifdef        SO_SECURITY_ENCRYPTION_NETWORK
-+    PyModule_AddIntConstant(m, "SO_SECURITY_ENCRYPTION_NETWORK", SO_SECURITY_ENCRYPTION_NETWORK);
-+#endif
-+#ifdef        SO_BINDTODEVICE
-+    PyModule_AddIntConstant(m, "SO_BINDTODEVICE", SO_BINDTODEVICE);
-+#endif
-+#ifdef        SO_ATTACH_FILTER
-+    PyModule_AddIntConstant(m, "SO_ATTACH_FILTER", SO_ATTACH_FILTER);
-+#endif
-+#ifdef        SO_DETACH_FILTER
-+    PyModule_AddIntConstant(m, "SO_DETACH_FILTER", SO_DETACH_FILTER);
-+#endif
-+#ifdef        SO_PEERNAME
-+    PyModule_AddIntConstant(m, "SO_PEERNAME", SO_PEERNAME);
-+#endif
-+#ifdef        SO_TIMESTAMP
-+    PyModule_AddIntConstant(m, "SO_TIMESTAMP", SO_TIMESTAMP);
-+#endif
-+#ifdef        SO_PEERSEC
-+    PyModule_AddIntConstant(m, "SO_PEERSEC", SO_PEERSEC);
-+#endif
-+#ifdef        SO_PASSSEC
-+    PyModule_AddIntConstant(m, "SO_PASSSEC", SO_PASSSEC);
-+#endif
-+#ifdef        SO_TIMESTAMPNS
-+    PyModule_AddIntConstant(m, "SO_TIMESTAMPNS", SO_TIMESTAMPNS);
-+#endif
-+
-     /* Maximum number of connections for "listen" */
- #ifdef  SOMAXCONN
-     PyModule_AddIntConstant(m, "SOMAXCONN", SOMAXCONN);
diff --git a/python/patches/python-2.7rc1-socketmodule-constants2.patch b/python/patches/python-2.7rc1-socketmodule-constants2.patch
deleted file mode 100644 (file)
index 896ac88..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up Python-2.7rc1/Modules/socketmodule.c.socketmodule2 Python-2.7rc1/Modules/socketmodule.c
---- Python-2.7rc1/Modules/socketmodule.c.socketmodule2 2010-06-07 23:06:59.133498087 -0400
-+++ Python-2.7rc1/Modules/socketmodule.c       2010-06-07 23:11:51.249520087 -0400
-@@ -5253,6 +5253,15 @@ init_socket(void)
- #ifdef  TCP_QUICKACK
-     PyModule_AddIntConstant(m, "TCP_QUICKACK", TCP_QUICKACK);
- #endif
-+#ifdef        TCP_CONGESTION
-+    PyModule_AddIntConstant(m, "TCP_CONGESTION", TCP_CONGESTION);
-+#endif
-+#ifdef        TCP_MD5SIG
-+    PyModule_AddIntConstant(m, "TCP_MD5SIG", TCP_MD5SIG);
-+#endif
-+#ifdef        TCP_MD5SIG_MAXKEYLEN
-+    PyModule_AddIntConstant(m, "TCP_MD5SIG_MAXKEYLEN", TCP_MD5SIG_MAXKEYLEN);
-+#endif
-     /* IPX options */
diff --git a/python/python-2.7-lib64-sysconfig.patch b/python/python-2.7-lib64-sysconfig.patch
deleted file mode 100644 (file)
index 0cef361..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up Python-2.7/Lib/sysconfig.py.lib64-sysconfig Python-2.7/Lib/sysconfig.py
---- Python-2.7/Lib/sysconfig.py.lib64-sysconfig        2010-07-08 14:18:41.386898476 -0400
-+++ Python-2.7/Lib/sysconfig.py        2010-07-08 14:22:02.837896461 -0400
-@@ -7,20 +7,20 @@ from os.path import pardir, realpath
- _INSTALL_SCHEMES = {
-     'posix_prefix': {
--        'stdlib': '{base}/lib/python{py_version_short}',
--        'platstdlib': '{platbase}/lib/python{py_version_short}',
-+        'stdlib': '{base}/lib64/python{py_version_short}',
-+        'platstdlib': '{platbase}/lib64/python{py_version_short}',
-         'purelib': '{base}/lib/python{py_version_short}/site-packages',
--        'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
-+        'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
-         'include': '{base}/include/python{py_version_short}',
-         'platinclude': '{platbase}/include/python{py_version_short}',
-         'scripts': '{base}/bin',
-         'data': '{base}',
-         },
-     'posix_home': {
--        'stdlib': '{base}/lib/python',
--        'platstdlib': '{base}/lib/python',
-+        'stdlib': '{base}/lib64/python',
-+        'platstdlib': '{base}/lib64/python',
-         'purelib': '{base}/lib/python',
--        'platlib': '{base}/lib/python',
-+        'platlib': '{base}/lib64/python',
-         'include': '{base}/include/python',
-         'platinclude': '{base}/include/python',
-         'scripts': '{base}/bin',
-@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
-         'data'   : '{userbase}',
-         },
-     'posix_user': {
--        'stdlib': '{userbase}/lib/python{py_version_short}',
--        'platstdlib': '{userbase}/lib/python{py_version_short}',
-+        'stdlib': '{userbase}/lib64/python{py_version_short}',
-+        'platstdlib': '{userbase}/lib64/python{py_version_short}',
-         'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
--        'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
-+        'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
-         'include': '{userbase}/include/python{py_version_short}',
-         'scripts': '{userbase}/bin',
-         'data'   : '{userbase}',
diff --git a/python/python-2.7.13-lib64.patch b/python/python-2.7.13-lib64.patch
deleted file mode 100644 (file)
index b6d24ab..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
-index b9f1c6c..7b23714 100644
---- a/Lib/distutils/command/install.py
-+++ b/Lib/distutils/command/install.py
-@@ -42,14 +42,14 @@ else:
- INSTALL_SCHEMES = {
-     'unix_prefix': {
-         'purelib': '$base/lib/python$py_version_short/site-packages',
--        'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+        'platlib': '$platbase/lib64/python$py_version_short/site-packages',
-         'headers': '$base/include/python$py_version_short/$dist_name',
-         'scripts': '$base/bin',
-         'data'   : '$base',
-         },
-     'unix_home': {
-         'purelib': '$base/lib/python',
--        'platlib': '$base/lib/python',
-+        'platlib': '$base/lib64/python',
-         'headers': '$base/include/python/$dist_name',
-         'scripts': '$base/bin',
-         'data'   : '$base',
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 068d1ba..3e7f077 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -119,8 +119,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
-         prefix = plat_specific and EXEC_PREFIX or PREFIX
-     if os.name == "posix":
-+        if plat_specific or standard_lib:
-+            lib = "lib64"
-+        else:
-+            lib = "lib"
-         libpython = os.path.join(prefix,
--                                 "lib", "python" + get_python_version())
-+                                 lib, "python" + get_python_version())
-         if standard_lib:
-             return libpython
-         else:
-diff --git a/Lib/site.py b/Lib/site.py
-index c360802..868b7cb 100644
---- a/Lib/site.py
-+++ b/Lib/site.py
-@@ -288,12 +288,16 @@ def getsitepackages():
-         if sys.platform in ('os2emx', 'riscos'):
-             sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
-         elif os.sep == '/':
-+            sitepackages.append(os.path.join(prefix, "lib64",
-+                                        "python" + sys.version[:3],
-+                                        "site-packages"))
-             sitepackages.append(os.path.join(prefix, "lib",
-                                         "python" + sys.version[:3],
-                                         "site-packages"))
-             sitepackages.append(os.path.join(prefix, "lib", "site-python"))
-         else:
-             sitepackages.append(prefix)
-+            sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
-             sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
-     return sitepackages
-diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
-index d9a9324..e411e5c 100644
---- a/Lib/test/test_site.py
-+++ b/Lib/test/test_site.py
-@@ -235,17 +235,20 @@ class HelperFunctionsTests(unittest.TestCase):
-             self.assertEqual(dirs[0], wanted)
-         elif os.sep == '/':
-             # OS X, Linux, FreeBSD, etc
--            self.assertEqual(len(dirs), 2)
--            wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
-+            self.assertEqual(len(dirs), 3)
-+            wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
-                                   'site-packages')
-             self.assertEqual(dirs[0], wanted)
--            wanted = os.path.join('xoxo', 'lib', 'site-python')
-+            wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
-+                                   'site-packages')
-             self.assertEqual(dirs[1], wanted)
-+            wanted = os.path.join('xoxo', 'lib', 'site-python')
-+            self.assertEqual(dirs[2], wanted)
-         else:
-             # other platforms
-             self.assertEqual(len(dirs), 2)
-             self.assertEqual(dirs[0], 'xoxo')
--            wanted = os.path.join('xoxo', 'lib', 'site-packages')
-+            wanted = os.path.join('xoxo', 'lib64', 'site-packages')
-             self.assertEqual(dirs[1], wanted)
- class PthFile(object):
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index adae76b..ecb27f3 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -111,7 +111,7 @@ LIBDIR=            @libdir@
- MANDIR=               @mandir@
- INCLUDEDIR=   @includedir@
- CONFINCLUDEDIR=       $(exec_prefix)/include
--SCRIPTDIR=    $(prefix)/lib
-+SCRIPTDIR=    $(prefix)/lib64
- # Detailed destination directories
- BINLIBDEST=   $(LIBDIR)/python$(VERSION)
-diff --git a/Modules/Setup.dist b/Modules/Setup.dist
-index fbfa1c1..138fb33 100644
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -231,7 +231,7 @@
- # Some more UNIX dependent modules -- off by default, since these
- # are not supported by all UNIX systems:
--#nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib/nsl
-+#nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib64/nsl
- termios termios.c     # Steen Lumholt's termios module
- resource resource.c   # Jeremy Hylton's rlimit interface
-@@ -416,7 +416,7 @@ gdbm gdbmmodule.c -lgdbm
- # Edit the variables DB and DBLIBVERto point to the db top directory
- # and the subdirectory of PORT where you built it.
- DBINC=/usr/include/libdb
--DBLIB=/usr/lib
-+DBLIB=/usr/lib64
- _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb
- # Historical Berkeley DB 1.85
-@@ -462,7 +462,7 @@ cPickle cPickle.c
- # 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)/lib64 -lz
- # Interface to the Expat XML parser
- #
-diff --git a/Modules/getpath.c b/Modules/getpath.c
-index fd33a01..c5c86fd 100644
---- a/Modules/getpath.c
-+++ b/Modules/getpath.c
-@@ -108,7 +108,7 @@ static char prefix[MAXPATHLEN+1];
- 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[] = "lib64/python" VERSION;
- static void
- reduce(char *dir)
-@@ -548,7 +548,7 @@ calculate_path(void)
-             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, "lib64/lib-dynload");
-     }
-     /* If we found EXEC_PREFIX do *not* reduce it!  (Yet.) */
-diff --git a/setup.py b/setup.py
-index 99ac359..859b6c4 100644
---- a/setup.py
-+++ b/setup.py
-@@ -456,7 +456,7 @@ class PyBuildExt(build_ext):
-     def detect_modules(self):
-         # Ensure that /usr/local is always used
-         if not cross_compiling:
--            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
-             add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-         if cross_compiling:
-             self.add_gcc_paths()
-@@ -782,11 +782,11 @@ class PyBuildExt(build_ext):
-             elif curses_library:
-                 readline_libs.append(curses_library)
-             elif self.compiler.find_library_file(lib_dirs +
--                                                     ['/usr/lib/termcap'],
-+                                                     ['/usr/lib64/termcap'],
-                                                      'termcap'):
-                 readline_libs.append('termcap')
-             exts.append( Extension('readline', ['readline.c'],
--                                   library_dirs=['/usr/lib/termcap'],
-+                                   library_dirs=['/usr/lib64/termcap'],
-                                    extra_link_args=readline_extra_link_args,
-                                    libraries=readline_libs) )
-         else:
-@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
-             if krb5_h:
-                 ssl_incs += krb5_h
-         ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
--                                     ['/usr/local/ssl/lib',
--                                      '/usr/contrib/ssl/lib/'
-+                                     ['/usr/local/ssl/lib64',
-+                                      '/usr/contrib/ssl/lib64/'
-                                      ] )
-         if (ssl_incs is not None and
diff --git a/python/python.nm b/python/python.nm
deleted file mode 100644 (file)
index b312f8b..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-###############################################################################
-# IPFire.org    - An Open Source Firewall Solution                            #
-# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
-###############################################################################
-
-name       = python
-major_ver  = 2.7
-version    = %{major_ver}.15
-release    = 1
-thisapp    = Python-%{version}
-
-groups     = Development/Languages
-url        = http://www.python.org
-license    = Python
-summary    = An interpreted, interactive, object-oriented programming language.
-
-description
-       Python is an interpreted, interactive, object-oriented programming
-       language often compared to Tcl, Perl, Scheme or Java. Python includes
-       modules, classes, exceptions, very high level dynamic data types and
-       dynamic typing. Python supports interfaces to many system calls and
-       libraries, as well as to various windowing systems.
-end
-
-source_dl  = http://python.org/ftp/python/%{version}/
-sources    = %{thisapp}.tar.xz
-
-build
-       requires
-               autoconf
-               automake
-               bzip2-devel
-               expat-devel
-               gdbm-devel
-               glibc-headers >= 2.16-4
-               libdb-devel
-               libffi-devel
-               ncurses-devel
-               openssl-devel
-               pakfire-builder >= 0.9.23-4
-               readline-devel
-               sqlite-devel
-               tar
-               util-linux
-               zlib-devel
-       end
-
-       export CFLAGS  += -D_GNU_SOURCE -fwrapv
-       export CPPFLAGS = %(pkg-config --cflags-only-I libffi)
-       export OPT      = %{CFLAGS}
-       export CC       = gcc
-       export LINKCC   = gcc
-
-       if "%{lib}" == "lib64"
-               patches += %{DIR_SOURCE}/python-2.7.13-lib64.patch
-               patches += %{DIR_SOURCE}/python-2.7-lib64-sysconfig.patch
-       end
-
-       prepare_cmds
-               # Remove embedded copies of expat, zlib and libffi
-               rm -rf Modules/{expat,zlib}
-               rm -rf Modules/_ctypes/{darwin,libffi,libffi_arm_wince,libffi_msvc,libffi_osx}
-
-               # Reconfigure
-               autoreconf --force
-       end
-
-       configure_options += \
-               --enable-ipv6 \
-               --enable-unicode=ucs4 \
-               --with-system-expat \
-               --with-system-ffi \
-               --enable-shared
-
-       test
-               WITHIN_PYTHON_RPM_BUILD= EXTRATESTOPTS="--verbose" make test || :
-       end
-
-       install_cmds
-               # All *.py files don't need to be executeable...
-               find %{BUILDROOT}%{libdir}/python*/ -name "*.py" | xargs -r chmod a-x -v
-
-               # Create symlink for shared lib.
-               ln -svf ../../libpython%{major_ver}.so %{BUILDROOT}%{libdir}/python%{major_ver}/config/
-       end
-end
-
-packages
-       package %{name}
-               # Define python-abi manually.
-               provides
-                       python-abi = %{major_ver}
-               end
-       end
-
-       package %{name}-devel
-               template DEVEL
-
-               files += \
-                       !%{libdir}/python*/config/Makefile \
-                       !%{includedir}/python*/pyconfig.h
-       end
-
-       package %{name}-debuginfo
-               template DEBUGINFO
-       end
-end