From 3ed435649aa4107b55a908335d7d86eb2dfccff4ea062d2e4fbf81b33202843e Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Sat, 12 Apr 2025 21:58:51 +0000 Subject: [PATCH] =?UTF-8?q?-=20Update=20to=203.14.0~a7:=20=20=20-=20Tools/?= =?UTF-8?q?Demos=20=20=20=20=20-=20gh-132121:=20Always=20escape=20non-prin?= =?UTF-8?q?table=20Unicode=20characters=20in=20=20=20=20=20=20=20pygettext?= =?UTF-8?q?.=20=20=20=20=20-=20gh-131852:=20msgfmt=20no=20longer=20adds=20?= =?UTF-8?q?the=20POT-Creation-Date=20to=20=20=20=20=20=20=20generated=20.m?= =?UTF-8?q?o=20files=20for=20consistency=20with=20GNU=20msgfmt.=20=20=20-?= =?UTF-8?q?=20Tests=20=20=20=20=20-=20gh-131277:=20Allow=20to=20unset=20on?= =?UTF-8?q?e=20or=20more=20environment=20variables=20=20=20=20=20=20=20at?= =?UTF-8?q?=20once=20via=20EnvironmentVarGuard.unset().=20Patch=20by=20B?= =?UTF-8?q?=C3=A9n=C3=A9dikt=20=20=20=20=20=20=20Tran.=20=20=20=20=20-=20g?= =?UTF-8?q?h-131050:=20test=5Fssl.test=5Fdh=5Fparams=20is=20skipped=20if?= =?UTF-8?q?=20the=20=20=20=20=20=20=20underlying=20TLS=20library=20does=20?= =?UTF-8?q?not=20support=20finite-field=20=20=20=20=20=20=20ephemeral=20Di?= =?UTF-8?q?ffie-Hellman.=20=20=20-=20Security=20=20=20=20=20-=20gh-131809:?= =?UTF-8?q?=20Update=20bundled=20libexpat=20to=202.7.1=20=20=20=20=20-=20g?= =?UTF-8?q?h-131261:=20Upgrade=20to=20libexpat=202.7.0=20=20=20=20=20-=20g?= =?UTF-8?q?h-121284:=20Fix=20bug=20in=20the=20folding=20of=20rfc2047=20enc?= =?UTF-8?q?oded-words=20=20=20=20=20=20=20when=20flattening=20an=20email?= =?UTF-8?q?=20message=20using=20a=20modern=20email=20=20=20=20=20=20=20pol?= =?UTF-8?q?icy.=20Previously=20when=20an=20encoded-word=20was=20too=20long?= =?UTF-8?q?=20for=20=20=20=20=20=20=20a=20line,=20it=20would=20be=20decode?= =?UTF-8?q?d,=20split=20across=20lines,=20and=20=20=20=20=20=20=20re-encod?= =?UTF-8?q?ed.=20But=20commas=20and=20other=20special=20characters=20in=20?= =?UTF-8?q?the=20=20=20=20=20=20=20original=20text=20could=20be=20left=20u?= =?UTF-8?q?nencoded=20and=20unquoted.=20This=20=20=20=20=20=20=20could=20t?= =?UTF-8?q?heoretically=20be=20used=20to=20spoof=20header=20lines=20using?= =?UTF-8?q?=20a=20=20=20=20=20=20=20carefully=20constructed=20encoded-word?= =?UTF-8?q?=20if=20the=20resulting=20rendered=20=20=20=20=20=20=20email=20?= =?UTF-8?q?was=20transmitted=20or=20re-parsed.=20=20=20-=20Library=20=20?= =?UTF-8?q?=20=20=20-=20gh-132174:=20Fix=20function=20name=20in=20error=20?= =?UTF-8?q?message=20of=20=20=20=20=20=20=20=5Finterpreters.run=5Fstring.?= =?UTF-8?q?=20=20=20=20=20-=20gh-132171:=20Fix=20crash=20of=20=5Finterpret?= =?UTF-8?q?ers.run=5Fstring=20on=20string=20=20=20=20=20=20=20subclasses.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=44 --- ...3-52425-libexpat-2.6.0-backport-15.6.patch | 32 +- F00251-change-user-install-location.patch | 24 +- Python-3.14.0a5.tar.xz | 3 - Python-3.14.0a5.tar.xz.sigstore | 1 - Python-3.14.0a7.tar.xz | 3 + Python-3.14.0a7.tar.xz.sigstore | 1 + bpo-31046_ensurepip_honours_prefix.patch | 66 +- fix-test-recursion-limit-15.6.patch | 16 +- python-3.3.0b1-fix_date_time_compiler.patch | 8 +- python314.changes | 688 ++++++++++++++++++ python314.spec | 4 +- skip-test_pyobject_freed_is_freed.patch | 8 +- subprocess-raise-timeout.patch | 31 +- 13 files changed, 802 insertions(+), 83 deletions(-) delete mode 100644 Python-3.14.0a5.tar.xz delete mode 100644 Python-3.14.0a5.tar.xz.sigstore create mode 100644 Python-3.14.0a7.tar.xz create mode 100644 Python-3.14.0a7.tar.xz.sigstore diff --git a/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch b/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch index 2ebfe4e..7dc6a23 100644 --- a/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch +++ b/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch @@ -4,9 +4,11 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) ---- a/Lib/test/test_pyexpat.py -+++ b/Lib/test/test_pyexpat.py -@@ -791,6 +791,10 @@ class ReparseDeferralTest(unittest.TestC +Index: Python-3.14.0a7/Lib/test/test_pyexpat.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_pyexpat.py 2025-04-12 23:55:25.077318106 +0200 ++++ Python-3.14.0a7/Lib/test/test_pyexpat.py 2025-04-12 23:58:03.769944012 +0200 +@@ -791,6 +791,10 @@ self.assertEqual(started, ['doc']) def test_reparse_deferral_disabled(self): @@ -17,9 +19,11 @@ started = [] def start_element(name, _): ---- a/Lib/test/test_sax.py -+++ b/Lib/test/test_sax.py -@@ -1241,6 +1241,9 @@ class ExpatReaderTest(XmlTestBase): +Index: Python-3.14.0a7/Lib/test/test_sax.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_sax.py 2025-04-12 23:55:25.131274628 +0200 ++++ Python-3.14.0a7/Lib/test/test_sax.py 2025-04-12 23:58:03.770532570 +0200 +@@ -1241,6 +1241,9 @@ self.assertEqual(result.getvalue(), start + b"") @@ -29,11 +33,13 @@ def test_flush_reparse_deferral_disabled(self): result = BytesIO() xmlgen = XMLGenerator(result) ---- a/Lib/test/test_xml_etree.py -+++ b/Lib/test/test_xml_etree.py -@@ -121,6 +121,11 @@ ATTLIST_XML = """\ - - """ +Index: Python-3.14.0a7/Lib/test/test_xml_etree.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_xml_etree.py 2025-04-12 23:55:25.550207629 +0200 ++++ Python-3.14.0a7/Lib/test/test_xml_etree.py 2025-04-12 23:58:03.771265630 +0200 +@@ -138,6 +138,11 @@ + return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) + +IS_SLE_15_7 = os.environ.get("SLE_VERSION", "") == "0150700" +fails_with_expat_2_6_0 = (unittest.expectedFailure @@ -43,7 +49,7 @@ def checkwarnings(*filters, quiet=False): def decorator(test): def newtest(*args, **kwargs): -@@ -1504,9 +1509,11 @@ class XMLPullParserTest(unittest.TestCas +@@ -1521,9 +1526,11 @@ self.assert_event_tags(parser, [('end', 'root')]) self.assertIsNone(parser.close()) @@ -55,7 +61,7 @@ def test_simple_xml_chunk_5(self): self.test_simple_xml(chunk_size=5, flush=True) -@@ -1731,6 +1738,9 @@ class XMLPullParserTest(unittest.TestCas +@@ -1748,6 +1755,9 @@ self.assert_event_tags(parser, [('end', 'doc')]) diff --git a/F00251-change-user-install-location.patch b/F00251-change-user-install-location.patch index ddc1ee6..c0efc98 100644 --- a/F00251-change-user-install-location.patch +++ b/F00251-change-user-install-location.patch @@ -28,9 +28,11 @@ Co-authored-by: Lumír Balhar Lib/test/test_sysconfig.py | 17 +++++++++++++-- 2 files changed, 65 insertions(+), 3 deletions(-) ---- a/Lib/sysconfig/__init__.py -+++ b/Lib/sysconfig/__init__.py -@@ -106,6 +106,11 @@ if os.name == 'nt': +Index: Python-3.14.0a7/Lib/sysconfig/__init__.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/sysconfig/__init__.py 2025-04-12 23:55:23.521797317 +0200 ++++ Python-3.14.0a7/Lib/sysconfig/__init__.py 2025-04-12 23:55:30.484969292 +0200 +@@ -106,6 +106,11 @@ else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -42,7 +44,7 @@ Co-authored-by: Lumír Balhar def _get_implementation(): return 'Python' -@@ -167,13 +172,28 @@ if _HAS_USER_BASE: +@@ -169,13 +174,28 @@ }, } @@ -71,7 +73,7 @@ Co-authored-by: Lumír Balhar _BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Mutex guarding initialization of _CONFIG_VARS. _CONFIG_VARS_LOCK = threading.RLock() -@@ -259,11 +279,40 @@ def _extend_dict(target_dict, other_dict +@@ -268,11 +288,40 @@ target_dict[key] = value @@ -113,9 +115,11 @@ Co-authored-by: Lumír Balhar if os.name == 'nt': # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it ---- a/Lib/test/test_sysconfig.py -+++ b/Lib/test/test_sysconfig.py -@@ -130,8 +130,19 @@ class TestSysConfig(unittest.TestCase): +Index: Python-3.14.0a7/Lib/test/test_sysconfig.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_sysconfig.py 2025-04-12 23:55:25.242938668 +0200 ++++ Python-3.14.0a7/Lib/test/test_sysconfig.py 2025-04-12 23:55:30.485409994 +0200 +@@ -131,8 +131,19 @@ for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) @@ -136,7 +140,7 @@ Co-authored-by: Lumír Balhar os.path.normpath(expected), ) -@@ -386,7 +397,7 @@ class TestSysConfig(unittest.TestCase): +@@ -387,7 +398,7 @@ self.assertTrue(os.path.isfile(config_h), config_h) def test_get_scheme_names(self): @@ -145,7 +149,7 @@ Co-authored-by: Lumír Balhar if HAS_USER_BASE: wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) -@@ -398,6 +409,8 @@ class TestSysConfig(unittest.TestCase): +@@ -399,6 +410,8 @@ cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) diff --git a/Python-3.14.0a5.tar.xz b/Python-3.14.0a5.tar.xz deleted file mode 100644 index acbcac8..0000000 --- a/Python-3.14.0a5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74e83f26de1e4fb9eef1b56492cff92508834bb71ac13f5c580438ce9f093682 -size 22859900 diff --git a/Python-3.14.0a5.tar.xz.sigstore b/Python-3.14.0a5.tar.xz.sigstore deleted file mode 100644 index 4fd7573..0000000 --- a/Python-3.14.0a5.tar.xz.sigstore +++ /dev/null @@ -1 +0,0 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlOgAwIBAgIUCBWax1Yv006eiUrTmVXnVEYP0acwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwMjEyMDc1NDE1WhcNMjUwMjEyMDgwNDE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVLFuPzDtOjejFwRdg4rACkVZkfQ10PXnoC8+U28wbs73RqyH7az/ArOWDhwvCruZCTOtm2QTWYCK30NDi/6q+KOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUc0Iet3OpFv7Oq6lKxwe/rg2yFgowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABlPkmxwAAAAQDAEYwRAIgFK4/2Od+BPgQZOqIOjCl7m37O9dFR6o8vvSxw3wLaKECICszaphh3ouecV37MD5cNSrC9OMoOvVUD1tL51NIygISMAoGCCqGSM49BAMDA2gAMGUCMQCNuzhin8H0+q2qxODgGrsKMpaSmK20VJxjmW+sEaEZzKROThaHevYwgFKOVFD1uj8CMBgy22e4sm2yW2tScetkOuYwgU3sSUycXRP9pKr9Gllfg9lOFlXC6/vnmvBuPRRjsA=="}, "tlogEntries": [{"logIndex": "170570053", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1739346856", "inclusionPromise": {"signedEntryTimestamp": "MEYCIQCGqYfCnbihbWn8mvWbiVe5x9xA/0Mvy2VRBnFm5E8ZZgIhAO6zmjkYA67Ttb7JKF5nn68KMvWi5MTzR+8o9xVq136S"}, "inclusionProof": {"logIndex": "48665791", "rootHash": "HzxfBCv2yi4J8G+S7TgoiMNBBo/wSkRjGDJfNOVUcTs=", "treeSize": "48665792", "hashes": ["b0yDjzNitZJIGTblWLhs4yUCBz6CKSng8isTxSgbsVE=", "dkJ2Yt1bEtBmpXpRN3vSmk+6+1j8GsOFEUA9iyueWhk=", "i1ABh9Dx8meNOBCr/HhTSupqNYK0LI+NnFjXmDfEgnY=", "MegLwopuwueYsc+JjT6t3LKiOJmtE0MguZsVB71COH0=", "FT+AWm/ITpPN+fIVrNXLPTjNvmfTVoGQfCV+uE6gZ8w=", "kRkMXhEDVcanV+ajODgw+9wD30fMQgV1vmvCfUV8ba0=", "6Z0kSTNv87FgCP6fBI6QTIRs0ABTmLD9tgAbSWRDRr0=", "p39Aj7k63Y8N82q5GXzhIzuZSex0HZN+9xq7U1Sxdp4=", "jhYil8zet/V88Ox8NV66V1iBkETlEJ2qH+SXo+kfMb0=", "Z/HAKVPPWMW9bRNxiWSaI+beB8FjcG/QYDqBuAZMTsY=", "cgbhJqDRiWT+2XKIQ9ch9WJ+6uwysr3Vn01jUW3nyv0=", "0NILEMXlPNU3cLx3pWSpe/u8BfMuXFyP+6HIsWDtkAU=", "3G1CfELRgkrpGc7BJBsecW/HvOojsTHpl40WsoH/3A0=", "Zse3BPkR/cJv62LvVuiDH+EpgIE5v3V3qXdG8HQFf1A=", "jU9+tgjTIKUYGeU7T7RjqyL+F+gFV9tCdwX2GZ1UtQs=", "vemyaMj0Na1LMjbB/9Dmkq8T+jAb3o+yCESgAayUABU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n48665792\nHzxfBCv2yi4J8G+S7TgoiMNBBo/wSkRjGDJfNOVUcTs=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEA3ZglJ4aYKUNaTJ96mujk5pcgWAj6iiwpmuUtpKIepGQCIGsrkTWsS2nFwjAv95ctdnJZK7cSvUMf+milS4alGlu9\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3NGU4M2YyNmRlMWU0ZmI5ZWVmMWI1NjQ5MmNmZjkyNTA4ODM0YmI3MWFjMTNmNWM1ODA0MzhjZTlmMDkzNjgyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQVlIaGJLVVNTZldtMmNqV2hWYmhtUXdEUTdtR0lpcGdCVEpKaXFrdEtmdEFpRUE2VUszY3huRE5iZ0g1QnYzalBLanZzL2c5YjRrT1NNVTEvTUs2cmN1RklBPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVlEwSlhZWGd4V1hZd01EWmxhVlZ5VkcxV1dHNVdSVmxRTUdGamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZkMDFxUlhsTlJHTXhUa1JGTVZkb1kwNU5hbFYzVFdwRmVVMUVaM2RPUkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZXVEVaMVVIcEVkRTlxWldwR2QxSmtaelJ5UVVOclZscHJabEV4TUZCWWJtOURPQ3NLVlRJNGQySnpOek5TY1hsSU4yRjZMMEZ5VDFkRWFIZDJRM0oxV2tOVVQzUnRNbEZVVjFsRFN6TXdUa1JwTHpaeEswdFBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZqTUVsbENuUXpUM0JHZGpkUGNUWnNTM2gzWlM5eVp6SjVSbWR2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnNVR3R0ZUhkQlFRcEJRVkZFUVVWWmQxSkJTV2RHU3pRdk1rOWtLMEpRWjFGYVQzRkpUMnBEYkRkdE16ZFBPV1JHVWpadk9IWjJVM2gzTTNkTVlVdEZRMGxEYzNwaGNHaG9Dak52ZFdWalZqTTNUVVExWTA1VGNrTTVUMDF2VDNaV1ZVUXhkRXcxTVU1SmVXZEpVMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMVJRMDRLZFhwb2FXNDRTREFyY1RKeGVFOUVaMGR5YzB0TmNHRlRiVXN5TUZaS2VHcHRWeXR6UldGRlducExVazlVYUdGSVpYWlpkMmRHUzA5V1JrUXhkV280UXdwTlFtZDVNakpsTkhOdE1ubFhNblJUWTJWMGEwOTFXWGRuVlROelUxVjVZMWhTVURsd1MzSTVSMnhzWm1jNWJFOUdiRmhETmk5MmJtMTJRblZRVWxKcUNuTkJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "dOg/Jt4eT7nu8bVkks/5JQiDS7cawT9cWAQ4zp8JNoI="}, "signature": "MEUCIAYHhbKUSSfWm2cjWhVbhmQwDQ7mGIipgBTJJiqktKftAiEA6UK3cxnDNbgH5Bv3jPKjvs/g9b4kOSMU1/MK6rcuFIA="}} diff --git a/Python-3.14.0a7.tar.xz b/Python-3.14.0a7.tar.xz new file mode 100644 index 0000000..cd37618 --- /dev/null +++ b/Python-3.14.0a7.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71adbcec3ac9edf93308e55cfb4184f2eb4b16fda2bb0a5a382929ed29c8386d +size 23015952 diff --git a/Python-3.14.0a7.tar.xz.sigstore b/Python-3.14.0a7.tar.xz.sigstore new file mode 100644 index 0000000..db0b133 --- /dev/null +++ b/Python-3.14.0a7.tar.xz.sigstore @@ -0,0 +1 @@ +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzjCCAlSgAwIBAgIUDwqRiJH4afgF7PkW1Qo6rr2v0lkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwNDA4MTQxMDA1WhcNMjUwNDA4MTQyMDA1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMgeduxSbRvf4+rxh9JLHe0ESc4Xexly0NaNWHeiTHLmdg+PRLNa5wLOEMZnjbZejU7znxttN65MnOzV5cOcoKOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUJQXlBvRXJEBKte20LxybMfGrT6YwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABlhW8oHwAAAQDAEcwRQIhALZwxAQ5nnFRozZP8YRDJAl6S1kWfYD5oV7AEPrj0s5CAiA5CY5C5cBFEcjroS+wQAWg1LW4HqvRZ0KVR99kcb4a/TAKBggqhkjOPQQDAwNoADBlAjAHbpNPV8nJ2q37EdYR8NElF7p7qVBSdT9VzBLh0X0WL0Df0ub0LiBPYPNELQ/n0rQCMQDd2OPfzn42qBrwT/TUP2yR0/0h9nsqGOsinLhLH/euLXXJ+xK0iHMRLfk4cABvoFs="}, "tlogEntries": [{"logIndex": "193881744", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1744121405", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQDZCZJVW+h+35nY12Z9y9tOkwStyIEVZmXSPx7mQUy0DwIgYWnL18yNoypHlLRSb2WIkcRxcD589pZdPORUS442MhU="}, "inclusionProof": {"logIndex": "71977482", "rootHash": "5SzvaU4/6U0MtwYjXGh0z1gIbnBbXfoMCLyL7PyEzE8=", "treeSize": "71977483", "hashes": ["+kSGTHFAaROPxw/+007Kwz3MXdUvY3V+rrY6sn3rTWc=", "gArlaOWkPW1lG6zUi9fwcxm6cyXspC+A2q3O5EzUI28=", "9TNwbV6fOnLuQ0CrvdKWO4n2fooZCvdCTwrFZCo6a8E=", "phHq2powa3InqGTI+IN0To1CKFgq/QLjjjUOmMz73pU=", "3tDvwrpMz/XYloigErVZuQZphUjJ7mX16wnR7tq2tMY=", "QReFEOB9XSZtDKsjRtA0fGnYGMYD2Z7qn50auG1YlWo=", "K26LG80DXyb+bC58c4Nw00WigG52v0PCsZGY3ExGsts=", "WEm5OgPzJpYROv+4CcrieexCYyQKrLUH3hbxmcQQ+DM=", "7v8qPHNDLerpduaMx06eb/MwgoQwczTn/cYGKX/9wZ4="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n71977483\n5SzvaU4/6U0MtwYjXGh0z1gIbnBbXfoMCLyL7PyEzE8=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEAxksfGmVyE0Zi4wa9fM67aL5JUeJSsJUyWeU2jqqH/yoCIHfCdL/guuSIxD8tEK6/qQoRdbugANBBjI6gG96bkluH\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3MWFkYmNlYzNhYzllZGY5MzMwOGU1NWNmYjQxODRmMmViNGIxNmZkYTJiYjBhNWEzODI5MjllZDI5YzgzODZkIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUR3U3lCQ2swa2t3NytBNDlSL0UxVmdrRUtORXhKYUt4ejU3SjYzUWdTSlhBSWdMdUVpNGNqMnMvTFZ1VEdaaThGMkxZZVhzOUJtYXA0cnVyU3NWWHI5L21VPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4VFowRjNTVUpCWjBsVlJIZHhVbWxLU0RSaFptZEdOMUJyVnpGUmJ6WnljakoyTUd4cmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZkMDVFUVRSTlZGRjRUVVJCTVZkb1kwNU5hbFYzVGtSQk5FMVVVWGxOUkVFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZhVFdkbFpIVjRVMkpTZG1ZMEszSjRhRGxLVEVobE1FVlRZelJZWlhoc2VUQk9ZVTRLVjBobGFWUklURzFrWnl0UVVreE9ZVFYzVEU5RlRWcHVhbUphWldwVk4zcHVlSFIwVGpZMVRXNVBlbFkxWTA5amIwdFBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZLVVZoc0NrSjJVbGhLUlVKTGRHVXlNRXg0ZVdKTlprZHlWRFpaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnNhRmM0YjBoM1FRcEJRVkZFUVVWamQxSlJTV2hCVEZwM2VFRlJOVzV1UmxKdmVscFFPRmxTUkVwQmJEWlRNV3RYWmxsRU5XOVdOMEZGVUhKcU1ITTFRMEZwUVRWRFdUVkRDalZqUWtaRlkycHliMU1yZDFGQlYyY3hURmMwU0hGMlVsb3dTMVpTT1RsclkySTBZUzlVUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV2UVVSQ2JFRnFRVWdLWW5CT1VGWTRia295Y1RNM1JXUlpVamhPUld4R04zQTNjVlpDVTJSVU9WWjZRa3hvTUZnd1Ywd3dSR1l3ZFdJd1RHbENVRmxRVGtWTVVTOXVNSEpSUXdwTlVVUmtNazlRWm5wdU5ESnhRbkozVkM5VVZWQXllVkl3THpCb09XNXpjVWRQYzJsdVRHaE1TQzlsZFV4WVdFb3JlRXN3YVVoTlVreG1helJqUVVKMkNtOUdjejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "ca287DrJ7fkzCOVc+0GE8utLFv2iuwpaOCkp7SnIOG0="}, "signature": "MEUCIQDwSyBCk0kkw7+A49R/E1VgkEKNExJaKxz57J63QgSJXAIgLuEi4cj2s/LVuTGZi8F2LYeXs9Bmap4rurSsVXr9/mU="}} diff --git a/bpo-31046_ensurepip_honours_prefix.patch b/bpo-31046_ensurepip_honours_prefix.patch index 6f3a0ff..9c85757 100644 --- a/bpo-31046_ensurepip_honours_prefix.patch +++ b/bpo-31046_ensurepip_honours_prefix.patch @@ -5,28 +5,32 @@ Subject: [PATCH] bpo-31046: ensurepip does not honour the value of $(prefix) Co-Authored-By: Xavier de Gaye --- - Doc/library/ensurepip.rst | 9 +++-- + Doc/library/ensurepip.rst | 12 +++++- Lib/ensurepip/__init__.py | 18 +++++++--- Lib/test/test_ensurepip.py | 11 ++++++ Makefile.pre.in | 4 +- Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst | 1 - 5 files changed, 34 insertions(+), 9 deletions(-) + 5 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst ---- a/Doc/library/ensurepip.rst -+++ b/Doc/library/ensurepip.rst -@@ -59,8 +59,9 @@ is at least as recent as the one availab +Index: Python-3.14.0a7/Doc/library/ensurepip.rst +=================================================================== +--- Python-3.14.0a7.orig/Doc/library/ensurepip.rst 2025-04-08 13:20:51.000000000 +0200 ++++ Python-3.14.0a7/Doc/library/ensurepip.rst 2025-04-12 23:57:46.539191105 +0200 +@@ -61,7 +61,11 @@ By default, ``pip`` is installed into the current virtual environment (if one is active) or into the system site packages (if there is no active virtual environment). The installation location can be controlled -through two additional command line options: +through some additional command line options: ++ ++.. option:: --prefix ++ ++ Installs ``pip`` using the given directory prefix. -+* ``--prefix ``: Installs ``pip`` using the given directory prefix. - * :samp:`--root {dir}`: Installs ``pip`` relative to the given root directory - rather than the root of the currently active virtual environment (if any) - or the default root for the current Python installation. -@@ -92,7 +93,7 @@ Module API + .. option:: --root + +@@ -102,7 +106,7 @@ Returns a string specifying the available version of pip that will be installed when bootstrapping an environment. @@ -35,7 +39,7 @@ Co-Authored-By: Xavier de Gaye altinstall=False, default_pip=False, \ verbosity=0) -@@ -102,6 +103,8 @@ Module API +@@ -112,6 +116,8 @@ If *root* is ``None``, then installation uses the default install location for the current environment. @@ -44,7 +48,7 @@ Co-Authored-By: Xavier de Gaye *upgrade* indicates whether or not to upgrade an existing installation of an earlier version of ``pip`` to the available version. -@@ -122,6 +125,8 @@ Module API +@@ -132,6 +138,8 @@ *verbosity* controls the level of output to :data:`sys.stdout` from the bootstrapping operation. @@ -53,9 +57,11 @@ Co-Authored-By: Xavier de Gaye .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: ---- a/Lib/ensurepip/__init__.py -+++ b/Lib/ensurepip/__init__.py -@@ -106,27 +106,27 @@ def _disable_pip_configuration_settings( +Index: Python-3.14.0a7/Lib/ensurepip/__init__.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/ensurepip/__init__.py 2025-04-12 23:55:22.995381917 +0200 ++++ Python-3.14.0a7/Lib/ensurepip/__init__.py 2025-04-12 23:56:51.429686796 +0200 +@@ -106,27 +106,27 @@ os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -88,7 +94,7 @@ Co-Authored-By: Xavier de Gaye Note that calling this function will alter both sys.path and os.environ. """ -@@ -162,6 +162,8 @@ def _bootstrap(*, root=None, upgrade=Fal +@@ -162,6 +162,8 @@ args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir] if root: args += ["--root", root] @@ -97,7 +103,7 @@ Co-Authored-By: Xavier de Gaye if upgrade: args += ["--upgrade"] if user: -@@ -238,6 +240,11 @@ def _main(argv=None): +@@ -238,6 +240,11 @@ help="Install everything relative to this alternate root directory.", ) parser.add_argument( @@ -109,7 +115,7 @@ Co-Authored-By: Xavier de Gaye "--altinstall", action="store_true", default=False, -@@ -256,6 +263,7 @@ def _main(argv=None): +@@ -256,6 +263,7 @@ return _bootstrap( root=args.root, @@ -117,9 +123,11 @@ Co-Authored-By: Xavier de Gaye upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, ---- a/Lib/test/test_ensurepip.py -+++ b/Lib/test/test_ensurepip.py -@@ -100,6 +100,17 @@ class TestBootstrap(EnsurepipMixin, unit +Index: Python-3.14.0a7/Lib/test/test_ensurepip.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_ensurepip.py 2025-04-12 23:55:24.305360451 +0200 ++++ Python-3.14.0a7/Lib/test/test_ensurepip.py 2025-04-12 23:56:51.430001922 +0200 +@@ -100,6 +100,17 @@ unittest.mock.ANY, ) @@ -137,9 +145,11 @@ Co-Authored-By: Xavier de Gaye def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -2228,7 +2228,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL +Index: Python-3.14.0a7/Makefile.pre.in +=================================================================== +--- Python-3.14.0a7.orig/Makefile.pre.in 2025-04-12 23:55:34.668791223 +0200 ++++ Python-3.14.0a7/Makefile.pre.in 2025-04-12 23:56:51.430413011 +0200 +@@ -2322,7 +2322,7 @@ install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -148,7 +158,7 @@ Co-Authored-By: Xavier de Gaye fi .PHONY: altinstall -@@ -2239,7 +2239,7 @@ altinstall: commoninstall +@@ -2333,7 +2333,7 @@ install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -157,7 +167,9 @@ Co-Authored-By: Xavier de Gaye fi .PHONY: commoninstall ---- /dev/null -+++ b/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.14.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ Python-3.14.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2025-04-12 23:56:51.431067499 +0200 @@ -0,0 +1 @@ +A directory prefix can now be specified when using :mod:`ensurepip`. diff --git a/fix-test-recursion-limit-15.6.patch b/fix-test-recursion-limit-15.6.patch index fe7492f..ec8e89f 100644 --- a/fix-test-recursion-limit-15.6.patch +++ b/fix-test-recursion-limit-15.6.patch @@ -2,9 +2,11 @@ Lib/test/test_compile.py | 5 +++++ 1 file changed, 5 insertions(+) ---- a/Lib/test/test_compile.py -+++ b/Lib/test/test_compile.py -@@ -25,6 +25,9 @@ from test.support import (script_helper, +Index: Python-3.14.0a7/Lib/test/test_compile.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_compile.py 2025-04-12 23:55:24.033076315 +0200 ++++ Python-3.14.0a7/Lib/test/test_compile.py 2025-04-12 23:58:06.932213319 +0200 +@@ -24,6 +24,9 @@ from test.support.bytecode_helper import instructions_with_positions from test.support.os_helper import FakePath @@ -14,19 +16,19 @@ class TestSpecifics(unittest.TestCase): def compile_single(self, source): -@@ -121,6 +124,7 @@ class TestSpecifics(unittest.TestCase): +@@ -120,6 +123,7 @@ 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 = int(get_c_recursion_limit() * 0.9) -@@ -710,6 +714,7 @@ class TestSpecifics(unittest.TestCase): + repeat = 100 +@@ -709,6 +713,7 @@ @support.cpython_only @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_compiler_recursion_limit(self): - # Expected limit is Py_C_RECURSION_LIMIT + # Compiler frames are small diff --git a/python-3.3.0b1-fix_date_time_compiler.patch b/python-3.3.0b1-fix_date_time_compiler.patch index 3fc2530..086d65e 100644 --- a/python-3.3.0b1-fix_date_time_compiler.patch +++ b/python-3.3.0b1-fix_date_time_compiler.patch @@ -2,9 +2,11 @@ Makefile.pre.in | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -1743,11 +1743,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ +Index: Python-3.14.0a7/Makefile.pre.in +=================================================================== +--- Python-3.14.0a7.orig/Makefile.pre.in 2025-04-08 13:20:51.000000000 +0200 ++++ Python-3.14.0a7/Makefile.pre.in 2025-04-12 23:55:34.668791223 +0200 +@@ -1855,11 +1855,18 @@ $(DTRACE_OBJS) \ $(srcdir)/Modules/getbuildinfo.c $(CC) -c $(PY_CORE_CFLAGS) \ diff --git a/python314.changes b/python314.changes index 9c3b53f..a113e78 100644 --- a/python314.changes +++ b/python314.changes @@ -1,3 +1,691 @@ +------------------------------------------------------------------- +Sat Apr 12 21:50:29 UTC 2025 - Matej Cepl + +- Update to 3.14.0~a7: + - Tools/Demos + - gh-132121: Always escape non-printable Unicode characters in + pygettext. + - gh-131852: msgfmt no longer adds the POT-Creation-Date to + generated .mo files for consistency with GNU msgfmt. + - Tests + - gh-131277: Allow to unset one or more environment variables + at once via EnvironmentVarGuard.unset(). Patch by Bénédikt + Tran. + - gh-131050: test_ssl.test_dh_params is skipped if the + underlying TLS library does not support finite-field + ephemeral Diffie-Hellman. + - Security + - gh-131809: Update bundled libexpat to 2.7.1 + - gh-131261: Upgrade to libexpat 2.7.0 + - gh-121284: Fix bug in the folding of rfc2047 encoded-words + when flattening an email message using a modern email + policy. Previously when an encoded-word was too long for + a line, it would be decoded, split across lines, and + re-encoded. But commas and other special characters in the + original text could be left unencoded and unquoted. This + could theoretically be used to spoof header lines using a + carefully constructed encoded-word if the resulting rendered + email was transmitted or re-parsed. + - Library + - gh-132174: Fix function name in error message of + _interpreters.run_string. + - gh-132171: Fix crash of _interpreters.run_string on string + subclasses. + - gh-129204: Introduce new _PYTHON_SUBPROCESS_USE_POSIX_SPAWN + environment variable knob in subprocess to control the use of + os.posix_spawn(). + - gh-132159: Do not shadow user arguments in generated + __new__() by decorator warnings.deprecated. Patch by Xuehai + Pan. + - gh-132168: The ctypes.py_object type now supports + subscription, making it a generic type. + - gh-84481: Add the zipfile.ZipFile.data_offset attribute, + which stores the offset to the beginning of ZIP data in a + file when available. When the zipfile.ZipFile is opened in + either mode 'w' or 'x' and the underlying file does not + support tell(), the value will be None instead. + - gh-132075: Fix possible use of socket address structures + with uninitialized members. Now all structure members are + initialized with zeroes by default. + - gh-118761: Improve import times by up to 27x for the string + module. Patch by Adam Turner. + - gh-125434: Display thread name in faulthandler. Patch by + Victor Stinner. + - gh-132002: Fix crash when deallocating contextvars.ContextVar + with weird unahashable string names. + - gh-131938: xml.etree.ElementTree: update the error message + when an element to remove via Element.remove is not + found. Patch by Bénédikt Tran. + - gh-115942: Add threading.RLock.locked(), + multiprocessing.Lock.locked(), + multiprocessing.RLock.locked(), and allow + multiprocessing.managers.SyncManager.Lock() and + multiprocessing.managers.SyncManager.RLock() to proxy + locked() call. + - gh-131974: Fix several thread-safety issues in ctypes on the + free threaded build. + - gh-118761: Improve the import time of the ast module by + extracting the unparse() function to a helper module. + - gh-107369: Improved performance of textwrap.dedent() by an + average of ~1.3x. Patch by Adam Turner. + - gh-131792: Improved performance of textwrap.dedent() by an + average of ~2.4x, (with improvements of up to 4x for large + inputs), and fixed a bug where blank lines with whitespace + characters other than space or horizontal tab were not + normalised to the newline. Patch by Adam Turner, Marius + Juston, and Pieter Eendebak. + - gh-131668: socket: Fix code parsing AF_BLUETOOTH socket + addresses. + - gh-60115: Support frozen modules for linecache.getline(). + - gh-131492: Fix a resource leak when constructing a + gzip.GzipFile with a filename fails, for example when passing + an invalid compresslevel. + - gh-131435: 10-20% performance improvement of + random.randint(). + - gh-131461: Fix ResourceWarning when constructing a + gzip.GzipFile in write mode with a broken file object. + - gh-125866: Deprecate the nturl2path module. Call + urllib.request.url2pathname() and pathname2url() instead. + - gh-126367: Fix issue where urllib.request.url2pathname() + raised OSError when given a Windows URI containing a colon + character not following a drive letter, such as before an + NTFS alternate data stream. + - gh-120144: Disable CALL event in bdb in monitoring backend + when we don’t need any new events on the code object to get a + better performance. + - gh-131358: Register cseuckr as an encoding alias for euc_kr. + - gh-131325: Fix sendfile fallback implementation to drain data + after writing to transport in asyncio. + - gh-90548: platform.libc_ver() can now detect and report the + version of musl on Alpine Linux. + - gh-129843: Fix incorrect argument passing in + warnings.warn_explicit(). + - gh-70647: When creating a datetime object with an out of + range date a more informative error is raised. + - gh-130914: Allow graphlib.TopologicalSorter.prepare() + to be called more than once as long as sorting has not + started. Patch by Daniel Pope. + - gh-131236: Allow to generate multiple UUIDs at once via + python -m uuid --count. + - gh-126895: Fix readline in free-threaded build. + - gh-121468: $_asynctask is added as a pdb convenience variable + to access the current asyncio task if applicable. + - gh-118761: Improve import time of locale using lazy import + re. Patch by Semyon Moroz. + - gh-129598: Fix ast.unparse() when ast.Interactive contains + multiple statements. + - gh-85162: The http.server module now includes + built-in support for HTTPS servers exposed by + http.server.HTTPSServer. This functionality is exposed by the + command-line interface (python -m http.server) through the + --tls-cert, --tls-key and --tls-password-file options. Patch + by Semyon Moroz. + - gh-129463: The implementations of equality and hashing + for annotationlib.ForwardRef now use all attributes on + the object. Two ForwardRef objects are equal only if all + attributes are equal. + - gh-128593: annotationlib.ForwardRef objects no longer cache + their value when they are successfully evaluated. Successive + calls to annotationlib.ForwardRef.evaluate() may return + different values. + - gh-117779: Fix reading duplicated entries in zipfile by + name. Reading duplicated entries (except the last one) by + ZipInfo now emits a warning instead of raising an exception. + - gh-128715: The class of Structure/Union field descriptors + is now available as CField, and has new attributes to aid + debugging and introspection. + - gh-128055: Fix test.test_sysconfig.test_sysconfigdata_json + when running outside the build directory (eg. after + installing). + - gh-126037: xml.etree.ElementTree: Fix a crash in + Element.find, Element.findtext and Element.findall when + the tag to find implements an __eq__() method mutating the + element being queried. Patch by Bénédikt Tran. + - gh-127794: When headers are added to email.message.Message + objects, either through email.message.Message.__setitem__() + or email.message.Message.add_header(), the field name is now + validated according to RFC 5322, Section 2.2 and a ValueError + is raised if the field name contains any invalid characters. + - gh-123599: Deprecate pathlib.PurePath.as_uri(); use + pathlib.Path.as_uri() instead. + - gh-126033: xml.etree.ElementTree: Fix a crash in + Element.remove when the element is concurrently + mutated. Patch by Bénédikt Tran. + - gh-120144: Add the optional backend of sys.monitoring to bdb + and use it for pdb. + - gh-74598: Add fnmatch.filterfalse() for excluding names + matching a pattern. Patch by Bénédikt Tran. + - gh-114917: Add support for AI_NUMERICSERV in getaddrinfo + emulation + - bpo-17254: Added aliases for Thai Language using Microsoft + Code Pages. + - Documentation + - gh-131417: Mention asyncio.Future and asyncio.Task in generic + classes list. + - Core and Builtins + - gh-131798: Allow the JIT to remove an extra _TO_BOOL_BOOL + instruction after _CONTAINS_OP_SET by setting the return type + to bool. + - gh-132011: Fix crash when calling list.append() as an unbound + method. + - gh-131998: Fix a crash when using an unbound method + descriptor object in a function where a bound method + descriptor was used. + - gh-131591: Implement PEP 768 (Safe external debugger + interface for CPython). Add a new sys.remote_exec() function + to the sys module. This function schedules the execution of + a Python file in a separate process. Patch by Pablo Galindo, + Matt Wozniski and Ivona Stojanovic. + - gh-131798: Allow JIT to omit str guard in truthiness test + when str type is known. + - gh-131833: Add support for optionally dropping grouping + parentheses when using multiple exception types as per PEP + 758. Patch by Pablo Galindo + - gh-130924: Usage of a name in a function-scope annotation no + longer triggers creation of a cell for that variable. This + fixes a regression in earlier alphas of Python 3.14. + - gh-131800: Improve the experimental JIT’s ability to remove + type checks for certain subscripting operations. + - gh-131738: Compiler emits optimized code for builtin + any/all/tuple calls over a generator expression. + - gh-131719: Fix missing NULL check in _PyMem_FreeDelayed in + free-threaded build. + - gh-131670: Fix anext() failing on sync __anext__() raising an + exception. + - gh-131666: Fix signature of anext_awaitable.close + objects. Patch by Bénédikt Tran. + - gh-130415: Optimize comparison of two constants in JIT builds + - gh-129149: Add fast path for small and medium-size + integers in PyLong_FromInt32(), PyLong_FromUInt32(), + PyLong_FromInt64() and PyLong_FromUInt64(). Patch by Chris + Eibl. + - gh-130887: Optimize the AArch64 code generation for the + JIT. Patch by Diego Russo + - gh-130956: Optimize the AArch64 code generation for the + JIT. Patch by Diego Russo + - gh-130928: Fix error message when formatting bytes using the + 'i' flag. Patch by Maxim Ageev. + - gh-130935: Annotations at the class and module level + that are conditionally defined are now only reflected in + __annotations__ if the block they are in is executed. Patch + by Jelle Zijlstra. + - gh-130775: Do not crash on negative column and end_column in + ast locations. + - gh-130704: Optimize LOAD_FAST and its superinstruction form + to reduce reference counting overhead. These instructions are + replaced with faster variants that load borrowed references + onto the operand stack when we can prove that the reference + in the frame outlives the reference loaded onto the stack. + - gh-88887: Fixing multiprocessing Resource Tracker process + leaking, usually observed when running Python as PID 1. + - gh-130115: Fix an issue with thread identifiers being + sign-extended on some platforms. + - gh-99108: Add support for built-in implementation of HMAC + (RFC 2104) based on HACL*. Patch by Bénédikt Tran. + - gh-130080: Implement PEP 765: Disallow return/break/continue + that exit a finally block. + - gh-129900: Fix return codes inside SystemExit not getting + returned by the REPL. + - gh-128632: Disallow __classdict__ as the name of a type + parameter. Using this name would previously crash the + interpreter in some circumstances. + - gh-126703: Improve performance of builtin methods by using a + freelist. + - gh-126703: Improve performance of range by using a freelist. + - C API + - gh-131740: Update PyUnstable_GC_VisitObjects to traverse perm + gen. + - gh-131525: The PyTupleObject now caches the computed hash + value in the new field ob_hash. + - Build + - gh-131865: The DTrace build now properly passes the CC + and CFLAGS variables to the dtrace command when utilizing + SystemTap on Linux. + - gh-131675: Fix mimalloc library builds for 32-bit ARM + targets. + - gh-131691: clang-cl on Windows needs option /EHa to support + SEH (structured exception handling) correctly. Fix by Chris + Eibl. + - gh-131278: Add optimizing flag WITH_COMPUTED_GOTOS to Windows + builds for when using a compiler that supports it (currently + clang-cl). Patch by Chris Eibl. + - gh-130213: Update the vendored HACL* library to fix build + issues with older clang compilers. + - gh-130673: Fix potential KeyError when handling object + sections during JIT building process. +- Update to 3.14.0~a6: + - Tools/Demos + - gh-130453: Make it possible to override default keywords in + pygettext. + - gh-85012: Correctly reset msgctxt when compiling messages + in msgfmt. + - gh-130453: Extend support for specifying custom keywords in + pygettext. + - gh-130195: Add warning messages when pygettext + unimplemented -a/--extract-all option is called. + - gh-130057: Add support for translator comments in + pygettext.py. + - gh-130025: The iOS testbed now correctly handles symlinks + used as Python framework references. + - gh-129911: Fix the keyword entry in the help output of + pygettext. + - Tests + - gh-129200: Multiple iOS testbed runners can now be started + at the same time without introducing an ambiguity over + simulator ownership. + - gh-130292: The iOS testbed will now run successfully on a + machine that has not previously run Xcode tests (such as CI + configurations). + - gh-130293: The tests of terminal colorization are no longer + sensitive to the value of the TERM variable in the testing + environment. + - gh-129401: Fix a flaky test in test_repr_rlock that checks + the representation of multiprocessing.RLock. + - gh-126332: Add unit tests for pyrepl. + - Security + - gh-127371: Avoid unbounded buffering for + tempfile.SpooledTemporaryFile.writelines(). Previously, + disk spillover was only checked after the lines iterator + had been exhausted. This is now done after each line is + written. + - Library + - gh-131204: Use monospace font from System Font Stack for + cross-platform support in difflib.HtmlDiff. + - gh-131196: Improve perfomance of uuid.UUID.hex and + uuid.UUID.__str__. + - gh-130940: The behavior of PyConfig.use_system_logger + was modified to be enabled by default on iOS. It remains + disabled by default on macOS. + - gh-131123: Supported completions for attributes of + convenience variables in pdb. + - gh-93096: Removed undocumented CLI python -m difflib. Use + python -m doctest Lib/difflib.py -v instead. Patch by + Semyon Moroz. + - gh-93096: Removed undocumented -t and -v arguments of + python -m pickle. Use python -m doctest Lib/pickle.py -v + instead. Patch by Semyon Moroz. + - gh-81267: Correct time.sleep() error message when an object + that cannot be interpreted as an integer or float is + provided. + - gh-93096: Removed undocumented -t and -v arguments + of python -m pickletools. Use python -m doctest + Lib/pickletools.py -v instead. Patch by Semyon Moroz. + - gh-131045: Fix issue with __contains__, values, and + pseudo-members for enum.Flag. + - gh-130959: Fix pure-Python implementation of + datetime.time.fromisoformat() to reject times with spaces + in fractional part (for example, 12:34:56.400 +02:00), + matching the C implementation. Patch by Michał Gorny. + - gh-130806: Deleting gzip.GzipFile before it is closed now + emits a ResourceWarning. + - gh-130637: Add validation for numeric response data in + poplib.POP3.stat() method + - gh-130665: Only apply locale to calendar CLI when set via + --locale and not via LANG environment variable. + - gh-130660: sys.ps1 and sys.ps2 are now restored after + code.interact() call. + - gh-130608: Remove dirs_exist_ok argument from + pathlib.Path.copy() and copy_into(). These methods are new + in Python 3.14. + - gh-130461: Remove .. index:: directives from the uuid + module documentation. These directives previously created + entries in the general index for getnode() as well as the + uuid1(), uuid3(), uuid4(), uuid5(), and uuid8() constructor + functions. + - gh-130379: The zipapp module now calculates the list of + files to be added to the archive before creating the + archive. This avoids accidentally including the target when + it is being created in the source directory. + - gh-82987: Inline breakpoints like breakpoint() or + pdb.set_trace() will always stop the program at calling + frame, ignoring the skip pattern (if any). + - gh-125377: at the beginning of the line in pdb + multi-line input will fill in a 4-space indentation now, + instead of inserting a \t character. + - gh-125413: Ensure the path returned from + pathlib.Path.copy() or move() has fresh info. + - gh-65697: stdlib configparser will now attempt to validate + that keys it writes will not result in file corruption + (creating a file unable to be accurately parsed by a future + read() call from the same parser). Attempting a corrupting + write() will raise an InvalidWriteError. + - gh-125413: Speed up Path.copy by making better use of info + internally. + - gh-130285: Fix corner case for random.sample() allowing the + counts parameter to specify an empty population. So now, + sample([], 0, counts=[]) and sample('abc', k=0, counts=[0, + 0, 0]) both give the same result as sample([], 0). + - gh-124703: Executing quit command in pdb will raise + bdb.BdbQuit when pdb is started from an interactive console + using breakpoint() or pdb.set_trace(). + - gh-107773: Make datetime subclass __repr__() consistent + both implementations. Patch by Semyon Moroz. + - gh-130250: Fix regression in traceback.print_last(). + - gh-123471: Make concurrent iterations over + itertools.batched safe under free-threading. + - gh-57537: Support breakpoints for zipimport modules on pdb + - gh-130230: Fix crash in pow() with only Decimal third + argument. + - gh-126944: Show explicit errors when required arguments of + pdb commands are missing + - gh-127750: Improve repr of functools.singledispatchmethod + methods and descriptors. + - gh-128520: Apply type conversion consistently in + pathlib.PurePath and Path methods can accept a path + object as an argument, such as match() and rename(). The + argument is now converted to path object if it lacks a + with_segments() attribute, and not otherwise. + - gh-118761: Reverts a change in the previous release + attempting to make some stdlib imports used within the + subprocess module lazy as this was causing errors during + __del__ finalizers calling methods such as terminate, or + kill, or send_signal. + - gh-130164: Fixed failure to raise TypeError in + inspect.Signature.bind() for positional-only arguments + provided by keyword when a variadic keyword argument (e.g. + **kwargs) is present. + - gh-130151: Fix reference leaks in _hashlib.hmac_new() and + _hashlib.hmac_digest(). Patch by Bénédikt Tran. + - gh-130145: Fix asyncio.AbstractEventloop.run_forever() when + another loop is already running. + - gh-130139: Fix bug where ast.parse() did not error on AST + input which is not of the correct type, when called with + optimize=False. + - gh-127260: Forbid the use of colon (“:”) as a fractional + component separator and other improvements to the + consistency of error raising between the C and Python + implementaitons of datetime.time.fromisoformat() and + datetime.datetime.fromisoformat(). Patch by Semyon Moroz. + - gh-85795: Using super() and __class__ closure variable in + user-defined methods of typing.NamedTuple subclasses is now + explicitly prohibited at runtime. Contributed by Bartosz + Sławecki in gh-130082. + - gh-118761: Improve import time of cmd by lazy importing + inspect and removing string. Patch by Semyon Moroz. + - gh-129726: Fix gzip.GzipFile raising an unraisable + exception during garbage collection when referring to + a temporary object by breaking the reference loop with + weakref. + - gh-127750: Remove broken functools.singledispatchmethod() + caching introduced in gh-85160. Achieve the same + performance using different optimization. + - gh-129948: Add support for shared set to + multiprocessing.managers.SyncManager via SyncManager.set(). + - gh-129965: Update MIME types for .avi and .wav. Add MIME + types for .docx, .pptx, .xlsx, .epub, .flac, .m4a, .odg, + .odp, .ods, .odt, .oga, .ogg, .ogx and .weba. Patch by Hugo + van Kemenade. + - gh-129889: Support context manager protocol by + contextvars.Token. Patch by Andrew Svetlov. + - gh-97850: Update the deprecation warning of + importlib.abc.Loader.load_module(). + - gh-129678: configparser.ConfigParser: do not write an empty + unnamed section + - gh-128641: Restore configparser.ConfigParser.read() + performance. + - gh-129569: Fix unicodedata.normalize() to always return a + built-in str object when given an input of a str subclass, + regardless of whether the string is already normalized. + - gh-128231: Execution of multiple statements in the new + REPL now stops immediately upon the first exception + encountered. Patch by Bartosz Sławecki. + - gh-96092: Fix bug in traceback.walk_stack() called with + None where it was skipping more frames than in prior + versions. This bug fix also changes walk_stack to walk the + stack in the frame where it was called rather than where it + first gets used. + - gh-129288: Add optional l2_cid and l2_bdaddr_type fields to + socket BTPROTO_L2CAP sockaddr tuple. + - gh-128703: Fix mimetypes.guess_type() to use default + mapping for empty Content-Type in registry. + - gh-128647: Eagerly write to buffers passed to + gzip.GzipFile’s readinto() and readinto1() implementations, + avoiding unnecessary allocations. Patch by Chris + Markiewicz. + - gh-128184: Improve display of annotationlib.ForwardRef + object within inspect.Signature representations. This + also fixes a NameError that was raised when using + dataclasses.dataclass() on classes with unresolvable + forward references. + - gh-128041: Add + concurrent.futures.ProcessPoolExecutor.terminate_workers() + and concurrent.futures.ProcessPoolExecutor.kill_workers() + as ways to terminate or kill all living worker processes + in the given pool. (Contributed by Charles Machalow in + gh-130849.) + - gh-127647: Add protocols io.Reader and io.Writer + as alternatives to typing.IO, typing.TextIO, and + typing.BinaryIO. + - gh-109798: Added additional information into error messages + in datetime, and made the messages more consistent between + the C and Python implementations. Patch by Semyon Moroz. + - gh-125746: Delay deprecated + zipimport.zipimporter.load_module() removal time to + 3.15. Use zipimport.zipimporter.exec_module() instead. + - gh-74028: Add the optional buffersize parameter to + concurrent.futures.Executor.map() to limit the number of + submitted tasks whose results have not yet been yielded. If + the buffer is full, iteration over the iterables pauses + until a result is yielded from the buffer. + - gh-124927: Non-printing characters are now properly handled + in the new REPL. + - gh-124096: Turn on virtual terminal mode and enable + bracketed paste in REPL on Windows console. (If the + terminal does not support bracketed paste, enabling it does + nothing.) + - gh-89083: Add uuid.uuid7() for generating UUIDv7 objects as + specified in RFC 9562. Patch by Bénédikt Tran. + - gh-89083: Add uuid.uuid6() for generating UUIDv6 objects as + specified in RFC 9562. Patch by Bénédikt Tran. + - gh-117151: Increase io.DEFAULT_BUFFER_SIZE from 8k to 128k + and adjust open() on platforms where os.fstat() provides a + st_blksize field (such as Linux) to use max(min(blocksize, + 8 MiB), io.DEFAULT_BUFFER_SIZE) rather than always + using the device block size. This should improve I/O + performance. Patch by Romain Morotti. + - gh-105499: Make types.UnionType an alias for + typing.Union. Both int | str and Union[int, str] now create + instances of the same type. Patch by Jelle Zijlstra. + - gh-93096: Document the command-line for mimetypes. It now + exits with 1 on failure instead of 0 and 2 on incorrect + command-line parameters instead of 1. Also, errors are + printed to stderr instead of stdout and their text is made + tighter. Patch by Oleg Iarygin and Hugo van Kemenade. + - Documentation + - gh-125722: Require Sphinx 8.2.0 or later to build the + Python documentation. Patch by Adam Turner. + - gh-129712: The wheel tags supported by each macOS universal + SDK option are now documented. + - gh-46236: C API: Document PyUnicode_RSplit(), + PyUnicode_Partition() and PyUnicode_RPartition(). + - Core and Builtins + - gh-131141: Fix data race in sys.monitoring instrumentation + while registering callback. + - gh-130804: Fix support of unicode characters on Windows in + the new REPL. + - gh-130932: Fix incorrect exception handling in + _PyModule_IsPossiblyShadowing + - gh-122029: sys.setprofile() and sys.settrace() will not + generate a c_call event for INSTRUMENTED_CALL_FUNCTION_EX + if the callable is a method with a C function wrapped, + because we do not generate c_return event in such case. + - gh-129964: Fix JIT crash on Windows on Arm. Patch by Diego + Russo and Brandt Bucher. + - gh-130851: Fix a crash in the free threading build when + constructing a code object with co_consts that contains + instances of types that are not otherwise generated by the + bytecode compiler. + - gh-128534: Ensure that both left and right branches have + the same source for async for loops. Add these branches to + the co_branches() iterator. + - gh-130794: Fix memory leak in the free threaded build + when resizing a shared list or dictionary from multiple + short-lived threads. + - gh-130415: Improve JIT understanding of integers in boolean + context. + - gh-130382: Fix PyRefTracer_DESTROY not being sent from + Python/ceval.c Py_DECREF(). + - gh-130574: Renumber RESUME from 149 to 128. + - gh-124878: Fix race conditions during runtime finalization + that could lead to accessing freed memory. + - gh-130415: Improve the experimental JIT’s ability to narrow + boolean values based on the results of truthiness tests. + - gh-130618: Fix a bug that was causing UnicodeDecodeError or + SystemError to be raised when using f-strings with lambda + expressions with non-ASCII characters. Patch by Pablo + Galindo + - gh-123044: Make sure that the location of branch targets in + match cases is in the body, not the pattern. + - gh-128534: Add branch monitoring (BRANCH_LEFT and + BRANCH_RIGHT events) for async for loops. + - gh-130163: Fix possible crashes related to concurrent + change and use of the sys module attributes. + - gh-122029: INSTRUMENTED_CALL_KW will expand the method + before monitoring to reflect the actual behavior more + accurately. + - gh-130415: Improve JIT’s ability to optimize strings in + boolean contexts. + - gh-130396: Use actual stack limits (from + pthread_getattr_np(3)) for linux, and other systems with + _GNU_SOURCE defined, when determining limits for C stack + protection. + - gh-128396: Fix a crash that occurs when calling locals() + inside an inline comprehension that uses the same local + variable as the outer frame scope where the variable is a + free or cell var. + - gh-129107: Fix two more bytearray functions for free + threading. + - gh-127705: Use tagged references (_PyStackRef) for + the default build as well as for the free-threading + build. This has a small negative performance impact + short-term but will enable larger speedups in the future + and signficantly reduce maintenance costs by allowing a + single implementation of tagged references in the future. + - gh-130094: Fix two race conditions involving concurrent + imports that could lead to spurious failures with + ModuleNotFoundError. + - gh-129107: Make bytearray iterator safe under free + threading. + - gh-115802: Use the more efficient “medium” code model for + JIT-compiled code on supported platforms. + - gh-107956: A build-details.json file is now install in the + platform-independent standard library directory (PEP 739 + implementation). + - gh-116042: Fix location for SyntaxErrors of invalid escapes + in the tokenizer. Patch by Pablo Galindo + - gh-91079: Change C stack overflow protection to consider + the amount of stack consumed, rather than a counter. This + allows deeper recursion in many cases, but remains safe. + - gh-129715: Improve the experimental JIT’s handling of + returns to unknown callers. + - gh-129983: Fix data race in compile_template in sre.c. + - gh-129967: Fix a race condition in the free threading build + when repr(set) is called concurrently with set.clear(). + - gh-129953: The internal (evaluation) stack is now spilled + to memory whenever execution esacpes from the interpreter + or JIT compiled code. This should have no observable effect + in either Python or builtin extensions, but will allow + various important optimizations in the future. + - gh-129515: Clarify syntax error messages for conditional + expressions when a statement is specified before an if or + after an else keyword. + - gh-129349: bytes.fromhex() and bytearray.fromhex() now + accepts ASCII bytes and bytes-like objects. + - gh-129149: Add fast path for medium-size integers in + PyLong_FromSsize_t(). Patch by Chris Eibl. + - gh-129107: Make the bytearray safe under free threading. + - gh-128974: Fix a crash in UnicodeError.__str__ when custom + attributes implement __str__() with side-effects. Patch by + Bénédikt Tran. + - gh-126085: typing.TypeAliasType now supports star + unpacking. + - gh-125331: from __future__ import barry_as_FLUFL now works + in more contexts, including when it is used in files, + with the -c flag, and in the REPL when there are multiple + statements on the same line. Previously, it worked only + on subsequent lines in the REPL, and when the appropriate + flags were passed directly to compile(). Patch by Pablo + Galindo. + - gh-121464: Make concurrent iterations over the same + enumerate() iterator safe under free-threading. See + Strategy for Iterators in Free Threading. + - gh-87790: Support underscore and comma as thousands + separators in the fractional part for floating-point + presentation types of the new-style string formatting (with + format() or f-strings). Patch by Sergey B Kirpichev. + - gh-124445: Fix specialization of generic aliases that are + generic over a typing.ParamSpec and have been specialized + with a nested type variable. + - gh-120608: Adapt reversed() for use in the free-theading + build. The reversed() is still not thread-safe in the sense + that concurrent iterations may see the same object, but + they will not corrupt the interpreter state. + - gh-100388: Fix the platform._sys_version() method when + __DATE__ is undefined at buildtime by changing default + buildtime datetime string to the UNIX epoch. + - bpo-44369: Improve syntax errors for incorrectly closed + strings. Patch by Pablo Galindo + - C API + - gh-111178: Fix PyCMethod API: replace size_t nargs with + Py_ssize_t nargs in PyCMethod. Patch by Victor Stinner. + - gh-130947: Add again PySequence_Fast() to the limited C + API. Patch by Victor Stinner. + - gh-128863: The following private functions are deprecated + and planned for removal in Python 3.18: + - _PyUnicodeWriter_Init(): replace + _PyUnicodeWriter_Init(&writer) with writer = + PyUnicodeWriter_Create(0). + - _PyUnicodeWriter_Finish(): replace + _PyUnicodeWriter_Finish(&writer) with + PyUnicodeWriter_Finish(writer). + - _PyUnicodeWriter_Dealloc(): replace + _PyUnicodeWriter_Dealloc(&writer) with + PyUnicodeWriter_Discard(writer). + - _PyUnicodeWriter_WriteChar(): replace + _PyUnicodeWriter_WriteChar(&writer, ch) with + PyUnicodeWriter_WriteChar(writer, ch). + - _PyUnicodeWriter_WriteStr(): replace + _PyUnicodeWriter_WriteStr(&writer, str) with + PyUnicodeWriter_WriteStr(writer, str). + - _PyUnicodeWriter_WriteSubstring(): replace + _PyUnicodeWriter_WriteSubstring(&writer, str, start, end) + with PyUnicodeWriter_WriteSubstring(writer, str, start, + end). + - _PyUnicodeWriter_WriteASCIIString(): replace + _PyUnicodeWriter_WriteASCIIString(&writer, str) with + PyUnicodeWriter_WriteUTF8(writer, str). + - _PyUnicodeWriter_WriteLatin1String(): replace + _PyUnicodeWriter_WriteLatin1String(&writer, str) with + PyUnicodeWriter_WriteUTF8(writer, str). + - _PyUnicodeWriter_Prepare(): (no replacement). + - _PyUnicodeWriter_PrepareKind(): (no replacement). + - The pythoncapi-compat project can be used to get these new + public functions on Python 3.13 and older. + - Patch by Victor Stinner. + - gh-45325: Add a new p format parameter to Py_BuildValue() + that allows to take a C integer and produce a Python bool + object. Patch by Pablo Galindo. + - Build + - gh-131035: Use -flto=thin for faster build times using + clang-cl on Windows. Patch by Chris Eibl. + - gh-130740: Ensure that Python.h is included before + stdbool.h unless pyconfig.h is included before or in some + platform-specific contexts. + - gh-130090: Building with PlatformToolset=ClangCL on Windows + now supports PGO (profile guided optimization). Patch by + Chris Eibl with invaluable support from Steve Dover. + - gh-129819: Allow building the JIT with the tailcall + interpreter. + - gh-129989: Fix a bug where the tailcall interpreter was + enabled when --without-tail-call-interp was provided to the + configure script. + - gh-129838: Don’t redefine _Py_NO_SANITIZE_UNDEFINED when + compiling with a recent GCC version and undefined sanitizer + enabled. + - gh-82909: #pragma-based linking with python3*.lib can + now be switched off with Py_NO_LINK_LIB. Patch by + Jean-Christophe Fillion-Robin. + ------------------------------------------------------------------- Mon Mar 10 15:44:31 UTC 2025 - Bernhard Wiedemann diff --git a/python314.spec b/python314.spec index 3d25295..498910b 100644 --- a/python314.spec +++ b/python314.spec @@ -157,8 +157,8 @@ # _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~a5 -%define tarversion 3.14.0a5 +Version: 3.14.0~a7 +%define tarversion 3.14.0a7 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter diff --git a/skip-test_pyobject_freed_is_freed.patch b/skip-test_pyobject_freed_is_freed.patch index 6c7d4a3..20369fd 100644 --- a/skip-test_pyobject_freed_is_freed.patch +++ b/skip-test_pyobject_freed_is_freed.patch @@ -2,11 +2,11 @@ Lib/test/test_capi/test_mem.py | 1 + 1 file changed, 1 insertion(+) -Index: Python-3.13.0a3/Lib/test/test_capi/test_mem.py +Index: Python-3.14.0a7/Lib/test/test_capi/test_mem.py =================================================================== ---- Python-3.13.0a3.orig/Lib/test/test_capi/test_mem.py -+++ Python-3.13.0a3/Lib/test/test_capi/test_mem.py -@@ -109,6 +109,7 @@ class PyMemDebugTests(unittest.TestCase) +--- Python-3.14.0a7.orig/Lib/test/test_capi/test_mem.py 2025-04-12 23:55:23.949981777 +0200 ++++ Python-3.14.0a7/Lib/test/test_capi/test_mem.py 2025-04-12 23:58:00.502480186 +0200 +@@ -114,6 +114,7 @@ def test_pyobject_forbidden_bytes_is_freed(self): self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed') diff --git a/subprocess-raise-timeout.patch b/subprocess-raise-timeout.patch index 92a02b9..09628b5 100644 --- a/subprocess-raise-timeout.patch +++ b/subprocess-raise-timeout.patch @@ -1,16 +1,21 @@ --- - Lib/test/test_subprocess.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + Lib/test/test_subprocess.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) ---- 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') +Index: Python-3.14.0a7/Lib/test/test_subprocess.py +=================================================================== +--- Python-3.14.0a7.orig/Lib/test/test_subprocess.py 2025-04-12 23:55:25.222319332 +0200 ++++ Python-3.14.0a7/Lib/test/test_subprocess.py 2025-04-12 23:56:40.450491892 +0200 +@@ -156,7 +156,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) + def test_check_call_zero(self): + # check_call() function with zero return code