The package rpms/python3.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/python3.git/commit/?id=a7179c0ac5493....
Change: +%ifarch %{power64} %{arm}
Thanks.
Full change: ============
commit b1c7775af77a3a67c46933f26a6d3db6bbb7f450 Author: Miro Hronok miro@hroncok.cz Date: Thu Jan 30 17:44:55 2020 +0100
Fix test_zipfile.test_add_file_after_2107()
diff --git a/00341-bpo-39460.patch b/00341-bpo-39460.patch new file mode 100644 index 0000000..93dde5f --- /dev/null +++ b/00341-bpo-39460.patch @@ -0,0 +1,41 @@ +From c6af8adc44bf6b53ac3b875fe1f644c05a990d2a Mon Sep 17 00:00:00 2001 +From: Victor Stinner vstinner@python.org +Date: Wed, 29 Jan 2020 15:23:29 +0100 +Subject: [PATCH] 00341: bpo-39460: Fix test_zipfile.test_add_file_after_2107() + +XFS filesystem is limited to 32-bit timestamp, but the utimensat() +syscall doesn't fail. Moreover, there is a VFS bug which returns +a cached timestamp which is different than the value on disk. + +https://bugzilla.redhat.com/show_bug.cgi?id=1795576 +https://bugs.python.org/issue39460#msg360952 +--- + Lib/test/test_zipfile.py | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py +index f03c044eae..0737c343cb 100644 +--- a/Lib/test/test_zipfile.py ++++ b/Lib/test/test_zipfile.py +@@ -602,6 +602,18 @@ class StoredTestsWithSourceFile(AbstractTestsWithSourceFile, + except OverflowError: + self.skipTest('Host fs cannot set timestamp to required value.') + ++ mtime_ns = os.stat(TESTFN).st_mtime_ns ++ if mtime_ns != (4386268800 * 10**9): ++ # XFS filesystem is limited to 32-bit timestamp, but the syscall ++ # didn't fail. Moreover, there is a VFS bug which returns ++ # a cached timestamp which is different than the value on disk. ++ # ++ # Test st_mtime_ns rather than st_mtime to avoid rounding issues. ++ # ++ # https://bugzilla.redhat.com/show_bug.cgi?id=1795576 ++ # https://bugs.python.org/issue39460#msg360952 ++ self.skipTest(f"Linux VFS/XFS kernel bug detected: {mtime_ns=}") ++ + with zipfile.ZipFile(TESTFN2, "w") as zipfp: + self.assertRaises(struct.error, zipfp.write, TESTFN) + +-- +2.24.1 + diff --git a/python3.spec b/python3.spec index aab95f0..038e32d 100644 --- a/python3.spec +++ b/python3.spec @@ -295,6 +295,15 @@ Patch328: 00328-pyc-timestamp-invalidation-mode.patch # Fixed upstream: https://bugs.python.org/issue16575 Patch339: 00339-bpo-16575.patch
+# 00341 # +# Fix test_zipfile.test_add_file_after_2107() +# XFS filesystem is limited to 32-bit timestamp, but the utimensat() +# syscall doesn't fail. Moreover, there is a VFS bug which returns +# a cached timestamp which is different than the value on disk. +# Workarounds https://bugzilla.redhat.com/show_bug.cgi?id=1795576 +# Workarounded upstream: https://bugs.python.org/issue39460 +Patch341: 00341-bpo-39460.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -643,6 +652,7 @@ rm Lib/ensurepip/_bundled/*.whl %patch274 -p1 %patch328 -p1 %patch339 -p1 +%patch341 -p1
# Remove files that should be generated by the build
commit a7179c0ac54937e0a1d57c26ef78b3d35f5be647 Author: Miro Hronok miro@hroncok.cz Date: Thu Jan 30 11:22:38 2020 +0100
Temporarily don't use -fno-semantic-interposition on power and arm
Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1795575
diff --git a/python3.spec b/python3.spec index 90f2f7e..aab95f0 100644 --- a/python3.spec +++ b/python3.spec @@ -63,6 +63,14 @@ License: Python # Expensive optimizations (mainly, profile-guided optimizations) %bcond_without optimizations
+# https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup +# Disabled on ppc64le and armv7hl: https://bugzilla.redhat.com/show_bug.cgi?id=1795575 +%ifarch %{power64} %{arm} +%bcond_with no_semantic_interposition +%else +%bcond_without no_semantic_interposition +%endif + # Run the test suite in %%check %bcond_without tests
@@ -677,14 +685,14 @@ topdir=$(pwd) # Fedora packages utilizing %%py3_build will use them as well # https://fedoraproject.org/wiki/Changes/Python_Extension_Flags export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" -export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv -fno-semantic-interposition" +export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv%{?with_no_semantic_interposition: -fno-semantic-interposition}" export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv" export CPPFLAGS="$(pkg-config --cflags-only-I libffi)" export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" export LINKCC="gcc" export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)" export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)" -export LDFLAGS_NODIST="%{build_ldflags} -fno-semantic-interposition -g $(pkg-config --libs-only-L openssl)" +export LDFLAGS_NODIST="%{build_ldflags}%{?with_no_semantic_interposition: -fno-semantic-interposition} -g $(pkg-config --libs-only-L openssl)"
# We can build several different configurations of Python: regular and debug. # Define a common function that does one build: @@ -1583,6 +1591,8 @@ CheckPython optimized * Thu Jan 30 2020 Miro Hronok mhroncok@redhat.com - 3.8.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - ctypes: Disable checks for union types being passed by value (#1794572) +- Temporarily disable https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup + on ppc64le and armv7hl (#1795575)
* Thu Dec 19 2019 Miro Hronok mhroncok@redhat.com - 3.8.1-1 - Update to Python 3.8.1
commit bb05cf63a4eb7c8a0cb94633996fba1b0d597e32 Author: Victor Stinner vstinner@python.org Date: Mon Jan 27 18:03:37 2020 +0100
Run the test suite with --timeout=1800
diff --git a/python3.spec b/python3.spec index 25dbec3..90f2f7e 100644 --- a/python3.spec +++ b/python3.spec @@ -1059,6 +1059,7 @@ CheckPython() { LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo
# Run the upstream test suite + # --timeout=1800: kill test running for longer than 30 minutes # test_gdb skipped on s390x: # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 # test_gdb skipped everywhere: @@ -1067,7 +1068,7 @@ CheckPython() { # distutils.tests.test_bdist_rpm tests fail when bootstraping the Python # package: rpmbuild requires /usr/bin/pythonX.Y to be installed LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ - -wW --slowest -j0 \ + -wW --slowest -j0 --timeout=1800 \ %if %{with bootstrap} -x test_distutils \ %endif
commit acf2f5823195ea388577a3e3b01db5dcef866fc5 Author: Miro Hronok miro@hroncok.cz Date: Tue Jan 28 11:06:11 2020 +0100
ctypes: Disable checks for union types being passed by value
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1794572 Fixed upstream: https://bugs.python.org/issue16575
diff --git a/00339-bpo-16575.patch b/00339-bpo-16575.patch new file mode 100644 index 0000000..fd5f794 --- /dev/null +++ b/00339-bpo-16575.patch @@ -0,0 +1,79 @@ +From 812479ed6c2c7854f5fafb2366d005845bfff67a Mon Sep 17 00:00:00 2001 +From: "Miss Islington (bot)" + 31488909+miss-islington@users.noreply.github.com +Date: Sun, 12 Jan 2020 03:41:07 -0800 +Subject: [PATCH] 00339: bpo-16575: Disabled checks for union types being + passed by value + +Although the underlying libffi issue remains open, adding these +checks have caused problems in third-party projects which are in +widespread use. See the issue for examples. + +The corresponding tests have also been skipped. + +(cherry picked from commit c12440c371025bea9c3bfb94945f006c486c2c01) +--- + Lib/ctypes/test/test_structures.py | 3 ++- + Modules/_ctypes/_ctypes.c | 18 ++++++++++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py +index 19c4430bea..cdbaa7fbd6 100644 +--- a/Lib/ctypes/test/test_structures.py ++++ b/Lib/ctypes/test/test_structures.py +@@ -571,6 +571,7 @@ class StructureTestCase(unittest.TestCase): + self.assertEqual(f2, [0x4567, 0x0123, 0xcdef, 0x89ab, + 0x3210, 0x7654, 0xba98, 0xfedc]) + ++ @unittest.skipIf(True, 'Test disabled for now - see bpo-16575/bpo-16576') + def test_union_by_value(self): + # See bpo-16575 + +@@ -651,7 +652,7 @@ class StructureTestCase(unittest.TestCase): + self.assertEqual(test5.nested.an_int, 0) + self.assertEqual(test5.another_int, 0) + +- #@unittest.skipIf('s390' in MACHINE, 'Test causes segfault on S390') ++ @unittest.skipIf(True, 'Test disabled for now - see bpo-16575/bpo-16576') + def test_bitfield_by_value(self): + # See bpo-16576 + +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index 347a3656b6..b51fcde364 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -2401,6 +2401,23 @@ converters_from_argtypes(PyObject *ob) + for (i = 0; i < nArgs; ++i) { + PyObject *cnv; + PyObject *tp = PyTuple_GET_ITEM(ob, i); ++/* ++ * The following checks, relating to bpo-16575 and bpo-16576, have been ++ * disabled. The reason is that, although there is a definite problem with ++ * how libffi handles unions (https://github.com/libffi/libffi/issues/33), ++ * there are numerous libraries which pass structures containing unions ++ * by values - especially on Windows but examples also exist on Linux ++ * (https://bugs.python.org/msg359834). ++ * ++ * It may not be possible to get proper support for unions and bitfields ++ * until support is forthcoming in libffi, but for now, adding the checks ++ * has caused problems in otherwise-working software, which suggests it ++ * is better to disable the checks. ++ * ++ * Although specific examples reported relate specifically to unions and ++ * not bitfields, the bitfields check is also being disabled as a ++ * precaution. ++ + StgDictObject *stgdict = PyType_stgdict(tp); + + if (stgdict != NULL) { +@@ -2428,6 +2445,7 @@ converters_from_argtypes(PyObject *ob) + return NULL; + } + } ++ */ + + if (_PyObject_LookupAttrId(tp, &PyId_from_param, &cnv) <= 0) { + Py_DECREF(converters); +-- +2.24.1 + diff --git a/python3.spec b/python3.spec index 9921903..25dbec3 100644 --- a/python3.spec +++ b/python3.spec @@ -278,6 +278,15 @@ Patch274: 00274-fix-arch-names.patch # Ideally, we should talk to upstream and explain why we don't want this Patch328: 00328-pyc-timestamp-invalidation-mode.patch
+# 00339 # +# Disabled checks for union types being passed by value +# Although the underlying libffi issue remains open, adding these +# checks have caused problems in third-party projects which are in +# widespread use. See the issue for examples. +# Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1794572 +# Fixed upstream: https://bugs.python.org/issue16575 +Patch339: 00339-bpo-16575.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -625,6 +634,7 @@ rm Lib/ensurepip/_bundled/*.whl %patch251 -p1 %patch274 -p1 %patch328 -p1 +%patch339 -p1
# Remove files that should be generated by the build @@ -1569,8 +1579,9 @@ CheckPython optimized # ======================================================
%changelog -* Thu Jan 30 2020 Fedora Release Engineering releng@fedoraproject.org - 3.8.1-2 +* Thu Jan 30 2020 Miro Hronok mhroncok@redhat.com - 3.8.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +- ctypes: Disable checks for union types being passed by value (#1794572)
* Thu Dec 19 2019 Miro Hronok mhroncok@redhat.com - 3.8.1-1 - Update to Python 3.8.1
arch-excludes@lists.fedoraproject.org