From 96436475550323f9369928e1ca533d9db415b66f4d3a3d1130c244352d4cbac2 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Tue, 19 Nov 2024 22:16:13 +0000 Subject: [PATCH] - Update to the second development version of 3.14.0a2. - Tools/Demos - gh-126807: Fix extraction warnings in pygettext.py caused by mistaking function definitions for function calls. - gh-126167: The iOS testbed was modified so that it can be used by third-party projects for testing purposes. - Tests - gh-126909: Fix test_os extended attribute tests to work on filesystems with 1 KiB xattr size limit. - gh-125730: Change make test to not run GUI tests by default. Use make ci to run tests with GUI tests instead. - gh-124295: Add translation tests to the argparse module. - Security - gh-126623: Upgrade libexpat to 2.6.4 - Library - gh-85957: Add missing MIME types for images with RFCs: emf, fits, g3fax, jp2, jpm, jpx, t38, tiff-fx and wmf. Patch by Hugo van Kemenade. - gh-126920: Fix the prefix and exec_prefix keys from sysconfig.get_config_vars() incorrectly having the same value as sys.base_prefix and sys.base_exec_prefix, respectively, inside virtual environments. They now accurately reflect sys.prefix and sys.exec_prefix. - gh-67877: Fix memory leaks when regular expression matching terminates abruptly, either because of a signal or because memory allocation fails. - gh-125063: marshal now supports slice objects. The marshal format version was increased to 5. - gh-126789: Fixed the values of sysconfig.get_config_vars(), sysconfig.get_paths(), and their siblings when the site OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=23 --- F00251-change-user-install-location.patch | 35 +++++++-------------- Python-3.14.0a2.tar.xz | 3 ++ Python-3.14.0a2.tar.xz.sigstore | 1 + bpo-31046_ensurepip_honours_prefix.patch | 10 +++--- fix-test-recursion-limit-15.6.patch | 15 +++++---- python-3.3.0b1-fix_date_time_compiler.patch | 15 ++++++--- python-3.3.0b1-test-posix_fadvise.patch | 15 +++++++++ python314.spec | 2 +- subprocess-raise-timeout.patch | 25 +++++++-------- 9 files changed, 63 insertions(+), 58 deletions(-) create mode 100644 Python-3.14.0a2.tar.xz create mode 100644 Python-3.14.0a2.tar.xz.sigstore create mode 100644 python-3.3.0b1-test-posix_fadvise.patch diff --git a/F00251-change-user-install-location.patch b/F00251-change-user-install-location.patch index 80d80c1..5397187 100644 --- a/F00251-change-user-install-location.patch +++ b/F00251-change-user-install-location.patch @@ -24,15 +24,13 @@ Co-authored-by: Miro Hrončok Co-authored-by: Michal Cyprian Co-authored-by: Lumír Balhar --- - Lib/sysconfig/__init__.py | 51 ++++++++++++++++++++++++++++++++++++++++++++- + Lib/sysconfig/__init__.py | 49 ++++++++++++++++++++++++++++++++++++++++++++- Lib/test/test_sysconfig.py | 17 +++++++++++++-- - 2 files changed, 65 insertions(+), 3 deletions(-) + 2 files changed, 63 insertions(+), 3 deletions(-) -Index: Python-3.14.0/Lib/sysconfig/__init__.py -=================================================================== ---- Python-3.14.0.orig/Lib/sysconfig/__init__.py 2025-10-08 11:27:28.335887277 +0200 -+++ Python-3.14.0/Lib/sysconfig/__init__.py 2025-10-08 11:28:00.652215416 +0200 -@@ -106,6 +106,11 @@ +--- a/Lib/sysconfig/__init__.py ++++ b/Lib/sysconfig/__init__.py +@@ -106,6 +106,11 @@ if os.name == 'nt': else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -64,16 +62,7 @@ Index: Python-3.14.0/Lib/sysconfig/__init__.py _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data') - _PY_VERSION = sys.version.split()[0] - _PY_VERSION_SHORT = f'{sys.version_info[0]}.{sys.version_info[1]}' - _PY_VERSION_SHORT_NO_DOT = f'{sys.version_info[0]}{sys.version_info[1]}' -+_PREFIX = os.path.normpath(sys.prefix) - _BASE_PREFIX = os.path.normpath(sys.base_prefix) -+_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) - _BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) - # Mutex guarding initialization of _CONFIG_VARS. - _CONFIG_VARS_LOCK = threading.RLock() -@@ -268,11 +288,40 @@ +@@ -259,11 +277,40 @@ def _extend_dict(target_dict, other_dict target_dict[key] = value @@ -115,11 +104,9 @@ Index: Python-3.14.0/Lib/sysconfig/__init__.py if os.name == 'nt': # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it -Index: Python-3.14.0/Lib/test/test_sysconfig.py -=================================================================== ---- Python-3.14.0.orig/Lib/test/test_sysconfig.py 2025-10-08 11:27:30.181651013 +0200 -+++ Python-3.14.0/Lib/test/test_sysconfig.py 2025-10-08 11:28:00.653226898 +0200 -@@ -132,8 +132,19 @@ +--- a/Lib/test/test_sysconfig.py ++++ b/Lib/test/test_sysconfig.py +@@ -130,8 +130,19 @@ class TestSysConfig(unittest.TestCase): for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) @@ -140,7 +127,7 @@ Index: Python-3.14.0/Lib/test/test_sysconfig.py os.path.normpath(expected), ) -@@ -395,7 +406,7 @@ +@@ -386,7 +397,7 @@ class TestSysConfig(unittest.TestCase): self.assertTrue(os.path.isfile(config_h), config_h) def test_get_scheme_names(self): @@ -149,7 +136,7 @@ Index: Python-3.14.0/Lib/test/test_sysconfig.py if HAS_USER_BASE: wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) -@@ -407,6 +418,8 @@ +@@ -398,6 +409,8 @@ class TestSysConfig(unittest.TestCase): cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) diff --git a/Python-3.14.0a2.tar.xz b/Python-3.14.0a2.tar.xz new file mode 100644 index 0000000..77aa85a --- /dev/null +++ b/Python-3.14.0a2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff9e10147342b3efd69f5cd9cc06ec46250f2a046587599d18e2cac69c05920 +size 22696948 diff --git a/Python-3.14.0a2.tar.xz.sigstore b/Python-3.14.0a2.tar.xz.sigstore new file mode 100644 index 0000000..3101f64 --- /dev/null +++ b/Python-3.14.0a2.tar.xz.sigstore @@ -0,0 +1 @@ +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlSgAwIBAgIUSXL944EaMZMHwPFJgntqMRM4b2MwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQxMTE5MjAxODM1WhcNMjQxMTE5MjAyODM1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElzSYiA2WtnhE5+Nx0yAom6lpRTHHrgyEIK19wWsxSREV9lqvO9L4nmfnGBEWfEkmdkwyZk6hvR6imyhIcvVgF6OCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUTfbHTLCDFnSe8No9sXLgh1Q+N2gwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABk0YTsMEAAAQDAEcwRQIgXAC0OIAMLqhuGlvUmp+QFXO4bPUg1aDDslDJHMCMaToCIQCVJuNByJUIKb/rnHvWuoW+dddiU1azHEVtPyjMekv89zAKBggqhkjOPQQDAwNnADBkAjA0mjG/qXEvjI9yyJCxZaN94Xy0AZI8OJi+UD7PBWG9Imi90A10D5Lb/R7uf/kN2W8CMCoR5yU48v+o5vANSt7lDeweJdAFsRPTUZDqqesBQkQ6cV9KBXkjLeSUyzIDFBKeiQ=="}, "tlogEntries": [{"logIndex": "149977023", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1732047516", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQDrs7hZIvGrYixNoDHJtgla48J+vx3C659UQdon8cz9wAIgeO1rOkrG6YLOCdG5XSHFBGIQcF3MgTrakWL25IlyO60="}, "inclusionProof": {"logIndex": "28072761", "rootHash": "hbXsypN1KAd3cWgQqOT4fPS5+F2fWNyfdJ7u5bb49To=", "treeSize": "28072762", "hashes": ["qA2mmzYD3E5ExNnASpwQReul4TdbWHUJfH9aF/JRNpw=", "HEgvFlMFbhJB+DB7nwB9vK30bLfl3GgTOusJbrDz6ss=", "gdj9EhP7EH9GQTWpelG2inz3mTORwatV9vhk1plAiQg=", "LnFYfn8KNL16odmkPyBfwE4uTd7Tfed+Rl4x+PzyXGw=", "Ta0Lefjinhbl1+KcWYIO2wiwMv2QC7RZrWEpuYfD9TI=", "bBo5ByTJoskmVjoZ8geIwQqMEwUdQtVJRn1yVRcPzVY=", "A/1Q5kZeNDto6YqYT49R5s398nwYqpssk+k9J+iyJEE=", "NCX3+gEdPO7Y3Q7DNx9dgT9KLG1Zukly/yphZ9b4PXQ=", "8qzMEkqspGl0RYFwxLb/eAf2xYrMBoZkxjq82aVY+JA=", "aPvPOUcJ3Qllkxp31FJTmCKWOFLFOoXz1UCE1t7w160=", "HdjiYX8LA9CwwDDzSy7LwCMkXLwAYQdvYIbxEn7wwOs=", "E2rLOYPJFKiizYiyu07QLqkMVTVL7i2ZgXiQywdI9KQ=", "4lUF0YOu9XkIDXKXA0wMSzd6VeDY3TZAgmoOeWmS2+Y=", "gf+9m552B3PnkWnO0o4KdVvjcT3WVHLrCbf1DoVYKFw="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n28072762\nhbXsypN1KAd3cWgQqOT4fPS5+F2fWNyfdJ7u5bb49To=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiBKhLsERtHY1eQCGNrChGIdiEjtMxSM4q6cBXdfWSwJjwIhAP0TbCYsUkbwNoAqKJuOPy4agrA0LcEW7EwmAN1uZEa1\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyZmY5ZTEwMTQ3MzQyYjNlZmQ2OWY1Y2Q5Y2MwNmVjNDYyNTBmMmEwNDY1ODc1OTlkMThlMmNhYzY5YzA1OTIwIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURMRFlCdE0xTHNjcG9JMzBCMEJTcUR2a2FwZGJOT00vQlY4Z0xKSDkyREx3SWdSU2cxdXY2NFVEVUwwTGJsS3EwR3B0cTUxdjdtU09CTEhJSC9KSHZKd0t3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4VFowRjNTVUpCWjBsVlUxaE1PVFEwUldGTldrMUlkMUJHU21kdWRIRk5VazAwWWpKTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFJlRTFVUlRWTmFrRjRUMFJOTVZkb1kwNU5hbEY0VFZSRk5VMXFRWGxQUkUweFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZzZWxOWmFVRXlWM1J1YUVVMUswNTRNSGxCYjIwMmJIQlNWRWhJY21kNVJVbExNVGtLZDFkemVGTlNSVlk1YkhGMlR6bE1ORzV0Wm01SFFrVlhaa1ZyYldScmQzbGFhelpvZGxJMmFXMTVhRWxqZGxablJqWlBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZVWm1KSUNsUk1RMFJHYmxObE9FNXZPWE5ZVEdkb01WRXJUakpuZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnJNRmxVYzAxRlFRcEJRVkZFUVVWamQxSlJTV2RZUVVNd1QwbEJUVXh4YUhWSGJIWlZiWEFyVVVaWVR6UmlVRlZuTVdGRVJITnNSRXBJVFVOTllWUnZRMGxSUTFaS2RVNUNDbmxLVlVsTFlpOXlia2gyVjNWdlZ5dGtaR1JwVlRGaGVraEZWblJRZVdwTlpXdDJPRGw2UVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV1UVVSQ2EwRnFRVEFLYldwSEwzRllSWFpxU1RsNWVVcERlRnBoVGprMFdIa3dRVnBKT0U5S2FTdFZSRGRRUWxkSE9VbHRhVGt3UVRFd1JEVk1ZaTlTTjNWbUwydE9NbGM0UXdwTlEyOVNOWGxWTkRoMksyODFka0ZPVTNRM2JFUmxkMlZLWkVGR2MxSlFWRlZhUkhGeFpYTkNVV3RSTm1OV09VdENXR3RxVEdWVFZYbDZTVVJHUWt0bENtbFJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "L/nhAUc0Kz79afXNnMBuxGJQ8qBGWHWZ0Y4srGnAWSA="}, "signature": "MEUCIQDLDYBtM1LscpoI30B0BSqDvkapdbNOM/BV8gLJH92DLwIgRSg1uv64UDUL0LblKq0Gptq51v7mSOBLHIH/JHvJwKw="}} diff --git a/bpo-31046_ensurepip_honours_prefix.patch b/bpo-31046_ensurepip_honours_prefix.patch index a962e30..1980e6e 100644 --- a/bpo-31046_ensurepip_honours_prefix.patch +++ b/bpo-31046_ensurepip_honours_prefix.patch @@ -145,11 +145,9 @@ Index: Python-3.14.0rc1/Lib/test/test_ensurepip.py def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.14.0rc1/Makefile.pre.in -=================================================================== ---- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200 -+++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:31.691716104 +0200 -@@ -2371,7 +2371,7 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -2228,7 +2228,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -158,7 +156,7 @@ Index: Python-3.14.0rc1/Makefile.pre.in fi .PHONY: altinstall -@@ -2382,7 +2382,7 @@ +@@ -2239,7 +2239,7 @@ altinstall: commoninstall install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ diff --git a/fix-test-recursion-limit-15.6.patch b/fix-test-recursion-limit-15.6.patch index 59d2d51..897fb31 100644 --- a/fix-test-recursion-limit-15.6.patch +++ b/fix-test-recursion-limit-15.6.patch @@ -2,11 +2,9 @@ Lib/test/test_compile.py | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.14.0b3/Lib/test/test_compile.py -=================================================================== ---- Python-3.14.0b3.orig/Lib/test/test_compile.py 2025-06-22 00:32:01.975698954 +0200 -+++ Python-3.14.0b3/Lib/test/test_compile.py 2025-06-22 00:32:07.740981155 +0200 -@@ -24,6 +24,9 @@ +--- a/Lib/test/test_compile.py ++++ b/Lib/test/test_compile.py +@@ -25,6 +25,9 @@ from test.support import (script_helper, from test.support.bytecode_helper import instructions_with_positions from test.support.os_helper import FakePath @@ -16,15 +14,16 @@ Index: Python-3.14.0b3/Lib/test/test_compile.py class TestSpecifics(unittest.TestCase): def compile_single(self, source): -@@ -120,6 +123,7 @@ +@@ -121,6 +124,7 @@ class TestSpecifics(unittest.TestCase): self.assertEqual(d['z'], 12) @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") + @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586") @support.skip_emscripten_stack_overflow() def test_extended_arg(self): - repeat = 100 -@@ -709,6 +713,7 @@ + repeat = int(get_c_recursion_limit() * 0.9) + longexpr = 'x = x or ' + '-x' * repeat +@@ -709,6 +713,7 @@ class TestSpecifics(unittest.TestCase): @support.cpython_only @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") diff --git a/python-3.3.0b1-fix_date_time_compiler.patch b/python-3.3.0b1-fix_date_time_compiler.patch index 6f21f15..05b1e28 100644 --- a/python-3.3.0b1-fix_date_time_compiler.patch +++ b/python-3.3.0b1-fix_date_time_compiler.patch @@ -2,11 +2,16 @@ Makefile.pre.in | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.14.0rc1/Makefile.pre.in -=================================================================== ---- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-22 18:42:44.000000000 +0200 -+++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200 -@@ -1910,6 +1910,11 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1743,11 +1743,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ + $(DTRACE_OBJS) \ + $(srcdir)/Modules/getbuildinfo.c + $(CC) -c $(PY_CORE_CFLAGS) \ ++ -DDATE="\"`date -u -r Makefile.pre.in +"%b %d %Y"`\"" \ ++ -DTIME="\"`date -u -r Makefile.pre.in +"%T"`\"" \ + -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \ + -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c diff --git a/python-3.3.0b1-test-posix_fadvise.patch b/python-3.3.0b1-test-posix_fadvise.patch new file mode 100644 index 0000000..0a6b091 --- /dev/null +++ b/python-3.3.0b1-test-posix_fadvise.patch @@ -0,0 +1,15 @@ +--- + Lib/test/test_posix.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Lib/test/test_posix.py ++++ b/Lib/test/test_posix.py +@@ -437,7 +437,7 @@ class PosixTester(unittest.TestCase): + def test_posix_fadvise(self): + fd = os.open(os_helper.TESTFN, os.O_RDONLY) + try: +- posix.posix_fadvise(fd, 0, 0, posix.POSIX_FADV_WILLNEED) ++ posix.posix_fadvise(fd, 0, 0, posix.POSIX_FADV_RANDOM) + finally: + os.close(fd) + diff --git a/python314.spec b/python314.spec index f7162bb..c1d219f 100644 --- a/python314.spec +++ b/python314.spec @@ -162,7 +162,7 @@ # _md5.cpython-38m-x86_64-linux-gnu.so %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so Name: %{python_pkg_name}%{psuffix} -Version: 3.14.0 +Version: 3.14.0~a2 %define tarversion %{version} %define tarname Python-%{tarversion} Release: 0 diff --git a/subprocess-raise-timeout.patch b/subprocess-raise-timeout.patch index 3788696..ae68b4a 100644 --- a/subprocess-raise-timeout.patch +++ b/subprocess-raise-timeout.patch @@ -2,20 +2,17 @@ Lib/test/test_subprocess.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -Index: Python-3.14.0b1/Lib/test/test_subprocess.py -=================================================================== ---- Python-3.14.0b1.orig/Lib/test/test_subprocess.py 2025-05-09 10:36:08.150615546 +0200 -+++ Python-3.14.0b1/Lib/test/test_subprocess.py 2025-05-09 10:36:21.907614565 +0200 -@@ -160,7 +160,11 @@ - # child. - self.assertRaises(subprocess.TimeoutExpired, subprocess.call, - [sys.executable, "-c", "while True: pass"], -- timeout=0.1) -+ # Some heavily loaded buildbots (sparc Debian 3.x) require -+ # this much time to start and print. -+ # timeout=3) -+ # OBS might require even more -+ timeout=10) +--- a/Lib/test/test_subprocess.py ++++ b/Lib/test/test_subprocess.py +@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase): + "time.sleep(3600)"], + # Some heavily loaded buildbots (sparc Debian 3.x) require + # this much time to start and print. +- timeout=3) ++ # OBS might require even more ++ timeout=10) + self.fail("Expected TimeoutExpired.") + self.assertEqual(c.exception.output, b'BDFL') def test_timeout_exception(self): try: