diff --git a/00001-rpath.patch b/00001-rpath.patch index 9fae54c..603de5a 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,7 +1,18 @@ -diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py ---- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath 2009-09-04 17:29:34.000000000 -0400 -+++ Python-3.1.1/Lib/distutils/unixccompiler.py 2009-09-04 17:49:54.000000000 -0400 -@@ -141,6 +141,15 @@ class UnixCCompiler(CCompiler): +From 58f42c48820aad45515d216f85c787a47a267f43 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Wed, 13 Jan 2010 21:25:18 +0000 +Subject: [PATCH] 00001: Fixup distutils/unixccompiler.py to remove standard + library path from rpath Was Patch0 in ivazquez' python3000 specfile + +--- + Lib/distutils/unixccompiler.py | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py +index 3f321c28dc..e3a3de32f8 100644 +--- a/Lib/distutils/unixccompiler.py ++++ b/Lib/distutils/unixccompiler.py +@@ -82,6 +82,15 @@ class UnixCCompiler(CCompiler): if sys.platform == "cygwin": exe_extension = ".exe" @@ -17,3 +28,6 @@ diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/dist def preprocess(self, source, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None): fixed_args = self._fix_compile_args(None, macros, include_dirs) +-- +2.26.2 + diff --git a/00102-lib64.patch b/00102-lib64.patch index 6111c0f..934df85 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,5 +1,38 @@ +From ebc5fe22f601bf88d506e13aa795f90e83075673 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Wed, 13 Jan 2010 21:25:18 +0000 +Subject: [PATCH] 00102: Change the various install paths to use /usr/lib64/ + instead or /usr/lib/ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Only used when "%{_lib}" == "lib64". + +Co-authored-by: David Malcolm +Co-authored-by: Thomas Spura +Co-authored-by: Slavek Kabrda +Co-authored-by: Matej Stuchlik +Co-authored-by: Tomas Orsava +Co-authored-by: Charalampos Stratakis +Co-authored-by: Petr Viktorin +Co-authored-by: Miro Hrončok +Co-authored-by: Iryna Shcherbina +--- + Lib/distutils/command/install.py | 4 ++-- + Lib/distutils/sysconfig.py | 6 +++++- + Lib/distutils/tests/test_install.py | 3 ++- + Lib/site.py | 4 ++++ + Lib/sysconfig.py | 12 ++++++------ + Lib/test/test_site.py | 4 ++-- + Makefile.pre.in | 2 +- + Modules/getpath.c | 6 +++--- + configure.ac | 4 ++-- + setup.py | 10 +++++----- + 10 files changed, 32 insertions(+), 23 deletions(-) + diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index 9474e9c..c0ce4c6 100644 +index 0258d3deae..4b969bf809 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -30,14 +30,14 @@ WINDOWS_SCHEME = { @@ -20,10 +53,10 @@ index 9474e9c..c0ce4c6 100644 'scripts': '$base/bin', 'data' : '$base', diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 026cca7..6d3e077 100644 +index 2bcd1dd288..ff0b131df2 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -132,8 +132,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -129,8 +129,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": @@ -37,10 +70,11 @@ index 026cca7..6d3e077 100644 if standard_lib: return libpython else: -diff a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py +diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py +index 287ab1989e..d4c05e0ab1 100644 --- a/Lib/distutils/tests/test_install.py +++ b/Lib/distutils/tests/test_install.py -@@ -57,8 +57,9 @@ +@@ -57,8 +57,9 @@ class InstallTestCase(support.TempdirManager, self.assertEqual(got, expected) libdir = os.path.join(destination, "lib", "python") @@ -52,10 +86,10 @@ diff a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py check_path(cmd.install_headers, os.path.join(destination, "include", "python", "foopkg")) diff --git a/Lib/site.py b/Lib/site.py -index a84e3bb..ba0d3ea 100644 +index 86ca2dba61..58115f1c08 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None): +@@ -304,11 +304,15 @@ def getsitepackages(prefixes=None): seen.add(prefix) if os.sep == '/': @@ -72,7 +106,7 @@ index a84e3bb..ba0d3ea 100644 if sys.platform == "darwin": # for framework builds *only* we add the standard Apple diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index b9bbfe5..2a5f29c 100644 +index 9314e71a2f..8168e9c5a9 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -20,10 +20,10 @@ __all__ = [ @@ -104,10 +138,10 @@ index b9bbfe5..2a5f29c 100644 'scripts': '{userbase}/bin', 'data': '{userbase}', diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py -index f698927..bc977b5 100644 +index 6964a84933..d0cd84f1ae 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py -@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase): +@@ -264,8 +264,8 @@ class HelperFunctionsTests(unittest.TestCase): self.assertEqual(dirs[1], wanted) elif os.sep == '/': # OS X non-framework builds, Linux, FreeBSD, etc @@ -119,10 +153,10 @@ index f698927..bc977b5 100644 'site-packages') self.assertEqual(dirs[0], wanted) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 8fa7934..a693917 100644 +index d15d93509d..9cd482fc38 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -126,7 +126,7 @@ LIBDIR= @libdir@ +@@ -139,7 +139,7 @@ LIBDIR= @libdir@ MANDIR= @mandir@ INCLUDEDIR= @includedir@ CONFINCLUDEDIR= $(exec_prefix)/include @@ -132,7 +166,7 @@ index 8fa7934..a693917 100644 # Detailed destination directories diff --git a/Modules/getpath.c b/Modules/getpath.c -index 65b47a3..eaa756c 100644 +index dd3387a9d7..1258fcd395 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -494,7 +494,7 @@ calculate_path(void) @@ -162,11 +196,27 @@ index 65b47a3..eaa756c 100644 } /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ +diff --git a/configure.ac b/configure.ac +index cf280506bd..7bf4c6fb4c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4771,9 +4771,9 @@ AC_MSG_RESULT($LDVERSION) + dnl define LIBPL after ABIFLAGS and LDVERSION is defined. + AC_SUBST(PY_ENABLE_SHARED) + if test x$PLATFORM_TRIPLET = x; then +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" + else +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + fi + AC_SUBST(LIBPL) + diff --git a/setup.py b/setup.py -index 0f2dfc4..da37896 100644 +index e2c1898253..64d948d79c 100644 --- a/setup.py +++ b/setup.py -@@ -492,7 +492,7 @@ class PyBuildExt(build_ext): +@@ -521,7 +521,7 @@ class PyBuildExt(build_ext): # directories (i.e. '.' and 'Include') must be first. See issue # 10520. if not cross_compiling: @@ -175,7 +225,7 @@ index 0f2dfc4..da37896 100644 add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') # only change this for cross builds for 3.3, issues on Mageia if cross_compiling: -@@ -780,11 +780,11 @@ class PyBuildExt(build_ext): +@@ -818,11 +818,11 @@ class PyBuildExt(build_ext): elif curses_library: readline_libs.append(curses_library) elif self.compiler.find_library_file(lib_dirs + @@ -189,7 +239,7 @@ index 0f2dfc4..da37896 100644 extra_link_args=readline_extra_link_args, libraries=readline_libs) ) else: -@@ -821,8 +821,8 @@ class PyBuildExt(build_ext): +@@ -859,8 +859,8 @@ class PyBuildExt(build_ext): if krb5_h: ssl_incs += krb5_h ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, @@ -200,19 +250,6 @@ index 0f2dfc4..da37896 100644 ] ) if (ssl_incs is not None and -diff --git a/configure.ac b/configure.ac -index 01c66fe..1e6d515 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4772,9 +4772,9 @@ AC_MSG_RESULT($LDVERSION) - dnl define LIBPL after ABIFLAGS and LDVERSION is defined. - AC_SUBST(PY_ENABLE_SHARED) - if test x$PLATFORM_TRIPLET = x; then -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" - else -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" - fi - AC_SUBST(LIBPL) +-- +2.26.2 diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index aa8cdc0..7b71bff 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,5 +1,27 @@ +From 6b5abb117f6e665a34e901ba7ee50a1a8decdb34 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Mon, 18 Jan 2010 17:59:07 +0000 +Subject: [PATCH] 00111: Don't try to build a libpythonMAJOR.MINOR.a +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Downstream only: not appropriate for upstream. + +See https://bugzilla.redhat.com/show_bug.cgi?id=556092 + +Co-authored-by: David Malcolm +Co-authored-by: Bohuslav Kabrda +Co-authored-by: Matej Stuchlik +Co-authored-by: Robert Kuska +Co-authored-by: Charalampos Stratakis +Co-authored-by: Miro Hrončok +--- + Makefile.pre.in | 21 ++------------------- + 1 file changed, 2 insertions(+), 19 deletions(-) + diff --git a/Makefile.pre.in b/Makefile.pre.in -index 9cd482f..b074b26 100644 +index 9cd482fc38..b074b26039 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -549,7 +549,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c @@ -51,3 +73,6 @@ index 9cd482f..b074b26 100644 $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in +-- +2.26.2 + diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch index 77dc6ec..536fa98 100644 --- a/00132-add-rpmbuild-hooks-to-unittest.patch +++ b/00132-add-rpmbuild-hooks-to-unittest.patch @@ -1,6 +1,46 @@ -diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py ---- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400 -+++ Python-3.2.2/Lib/unittest/case.py 2011-09-09 06:35:16.365568382 -0400 +From 99f5b37ff4e1a98d3672f15afb741bfe12c9361e Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Fri, 19 Jun 2020 16:54:05 +0200 +Subject: [PATCH] 00132: Add rpmbuild hooks to unittest + +Add non-standard hooks to unittest for use in the "check" phase, when +running selftests within the build: + @unittest._skipInRpmBuild(reason) +for tests that hang or fail intermittently within the build environment, and: + @unittest._expectedFailureInRpmBuild +for tests that always fail within the build environment + +The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the +environment, which we set manually in the appropriate portion of the "check" +phase below (and which potentially other python-* rpms could set, to reuse +these unittest hooks in their own "check" phases) + +Co-Authored-By: David Malcolm +Co-Authored-By: Bohuslav Kabrda +Co-Authored-By: Robert Kuska +--- + Lib/unittest/__init__.py | 3 ++- + Lib/unittest/case.py | 17 +++++++++++++++++ + 2 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py +index c55d563e0c..79c4b10681 100644 +--- a/Lib/unittest/__init__.py ++++ b/Lib/unittest/__init__.py +@@ -57,7 +57,8 @@ __unittest = True + + from .result import TestResult + from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf, +- skipUnless, expectedFailure) ++ skipUnless, expectedFailure, ++ _skipInRpmBuild) + from .suite import BaseTestSuite, TestSuite + from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, + findTestCases) +diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py +index 402fa47f28..8329d47882 100644 +--- a/Lib/unittest/case.py ++++ b/Lib/unittest/case.py @@ -3,6 +3,7 @@ import sys import functools @@ -9,7 +49,8 @@ diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python import logging import pprint import re -@@ -101,5 +102,21 @@ def expectedFailure(func): +@@ -134,6 +135,22 @@ class _BaseTestCaseContext: + msg = self.test_case._formatMessage(self.msg, standardMsg) raise self.test_case.failureException(msg) +# Non-standard/downstream-only hooks for handling issues with specific test @@ -31,16 +72,6 @@ diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python class _AssertRaisesBaseContext(_BaseTestCaseContext): def __init__(self, expected, test_case, expected_regex=None): -diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py ---- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400 -+++ Python-3.2.2/Lib/unittest/__init__.py 2011-09-09 06:35:16.366568382 -0400 -@@ -57,7 +57,8 @@ __unittest = True - - from .result import TestResult - from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf, -- skipUnless, expectedFailure) -+ skipUnless, expectedFailure, -+ _skipInRpmBuild) - from .suite import BaseTestSuite, TestSuite - from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, - findTestCases) +-- +2.26.2 + diff --git a/00155-avoid-ctypes-thunks.patch b/00155-avoid-ctypes-thunks.patch index f03890e..ebeb4a6 100644 --- a/00155-avoid-ctypes-thunks.patch +++ b/00155-avoid-ctypes-thunks.patch @@ -1,7 +1,22 @@ -diff -up Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 Python-3.2.3/Lib/ctypes/__init__.py ---- Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 2012-04-20 15:12:49.017867692 -0400 -+++ Python-3.2.3/Lib/ctypes/__init__.py 2012-04-20 15:15:09.501111408 -0400 -@@ -275,11 +275,6 @@ def _reset_cache(): +From 72c7d5be3893e3b77701c77c84247ea0062dd089 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Fri, 19 Jun 2020 16:02:24 +0200 +Subject: [PATCH] 00155: avoid allocating thunks in ctypes unless absolutely + necessary + +Avoid allocating thunks in ctypes unless absolutely necessary, to avoid +generating SELinux denials on "import ctypes" and "import uuid" when +embedding Python within httpd +See https://bugzilla.redhat.com/show_bug.cgi?id=814391 +--- + Lib/ctypes/__init__.py | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py +index f8709683fb..2ffe440150 100644 +--- a/Lib/ctypes/__init__.py ++++ b/Lib/ctypes/__init__.py +@@ -266,11 +266,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 @@ -13,3 +28,6 @@ diff -up Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 Python-3.2.3/Lib/ctypes/ def create_unicode_buffer(init, size=None): """create_unicode_buffer(aString) -> character array +-- +2.26.2 + diff --git a/00160-disable-test_fs_holes-in-rpm-build.patch b/00160-disable-test_fs_holes-in-rpm-build.patch index 9fa91d5..4d4a5d6 100644 --- a/00160-disable-test_fs_holes-in-rpm-build.patch +++ b/00160-disable-test_fs_holes-in-rpm-build.patch @@ -1,7 +1,21 @@ -diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build cpython-59223da36dec/Lib/test/test_posix.py ---- cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build 2012-08-07 17:15:59.000000000 -0400 -+++ cpython-59223da36dec/Lib/test/test_posix.py 2012-08-07 17:16:53.528330330 -0400 -@@ -973,6 +973,7 @@ class PosixTester(unittest.TestCase): +From b1a28dd9d73bbf489f49be6c6e2eec530ba489d1 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Fri, 19 Jun 2020 16:57:09 +0200 +Subject: [PATCH] 00160: Disable test_fs_holes in RPM build + +Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the +header files in the build chroot, but may not be supported in the running +kernel, hence we disable this test in an rpm build. +Adding these was upstream issue http://bugs.python.org/issue10142 +--- + Lib/test/test_posix.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py +index 2dae473327..c893ecbdc6 100644 +--- a/Lib/test/test_posix.py ++++ b/Lib/test/test_posix.py +@@ -1235,6 +1235,7 @@ class PosixTester(unittest.TestCase): posix.RTLD_GLOBAL posix.RTLD_LOCAL @@ -9,3 +23,6 @@ diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rp @unittest.skipUnless(hasattr(os, 'SEEK_HOLE'), "test needs an OS that reports file holes") def test_fs_holes(self): +-- +2.26.2 + diff --git a/00163-disable-parts-of-test_socket-in-rpm-build.patch b/00163-disable-parts-of-test_socket-in-rpm-build.patch index 0e28036..5dd79e7 100644 --- a/00163-disable-parts-of-test_socket-in-rpm-build.patch +++ b/00163-disable-parts-of-test_socket-in-rpm-build.patch @@ -1,7 +1,19 @@ -diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds Python-3.3.0b1/Lib/test/test_socket.py ---- Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds 2012-07-24 15:02:30.823355067 -0400 -+++ Python-3.3.0b1/Lib/test/test_socket.py 2012-07-24 15:08:13.021354999 -0400 -@@ -2188,6 +2188,7 @@ class RecvmsgGenericStreamTests(RecvmsgG +From f211c52df798ffad41477dc30b3de2b6442873b6 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Fri, 19 Jun 2020 16:58:24 +0200 +Subject: [PATCH] 00163: Disable parts of test_socket in RPM build + +Some tests within test_socket fail intermittently when run inside Koji; +disable them using unittest._skipInRpmBuild +--- + Lib/test/test_socket.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py +index 95c3938ac2..abb2356f47 100644 +--- a/Lib/test/test_socket.py ++++ b/Lib/test/test_socket.py +@@ -2505,6 +2505,7 @@ class RecvmsgGenericStreamTests(RecvmsgGenericTests): # Tests which require a stream socket and can use either recvmsg() # or recvmsg_into(). @@ -9,3 +21,6 @@ diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-build def testRecvmsgEOF(self): # Receive end-of-stream indicator (b"", peer socket closed). msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, 1024) +-- +2.26.2 + diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch index 18b46b9..ab2a3fb 100644 --- a/00170-gc-assertions.patch +++ b/00170-gc-assertions.patch @@ -1,8 +1,32 @@ +From f4d25a8fcf43f89fb58e6d288e50d993dd84afb6 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Fri, 19 Jun 2020 16:05:07 +0200 +Subject: [PATCH] 00170: In debug builds, try to print repr() when a C-level + assert fails + +In debug builds, try to print repr() when a C-level assert fails in the +garbage collector (typically indicating a reference-counting error +somewhere else e.g in an extension module) +The new macros/functions within gcmodule.c are hidden to avoid exposing +them within the extension API. +Sent upstream: http://bugs.python.org/issue9263 +See https://bugzilla.redhat.com/show_bug.cgi?id=614680 + +Co-Authored-By: David Malcolm +Co-Authored-By: Charalampos Stratakis +Co-Authored-By: Robert Kuska +--- + Include/object.h | 43 ++++++++++++++++++++++++++++++++++++++ + Lib/test/test_gc.py | 50 ++++++++++++++++++++++++++++++++++++++++++++- + Modules/gcmodule.c | 44 +++++++++++++++++++++++---------------- + Objects/object.c | 29 ++++++++++++++++++++++++++ + 4 files changed, 147 insertions(+), 19 deletions(-) + diff --git a/Include/object.h b/Include/object.h -index 63e37b8..613b26c 100644 +index deac940972..fe7469bfb6 100644 --- a/Include/object.h +++ b/Include/object.h -@@ -1071,6 +1071,49 @@ PyAPI_FUNC(void) +@@ -1072,6 +1072,49 @@ PyAPI_FUNC(void) _PyObject_DebugTypeStats(FILE *out); #endif /* ifndef Py_LIMITED_API */ @@ -53,7 +77,7 @@ index 63e37b8..613b26c 100644 } #endif diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py -index 7e82b24..4497b8f 100644 +index 7e82b242da..4497b8f456 100644 --- a/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py @@ -1,10 +1,12 @@ @@ -131,7 +155,7 @@ index 7e82b24..4497b8f 100644 def setUp(self): gc.enable() diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c -index 3bddc40..0cc24f7 100644 +index 3bddc403da..0cc24f7e6c 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -342,7 +342,8 @@ update_refs(PyGC_Head *containers) @@ -270,10 +294,10 @@ index 3bddc40..0cc24f7 100644 return -1; } diff --git a/Objects/object.c b/Objects/object.c -index defff55..a50697d 100644 +index e1a0569ab9..9a28521dc4 100644 --- a/Objects/object.c +++ b/Objects/object.c -@@ -2030,6 +2030,35 @@ _PyTrash_thread_destroy_chain(void) +@@ -2062,6 +2062,35 @@ _PyTrash_thread_destroy_chain(void) } } @@ -309,3 +333,6 @@ index defff55..a50697d 100644 #ifndef Py_TRACE_REFS /* For Py_LIMITED_API, we need an out-of-line version of _Py_Dealloc. Define this here, so we can undefine the macro. */ +-- +2.26.2 + diff --git a/00178-dont-duplicate-flags-in-sysconfig.patch b/00178-dont-duplicate-flags-in-sysconfig.patch index fc49b30..72d665d 100644 --- a/00178-dont-duplicate-flags-in-sysconfig.patch +++ b/00178-dont-duplicate-flags-in-sysconfig.patch @@ -1,7 +1,21 @@ -diff -r 39b9b05c3085 Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py Wed Apr 10 00:27:23 2013 +0200 -+++ b/Lib/distutils/sysconfig.py Wed Apr 10 10:14:18 2013 +0200 -@@ -362,7 +362,10 @@ +From e2f8cf627e31970ddb5134ade1d049ef0a5d8b96 Mon Sep 17 00:00:00 2001 +From: Bohuslav Kabrda +Date: Fri, 19 Jun 2020 16:11:14 +0200 +Subject: [PATCH] 00178: Don't duplicate various FLAGS in sysconfig values + +http://bugs.python.org/issue17679 + +Co-Authored-By: Bohuslav Kabrda +--- + Lib/distutils/sysconfig.py | 5 ++++- + Lib/sysconfig.py | 5 ++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index ff0b131df2..2013efaa8b 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -356,7 +356,10 @@ def parse_makefile(fn, g=None): done[n] = item = "" if found: after = value[m.end():] @@ -13,10 +27,11 @@ diff -r 39b9b05c3085 Lib/distutils/sysconfig.py if "$" in after: notdone[name] = value else: -diff -r 39b9b05c3085 Lib/sysconfig.py ---- a/Lib/sysconfig.py Wed Apr 10 00:27:23 2013 +0200 -+++ b/Lib/sysconfig.py Wed Apr 10 10:14:18 2013 +0200 -@@ -296,7 +296,10 @@ +diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py +index 8168e9c5a9..240bb6608a 100644 +--- a/Lib/sysconfig.py ++++ b/Lib/sysconfig.py +@@ -294,7 +294,10 @@ def _parse_makefile(filename, vars=None): if found: after = value[m.end():] @@ -28,3 +43,6 @@ diff -r 39b9b05c3085 Lib/sysconfig.py if "$" in after: notdone[name] = value else: +-- +2.26.2 + diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index b8e1271..1cb8a3b 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,16 +1,24 @@ +From e4690ff98ff84195368fbc10ac65b9d03e98c35b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Wed, 15 Aug 2018 15:36:29 +0200 +Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels + +We keep them in /usr/share/python-wheels +--- + Lib/ensurepip/__init__.py | 31 ++++++++++++++++++++++--------- + 1 file changed, 22 insertions(+), 9 deletions(-) + diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 4748ba4..fc02255 100644 +index 09c572db71..6dc34e6240 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py -@@ -1,16 +1,31 @@ +@@ -1,3 +1,5 @@ +import distutils.version +import glob import os import os.path --import pkgutil - import sys - import tempfile - + import pkgutil +@@ -7,10 +9,24 @@ import tempfile __all__ = ["version", "bootstrap"] @@ -37,7 +45,8 @@ index 4748ba4..fc02255 100644 _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION), -@@ -94,12 +105,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, +@@ -93,13 +109,10 @@ def _bootstrap(*, root=None, upgrade=False, user=False, + # additional paths that need added to sys.path additional_paths = [] for project, version in _PROJECTS: - wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) @@ -54,3 +63,6 @@ index 4748ba4..fc02255 100644 additional_paths.append(os.path.join(tmpdir, wheel_name)) +-- +2.26.2 + diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 4104449..0e51593 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,11 +1,26 @@ +From b001d1d5f19eb2be1c89fdbb46b592200d6042fb Mon Sep 17 00:00:00 2001 +From: Michal Cyprian +Date: Mon, 26 Jun 2017 16:32:56 +0200 +Subject: [PATCH] 00251: Change user install location + +Set values of prefix and exec_prefix in distutils install command +to /usr/local if executable is /usr/bin/python* and RPM build +is not detected to make pip and distutils install into separate location. + +Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe +--- + Lib/distutils/command/install.py | 15 +++++++++++++-- + Lib/site.py | 9 ++++++++- + 2 files changed, 21 insertions(+), 3 deletions(-) + diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index 0258d3d..4ebf50a 100644 +index 4b969bf809..fa0cde25e3 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -418,8 +418,19 @@ class install(Command): raise DistutilsOptionError( "must not supply exec-prefix without prefix") - + - self.prefix = os.path.normpath(sys.prefix) - self.exec_prefix = os.path.normpath(sys.exec_prefix) + # self.prefix is set to sys.prefix + /local/ @@ -21,16 +36,16 @@ index 0258d3d..4ebf50a 100644 + + self.prefix = os.path.normpath(sys.prefix) + addition + self.exec_prefix = os.path.normpath(sys.exec_prefix) + addition - + else: if self.exec_prefix is None: diff --git a/Lib/site.py b/Lib/site.py -index 0fc9200..c95202e 100644 +index 58115f1c08..dca42616d8 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -322,7 +322,14 @@ def getsitepackages(prefixes=None): +@@ -326,7 +326,14 @@ def getsitepackages(prefixes=None): return sitepackages - + def addsitepackages(known_paths, prefixes=None): - """Add site-packages to sys.path""" + """Add site-packages to sys.path @@ -44,3 +59,6 @@ index 0fc9200..c95202e 100644 for sitedir in getsitepackages(prefixes): if os.path.isdir(sitedir): addsitedir(sitedir, known_paths) +-- +2.26.2 + diff --git a/00262-pep538_coerce_legacy_c_locale.patch b/00262-pep538_coerce_legacy_c_locale.patch index 0e452e7..5b1ac09 100644 --- a/00262-pep538_coerce_legacy_c_locale.patch +++ b/00262-pep538_coerce_legacy_c_locale.patch @@ -1,5 +1,36 @@ +From 0944f5b62e3227e2330312011a5f7ddfa7ad86f9 Mon Sep 17 00:00:00 2001 +From: Nick Coghlan +Date: Fri, 19 Jun 2020 17:02:52 +0200 +Subject: [PATCH] 00262: PEP538 - Coerce legacy C locale +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale +https://www.python.org/dev/peps/pep-0538/ +Fedora Change: https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale +Original proposal: https://bugzilla.redhat.com/show_bug.cgi?id=1404918 + +Co-Authored-By: Nick Coghlan +Co-Authored-By: Charalampos Stratakis +Co-Authored-By: Iryna Shcherbina +Co-Authored-By: Miro Hrončok +--- + Doc/using/cmdline.rst | 39 +++ + Lib/test/support/script_helper.py | 56 +++-- + Lib/test/test_c_locale_coercion.py | 371 +++++++++++++++++++++++++++++ + Lib/test/test_cmd_line.py | 1 + + Lib/test/test_sys.py | 1 + + Modules/main.c | 6 +- + Programs/_testembed.c | 1 + + Programs/python.c | 37 +++ + Python/pylifecycle.c | 196 ++++++++++++++- + configure.ac | 34 +++ + 10 files changed, 708 insertions(+), 34 deletions(-) + create mode 100644 Lib/test/test_c_locale_coercion.py + diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst -index d14793a..65aa3ad 100644 +index d14793a108..65aa3ad0f5 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -728,6 +728,45 @@ conflict. @@ -49,7 +80,7 @@ index d14793a..65aa3ad 100644 ~~~~~~~~~~~~~~~~~~~~ diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py -index 507dc48..c3cb720 100644 +index 507dc48848..c3cb720be1 100644 --- a/Lib/test/support/script_helper.py +++ b/Lib/test/support/script_helper.py @@ -56,8 +56,35 @@ def interpreter_requires_environment(): @@ -124,7 +155,7 @@ index 507dc48..c3cb720 100644 def assert_python_ok(*args, **env_vars): diff --git a/Lib/test/test_c_locale_coercion.py b/Lib/test/test_c_locale_coercion.py new file mode 100644 -index 0000000..635c98f +index 0000000000..635c98face --- /dev/null +++ b/Lib/test/test_c_locale_coercion.py @@ -0,0 +1,371 @@ @@ -500,7 +531,7 @@ index 0000000..635c98f +if __name__ == "__main__": + test_main() diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py -index 38156b4..5922ed9 100644 +index 38156b4926..5922ed917c 100644 --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -153,6 +153,7 @@ class CmdLineTest(unittest.TestCase): @@ -512,7 +543,7 @@ index 38156b4..5922ed9 100644 b'import locale; ' b'print(ascii("' + undecodable + b'"), ' diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py -index 7866a5c..b41239a 100644 +index 7866a5c005..b41239ab7a 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -680,6 +680,7 @@ class SysModuleTest(unittest.TestCase): @@ -524,7 +555,7 @@ index 7866a5c..b41239a 100644 'import sys', 'def dump(name):', diff --git a/Modules/main.c b/Modules/main.c -index 585d696..96d8be4 100644 +index 585d6965dd..96d8be4685 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -107,7 +107,11 @@ static const char usage_6[] = @@ -541,7 +572,7 @@ index 585d696..96d8be4 100644 static int usage(int exitcode, const wchar_t* program) diff --git a/Programs/_testembed.c b/Programs/_testembed.c -index 813cf30..2a64092 100644 +index 813cf307bd..2a640926c0 100644 --- a/Programs/_testembed.c +++ b/Programs/_testembed.c @@ -1,4 +1,5 @@ @@ -551,7 +582,7 @@ index 813cf30..2a64092 100644 #include diff --git a/Programs/python.c b/Programs/python.c -index a7afbc7..03f8295 100644 +index a7afbc774b..03f8295045 100644 --- a/Programs/python.c +++ b/Programs/python.c @@ -15,6 +15,21 @@ wmain(int argc, wchar_t **argv) @@ -623,7 +654,7 @@ index a7afbc7..03f8295 100644 for (i = 0; i < argc; i++) { PyMem_RawFree(argv_copy2[i]); diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c -index ecfdfee..4fee178 100644 +index 0ebf9c7029..0b985bf78b 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -167,6 +167,7 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors) @@ -839,7 +870,7 @@ index ecfdfee..4fee178 100644 #endif if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0') -@@ -1247,12 +1433,8 @@ initstdio(void) +@@ -1250,12 +1436,8 @@ initstdio(void) } } if (!errors && !(pythonioencoding && *pythonioencoding)) { @@ -855,10 +886,10 @@ index ecfdfee..4fee178 100644 } diff --git a/configure.ac b/configure.ac -index 3f2459a..7444486 100644 +index 7bf4c6fb4c..f764536d65 100644 --- a/configure.ac +++ b/configure.ac -@@ -3360,6 +3360,40 @@ then +@@ -3417,6 +3417,40 @@ then fi AC_MSG_RESULT($with_pymalloc) @@ -899,3 +930,6 @@ index 3f2459a..7444486 100644 # Check for Valgrind support AC_MSG_CHECKING([for --with-valgrind]) AC_ARG_WITH([valgrind], +-- +2.26.2 + diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index 9d69223..e98076e 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,6 +1,37 @@ -diff -up Python-3.5.0/configure.ac.than Python-3.5.0/configure.ac ---- Python-3.5.0/configure.ac.than 2015-11-13 11:51:32.039560172 -0500 -+++ Python-3.5.0/configure.ac 2015-11-13 11:52:11.670168157 -0500 +From 39519cb038959c4c3d021e73b4b74278d022c84f Mon Sep 17 00:00:00 2001 +From: Petr Viktorin +Date: Mon, 28 Aug 2017 17:16:46 +0200 +Subject: [PATCH] 00274: Upstream uses Debian-style architecture naming, change + to match Fedora +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Co-authored-by: Petr Viktorin +Co-authored-by: Miro Hrončok +Co-authored-by: Tomas Orsava +--- + config.sub | 2 +- + configure.ac | 16 ++++++++-------- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/config.sub b/config.sub +index 40ea5dfe11..c51e98ba2a 100755 +--- a/config.sub ++++ b/config.sub +@@ -1045,7 +1045,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/configure.ac b/configure.ac +index f764536d65..f2c455c8d9 100644 +--- a/configure.ac ++++ b/configure.ac @@ -788,9 +788,9 @@ cat >> conftest.c <> conftest.c <> conftest.c <> conftest.c < +Date: Fri, 19 Jun 2020 17:06:08 +0200 +Subject: [PATCH] 00292: Restore PyExc_RecursionErrorInst symbol + +Restore the public PyExc_RecursionErrorInst symbol that was removed +from the 3.6.4 release upstream. +Reported upstream: https://bugs.python.org/issue30697 +--- + Include/pyerrors.h | 2 ++ + Objects/exceptions.c | 32 ++++++++++++++++++++++++++++++++ + PC/python3.def | 1 + + 3 files changed, 35 insertions(+) + diff --git a/Include/pyerrors.h b/Include/pyerrors.h -index c28c1373f82..8c1dbc5047b 100644 +index 44f20303c2..8b5c2748de 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -219,6 +219,8 @@ PyAPI_DATA(PyObject *) PyExc_IOError; @@ -11,18 +25,11 @@ index c28c1373f82..8c1dbc5047b 100644 /* Predefined warning categories */ PyAPI_DATA(PyObject *) PyExc_Warning; PyAPI_DATA(PyObject *) PyExc_UserWarning; -diff --git a/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst -new file mode 100644 -index 00000000000..28f74ad4f30 ---- /dev/null -+++ b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst -@@ -0,0 +1 @@ -+Restore PyExc_RecursionErrorInst in 3.6 diff --git a/Objects/exceptions.c b/Objects/exceptions.c -index df4899372a5..271e293e325 100644 +index 6f3b986d32..76bb1a4697 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c -@@ -2430,6 +2430,12 @@ SimpleExtendsException(PyExc_Warning, ResourceWarning, +@@ -2434,6 +2434,12 @@ SimpleExtendsException(PyExc_Warning, ResourceWarning, @@ -35,7 +42,7 @@ index df4899372a5..271e293e325 100644 #define PRE_INIT(TYPE) \ if (!(_PyExc_ ## TYPE.tp_flags & Py_TPFLAGS_READY)) { \ if (PyType_Ready(&_PyExc_ ## TYPE) < 0) \ -@@ -2691,11 +2697,37 @@ _PyExc_Init(PyObject *bltinmod) +@@ -2695,11 +2701,37 @@ _PyExc_Init(PyObject *bltinmod) ADD_ERRNO(TimeoutError, ETIMEDOUT); preallocate_memerrors(); @@ -74,7 +81,7 @@ index df4899372a5..271e293e325 100644 Py_CLEAR(errnomap); } diff --git a/PC/python3.def b/PC/python3.def -index 4fc4a6814ee..ff70718fc37 100644 +index 4fc4a6814e..ff70718fc3 100644 --- a/PC/python3.def +++ b/PC/python3.def @@ -224,6 +224,7 @@ EXPORTS @@ -85,3 +92,6 @@ index 4fc4a6814ee..ff70718fc37 100644 PyExc_ReferenceError=python36.PyExc_ReferenceError DATA PyExc_ResourceWarning=python36.PyExc_ResourceWarning DATA PyExc_RuntimeError=python36.PyExc_RuntimeError DATA +-- +2.26.2 + diff --git a/00294-define-TLS-cipher-suite-on-build-time.patch b/00294-define-TLS-cipher-suite-on-build-time.patch index 485c6f0..5c58813 100644 --- a/00294-define-TLS-cipher-suite-on-build-time.patch +++ b/00294-define-TLS-cipher-suite-on-build-time.patch @@ -1,5 +1,25 @@ +From 8c79d1eeb61fdb3e9bc58be70a8a9050fe83096f Mon Sep 17 00:00:00 2001 +From: Christian Heimes +Date: Fri, 19 Jun 2020 17:13:03 +0200 +Subject: [PATCH] 00294: Define TLS cipher suite on build time + +Define TLS cipher suite on build time depending +on the OpenSSL default cipher suite selection. +Fixed upstream on CPython's 3.7 branch: +https://bugs.python.org/issue31429 +See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816 + +Co-Authored-By: Christian Heimes +Co-Authored-By: Charalampos Stratakis +--- + Lib/ssl.py | 48 ++------------------------------------------ + Lib/test/test_ssl.py | 16 ++++++++++++++- + Modules/_ssl.c | 35 +++++++++++++++++++++++++++++++- + configure.ac | 36 +++++++++++++++++++++++++++++++++ + 4 files changed, 87 insertions(+), 48 deletions(-) + diff --git a/Lib/ssl.py b/Lib/ssl.py -index 58d3e93..0114387 100644 +index 58d3e93922..0114387c57 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -116,6 +116,7 @@ except ImportError: @@ -79,7 +99,7 @@ index 58d3e93..0114387 100644 if cafile or capath or cadata: context.load_verify_locations(cafile, capath, cadata) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py -index 74adebc..510bb09 100644 +index 74adebc0fb..510bb09501 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -19,6 +19,7 @@ import weakref @@ -120,7 +140,7 @@ index 74adebc..510bb09 100644 def test_get_ciphers(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1) diff --git a/Modules/_ssl.c b/Modules/_ssl.c -index 7365630..ec366f0 100644 +index 7365630a5e..ec366f019d 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -238,6 +238,31 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s) @@ -180,7 +200,7 @@ index 7365630..ec366f0 100644 PY_SSL_ERROR_ZERO_RETURN); PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ", diff --git a/configure.ac b/configure.ac -index f986875..c071ec3 100644 +index f2c455c8d9..619aa215e9 100644 --- a/configure.ac +++ b/configure.ac @@ -5663,6 +5663,42 @@ if test "$have_getrandom" = yes; then @@ -226,3 +246,6 @@ index f986875..c071ec3 100644 # generate output files AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh) AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) +-- +2.26.2 + diff --git a/00343-faulthandler-gcc10.patch b/00343-faulthandler-gcc10.patch index e0f1272..a8ecabd 100644 --- a/00343-faulthandler-gcc10.patch +++ b/00343-faulthandler-gcc10.patch @@ -1,34 +1,28 @@ -commit 5044c889dfced2f43e2cccb673d889a4882f6b3b -Author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> -Date: Wed Dec 4 12:29:22 2019 -0800 +From 7da16b28ff5817714a565f7f5c51cccee1e25818 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Fri, 19 Jun 2020 17:16:05 +0200 +Subject: [PATCH] 00343: Fix test_faulthandler on GCC 10 - bpo-38965: Fix faulthandler._stack_overflow() on GCC 10 (GH-17467) +bpo-38965: Fix faulthandler._stack_overflow() on GCC 10 +Fixed upstream and backported from the 3.7 branch: +https://bugs.python.org/issue38965 +https://github.com/python/cpython/commit/f4a21d3b239bf4f4e4e2a8a5936b9b040645b246 - Use the "volatile" keyword to prevent tail call optimization - on any compiler, rather than relying on compiler specific pragma. - (cherry picked from commit 8b787964e0a647caa0558b7c29ae501470d727d9) - - Co-authored-by: Victor Stinner - -commit ac827edc493d3ac3f5b9b0cc353df1d4b418a9aa -Author: Victor Stinner -Date: Wed Aug 14 23:35:27 2019 +0200 - - bpo-21131: Fix faulthandler.register(chain=True) stack (GH-15276) - - faulthandler now allocates a dedicated stack of SIGSTKSZ*2 bytes, - instead of just SIGSTKSZ bytes. Calling the previous signal handler - in faulthandler signal handler uses more than SIGSTKSZ bytes of stack - memory on some platforms. +bpo-21131: Fix faulthandler.register(chain=True) stack (GH-15276) +https://bugs.python.org/issue21131 +https://github.com/python/cpython/commit/ac827edc493d3ac3f5b9b0cc353df1d4b418a9aa +--- + Modules/faulthandler.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c -index 890c645..fac662a 100644 +index 890c64577c..fac662afc3 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -1091,18 +1091,14 @@ faulthandler_fatal_error_py(PyObject *self, PyObject *args) #if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION) #define FAULTHANDLER_STACK_OVERFLOW - + -#ifdef __INTEL_COMPILER - /* Issue #23654: Turn off ICC's tail call optimization for the - * stack_overflow generator. ICC turns the recursive tail call into @@ -63,3 +57,6 @@ index 890c645..fac662a 100644 stack.ss_sp = PyMem_Malloc(stack.ss_size); if (stack.ss_sp != NULL) { err = sigaltstack(&stack, &old_stack); +-- +2.26.2 + diff --git a/python3.6.spec b/python3.6.spec index 2307a48..a0d9acd 100644 --- a/python3.6.spec +++ b/python3.6.spec @@ -13,11 +13,11 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well -%global general_version %{pybasever}.10 -#global prerel ... +%global general_version %{pybasever}.11 +%global prerel rc1 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 5%{?dist} +Release: 1%{?dist} License: Python @@ -1529,6 +1529,9 @@ CheckPython optimized # ====================================================== %changelog +* Fri Jun 19 2020 Petr Viktorin - 3.6.11-1 +- Update to 3.6.11rc1 + * Thu May 28 2020 Victor Stinner - 3.6.10-5 - Fix python3-config --configdir (rhbz#1772988). diff --git a/sources b/sources index 649b3e5..b3447ee 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (Python-3.6.10.tar.xz) = 26147099e1f1a0ffc85febad26e18e991f019599a150887ea0b925e34663fad8e03b3c2a941e2770c1a63960695e173ef32709572c9361e7f2cb862ccf75b28a -SHA512 (Python-3.6.10.tar.xz.asc) = f63df08b6449cfee015eeb42657023d5c8464c0dd9a6b5d31978902a46ccebc975f7641f7a8f81d76135e564dc73bc567f449232e857b8b38ca0db16bdb30456 +SHA512 (Python-3.6.11rc1.tar.xz) = 5e33bd05f688f50dfbf47ed8893668ccd9a353dee8d785a179770cfbd2b0227eac4d338d3c4fca51d78add370118f0911d70fa26604f95f4179b366a87a69b68 +SHA512 (Python-3.6.11rc1.tar.xz.asc) = ee3b7a25abd53e15fe72b38bfb965aa5fe885b4be176cb132ebff0c841f0af8a35d03015adde704a2fb7111a5ea3f46548996e734ab1cf7d86f7220e08e2d7db