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=a7179c0ac5....
Change:
+%ifarch %{power64} %{arm}
Thanks.
Full change:
============
commit b1c7775af77a3a67c46933f26a6d3db6bbb7f450
Author: Miro Hronok <miro(a)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(a)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(a)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(a)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(a)redhat.com> - 3.8.1-1
- Update to Python 3.8.1
commit bb05cf63a4eb7c8a0cb94633996fba1b0d597e32
Author: Victor Stinner <vstinner(a)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(a)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(a)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)
+
+- #(a)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(a)fedoraproject.org> - 3.8.1-2
+* Thu Jan 30 2020 Miro Hronok <mhroncok(a)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(a)redhat.com> - 3.8.1-1
- Update to Python 3.8.1