diff --git a/F00251-change-user-install-location.patch b/F00251-change-user-install-location.patch index f136605..ddc1ee6 100644 --- a/F00251-change-user-install-location.patch +++ b/F00251-change-user-install-location.patch @@ -24,58 +24,12 @@ Co-authored-by: Miro Hrončok Co-authored-by: Michal Cyprian Co-authored-by: Lumír Balhar --- - Lib/site.py | 9 ++++++- - Lib/sysconfig.py | 49 +++++++++++++++++++++++++++++++++++++- - Lib/test/test_sysconfig.py | 17 +++++++++++-- - 3 files changed, 71 insertions(+), 4 deletions(-) + Lib/sysconfig/__init__.py | 51 ++++++++++++++++++++++++++++++++++++++++++++- + Lib/test/test_sysconfig.py | 17 +++++++++++++-- + 2 files changed, 65 insertions(+), 3 deletions(-) -Index: Python-3.13.0b4/Lib/test/test_sysconfig.py -=================================================================== ---- Python-3.13.0b4.orig/Lib/test/test_sysconfig.py -+++ Python-3.13.0b4/Lib/test/test_sysconfig.py -@@ -121,8 +121,19 @@ class TestSysConfig(unittest.TestCase): - for scheme in _INSTALL_SCHEMES: - for name in _INSTALL_SCHEMES[scheme]: - expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) -+ tested = get_path(name, scheme) -+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe -+ if tested.startswith('/usr/local'): -+ # /usr/local should only be used in posix_prefix -+ self.assertEqual(scheme, 'posix_prefix') -+ # Fedora CI runs tests for venv and virtualenv that check for other prefixes -+ self.assertEqual(sys.prefix, '/usr') -+ # When building the RPM of Python, %check runs this with RPM_BUILD_ROOT set -+ # Fedora CI runs this with RPM_BUILD_ROOT unset -+ self.assertNotIn('RPM_BUILD_ROOT', os.environ) -+ tested = tested.replace('/usr/local', '/usr') - self.assertEqual( -- os.path.normpath(get_path(name, scheme)), -+ os.path.normpath(tested), - os.path.normpath(expected), - ) - -@@ -377,7 +388,7 @@ class TestSysConfig(unittest.TestCase): - self.assertTrue(os.path.isfile(config_h), config_h) - - def test_get_scheme_names(self): -- wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv'] -+ wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv', 'rpm_prefix'] - if HAS_USER_BASE: - wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) - self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) -@@ -389,6 +400,8 @@ class TestSysConfig(unittest.TestCase): - cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" - self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) - -+ @unittest.skipIf('RPM_BUILD_ROOT' not in os.environ, -+ "Test doesn't expect Fedora's paths") - def test_user_similar(self): - # Issue #8759: make sure the posix scheme for the users - # is similar to the global posix_prefix one -Index: Python-3.13.0b4/Lib/sysconfig/__init__.py -=================================================================== ---- Python-3.13.0b4.orig/Lib/sysconfig/__init__.py -+++ Python-3.13.0b4/Lib/sysconfig/__init__.py +--- 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'] @@ -88,7 +42,7 @@ Index: Python-3.13.0b4/Lib/sysconfig/__init__.py def _get_implementation(): return 'Python' -@@ -167,6 +172,19 @@ if _HAS_USER_BASE: +@@ -167,13 +172,28 @@ if _HAS_USER_BASE: }, } @@ -108,7 +62,16 @@ Index: Python-3.13.0b4/Lib/sysconfig/__init__.py _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data') -@@ -261,11 +279,40 @@ def _extend_dict(target_dict, other_dict + _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() +@@ -259,11 +279,40 @@ def _extend_dict(target_dict, other_dict target_dict[key] = value @@ -150,3 +113,44 @@ Index: Python-3.13.0b4/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 +--- 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) ++ tested = get_path(name, scheme) ++ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe ++ if tested.startswith('/usr/local'): ++ # /usr/local should only be used in posix_prefix ++ self.assertEqual(scheme, 'posix_prefix') ++ # Fedora CI runs tests for venv and virtualenv that check for other prefixes ++ self.assertEqual(sys.prefix, '/usr') ++ # When building the RPM of Python, %check runs this with RPM_BUILD_ROOT set ++ # Fedora CI runs this with RPM_BUILD_ROOT unset ++ self.assertNotIn('RPM_BUILD_ROOT', os.environ) ++ tested = tested.replace('/usr/local', '/usr') + self.assertEqual( +- os.path.normpath(get_path(name, scheme)), ++ os.path.normpath(tested), + os.path.normpath(expected), + ) + +@@ -386,7 +397,7 @@ class TestSysConfig(unittest.TestCase): + self.assertTrue(os.path.isfile(config_h), config_h) + + def test_get_scheme_names(self): +- wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv'] ++ wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv', 'rpm_prefix'] + 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): + cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" + self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) + ++ @unittest.skipIf('RPM_BUILD_ROOT' not in os.environ, ++ "Test doesn't expect Fedora's paths") + def test_user_similar(self): + # Issue #8759: make sure the posix scheme for the users + # is similar to the global posix_prefix one diff --git a/Python-3.14.0a1.tar.xz b/Python-3.14.0a1.tar.xz deleted file mode 100644 index 6ee67d6..0000000 --- a/Python-3.14.0a1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e464b0cbb7535e2db34262fd19a0a393d0e62be0f43b1513ed98379b054ead4 -size 22613224 diff --git a/Python-3.14.0a1.tar.xz.sigstore b/Python-3.14.0a1.tar.xz.sigstore deleted file mode 100644 index 8faf344..0000000 --- a/Python-3.14.0a1.tar.xz.sigstore +++ /dev/null @@ -1 +0,0 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlOgAwIBAgIUXNqbdBZJ9fps7cdl20sumJAq9qYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQxMDE1MjMwNDE2WhcNMjQxMDE1MjMxNDE2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcg+1tju2Qlwd/FxtfGT0xvTr74Z2Y4BSc2TvaDBBmRA/PtimxzlSdMhGDsfqHQLGi+b8OuTFW3Zox2aqHpqDCaOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUVSMKNgZVgAfm3Hd9XuRrKl5zt40wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABkpJsy7QAAAQDAEYwRAIgfOwKhNkvL09iC5/uS5iTGmnIQbXjbUM1woNbLOSYA8sCIEb2hbK7hH+jGAxJQEG9OUlqHb9GwD7TVMxHdVMzpmoOMAoGCCqGSM49BAMDA2gAMGUCMCBvcdz/4awBy5UdMRubMhvQD3eF8sdlrEhkk1ymjVZzJW2gD1KQdzIxHNK/7F9hegIxAJ+lw+fOlGvkIB+txzmL6pg9Pcsf2x9DVpisHPW4WUUbB7VORIamogW8OSAuQsZ6tQ=="}, "tlogEntries": [{"logIndex": "140392200", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1729033456", "inclusionPromise": {"signedEntryTimestamp": "MEUCIEXI2s1U7Sve7CZ/p571004SLB9u5/ZT3Hf4tW9plQL/AiEAvvOg7se8XhZ+UNi7Qujx6bQxP0nHTrORgbP0Rg+xLGQ="}, "inclusionProof": {"logIndex": "18487938", "rootHash": "hSjsoi7BjBrhzW7Ceq8eDHavGqCXfJDqV1uLCH43rP0=", "treeSize": "18487939", "hashes": ["u79/W8pLop367cAKW1nkrasjLkk950s+chPOGd+YM7g=", "6/AN6/VWkeVC6ibK0wOaJWLDgeGYUPzGu++z5+WRpLw=", "XDRVudeM0USBGv0wfrkbUFLX5UPIMbXd7Jn+1FaHfXw=", "scHEQm8K7oRERzNSJaNlqN0E1OdiAscc4j9riGrA62g=", "/mosl9RAejdUfiMbl+lvD5kTT8EMHe3G8ceEh5ZmcAs=", "DPPCrptvLQKGtAJAKyVPBnf+K6vDmh24s1GP202TKto=", "dXjYLwyHqcxTI9MyukBet+9OyYvXCMvvLJJl9sIYKyA=", "rAAfgmPXo8TJp1LmkVDhAYrf0WzE4X4/mDuW1pwVM3Y=", "gf+9m552B3PnkWnO0o4KdVvjcT3WVHLrCbf1DoVYKFw="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n18487939\nhSjsoi7BjBrhzW7Ceq8eDHavGqCXfJDqV1uLCH43rP0=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAgDgD5PWqYAJ4/g3gd2iOpEzZI/0I/WH5zpJyi9r4DcECIQC+1ibcP0dHlJ6v7Jd7rq8ojgP5eTKxsEv7tTU8erfyTQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzZTQ2NGIwY2JiNzUzNWUyZGIzNDI2MmZkMTlhMGEzOTNkMGU2MmJlMGY0M2IxNTEzZWQ5ODM3OWIwNTRlYWQ0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQVRMMFNVQnVnWW5NSFZjbzYrcGtPTTkxSVd3cHQ3bis3VTdmZlNCeXU1WUFpQXU0RkxJSzJiU1puSmxranFkOUgwV3hBdnE3NmVPeFZ4L21JZytxN0N0NkE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVldFNXhZbVJDV2tvNVpuQnpOMk5rYkRJd2MzVnRTa0Z4T1hGWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFJlRTFFUlRGTmFrMTNUa1JGTWxkb1kwNU5hbEY0VFVSRk1VMXFUWGhPUkVVeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZqWnlzeGRHcDFNbEZzZDJRdlJuaDBaa2RVTUhoMlZISTNORm95V1RSQ1UyTXlWSFlLWVVSQ1FtMVNRUzlRZEdsdGVIcHNVMlJOYUVkRWMyWnhTRkZNUjJrcllqaFBkVlJHVnpOYWIzZ3lZWEZJY0hGRVEyRlBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZXVTAxTENrNW5XbFpuUVdadE0waGtPVmgxVW5KTGJEVjZkRFF3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnJjRXB6ZVRkUlFRcEJRVkZFUVVWWmQxSkJTV2RtVDNkTGFFNXJka3d3T1dsRE5TOTFVelZwVkVkdGJrbFJZbGhxWWxWTk1YZHZUbUpNVDFOWlFUaHpRMGxGWWpKb1lrczNDbWhJSzJwSFFYaEtVVVZIT1U5VmJIRklZamxIZDBRM1ZGWk5lRWhrVmsxNmNHMXZUMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMURRbllLWTJSNkx6UmhkMEo1TlZWa1RWSjFZazFvZGxGRU0yVkdPSE5rYkhKRmFHdHJNWGx0YWxaYWVrcFhNbWRFTVV0UlpIcEplRWhPU3k4M1JqbG9aV2RKZUFwQlNpdHNkeXRtVDJ4SGRtdEpRaXQwZUhwdFREWndaemxRWTNObU1uZzVSRlp3YVhOSVVGYzBWMVZWWWtJM1ZrOVNTV0Z0YjJkWE9FOVRRWFZSYzFvMkNuUlJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "PkZLDLt1NeLbNCYv0ZoKOT0OYr4PQ7FRPtmDebBU6tQ="}, "signature": "MEQCIATL0SUBugYnMHVco6+pkOM91IWwpt7n+7U7ffSByu5YAiAu4FLIK2bSZnJlkjqd9H0WxAvq76eOxVx/mIg+q7Ct6A=="}} 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 557d669..6f3a0ff 100644 --- a/bpo-31046_ensurepip_honours_prefix.patch +++ b/bpo-31046_ensurepip_honours_prefix.patch @@ -139,7 +139,7 @@ Co-Authored-By: Xavier de Gaye --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -2209,7 +2209,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL +@@ -2228,7 +2228,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -148,7 +148,7 @@ Co-Authored-By: Xavier de Gaye fi .PHONY: altinstall -@@ -2220,7 +2220,7 @@ altinstall: commoninstall +@@ -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 1d91f6e..c0d9dc3 100644 --- a/fix-test-recursion-limit-15.6.patch +++ b/fix-test-recursion-limit-15.6.patch @@ -4,7 +4,7 @@ --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py -@@ -24,6 +24,9 @@ from test.support import (script_helper, +@@ -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 @@ -14,7 +14,7 @@ class TestSpecifics(unittest.TestCase): def compile_single(self, source): -@@ -120,6 +123,7 @@ class TestSpecifics(unittest.TestCase): +@@ -121,6 +124,7 @@ class TestSpecifics(unittest.TestCase): self.assertEqual(d['z'], 12) @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") @@ -22,7 +22,7 @@ def test_extended_arg(self): repeat = int(get_c_recursion_limit() * 0.9) longexpr = 'x = x or ' + '-x' * repeat -@@ -704,6 +708,7 @@ class TestSpecifics(unittest.TestCase): +@@ -709,6 +713,7 @@ class TestSpecifics(unittest.TestCase): @support.cpython_only @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") diff --git a/fix_test_ftp_error.patch b/fix_test_ftp_error.patch deleted file mode 100644 index 721f118..0000000 --- a/fix_test_ftp_error.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- - Lib/test/test_urllib2.py | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/Lib/test/test_urllib2.py -+++ b/Lib/test/test_urllib2.py -@@ -1,3 +1,4 @@ -+import logging - import unittest - from test import support - from test.support import os_helper -@@ -29,6 +30,10 @@ import http.client - - support.requires_working_socket(module=True) - -+logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', -+ level=logging.DEBUG) -+log = logging.getLogger() -+ - # XXX - # Request - # CacheFTPHandler (hard to write) -@@ -731,6 +736,9 @@ def sanepathname2url(path): - - class HandlerTests(unittest.TestCase): - -+ def setUp(self): -+ log.debug('Is network available: {}'.format(support.is_resource_enabled('network'))) -+ - def test_ftp(self): - class MockFTPWrapper: - def __init__(self, data): -@@ -794,6 +802,7 @@ class HandlerTests(unittest.TestCase): - self.assertEqual(headers.get("Content-type"), mimetype) - self.assertEqual(int(headers["Content-length"]), len(data)) - -+ @support.requires_resource('network') - def test_ftp_error(self): - class ErrorFTPHandler(urllib.request.FTPHandler): - def __init__(self, exception): diff --git a/fix_test_generated_data.patch b/fix_test_generated_data.patch deleted file mode 100644 index 0cb8569..0000000 --- a/fix_test_generated_data.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- - Lib/test/test_ctypes/test_generated_structs.py | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/Lib/test/test_ctypes/test_generated_structs.py -+++ b/Lib/test/test_ctypes/test_generated_structs.py -@@ -12,6 +12,7 @@ Run this module to regenerate the files: - import unittest - from test.support import import_helper - import re -+import sys - from dataclasses import dataclass - from functools import cached_property - -@@ -21,6 +22,11 @@ from ctypes import sizeof, alignment, po - _ctypes_test = import_helper.import_module("_ctypes_test") - - -+def is_32bit(): -+ # or alternatively (slightly slower) -+ # (struct.calcsize("P") * 8) == 32 -+ return not (sys.maxsize > 2**32) -+ - # ctypes erases the difference between `c_int` and e.g.`c_int16`. - # To keep it, we'll use custom subclasses with the C name stashed in `_c_name`: - class c_bool(ctypes.c_bool): -@@ -415,6 +421,7 @@ class AnonBitfields(Structure): - - - class GeneratedTest(unittest.TestCase): -+ @unittest.skipIf(is_32bit(), 'fails on 32bit platform (gh#python/cpython#121938)') - def test_generated_data(self): - """Check that a ctypes struct/union matches its C equivalent. - diff --git a/gh125535-Lib_IntVector_Intrinsics_vec128.patch b/gh125535-Lib_IntVector_Intrinsics_vec128.patch deleted file mode 100644 index 40ba90e..0000000 --- a/gh125535-Lib_IntVector_Intrinsics_vec128.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 091fd6240c6b263d848e8a5d20da042258f648b5 Mon Sep 17 00:00:00 2001 -From: Jonathan Protzenko -Date: Thu, 10 Oct 2024 11:59:06 +0200 -Subject: [PATCH 1/2] Try for Debian x86 - ---- - Misc/sbom.spdx.json | 4 ++-- - Modules/_hacl/libintvector.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - ---- a/Misc/sbom.spdx.json -+++ b/Misc/sbom.spdx.json -@@ -804,11 +804,11 @@ - "checksums": [ - { - "algorithm": "SHA1", -- "checksumValue": "d5d85ee8f0bd52781fe470d0bf73ec388ddb3999" -+ "checksumValue": "f4a33ad535768b860362ab0bd033a70da0b524b7" - }, - { - "algorithm": "SHA256", -- "checksumValue": "9a421b998add98fe366374641c4edb27617ff539a59f0963879f345065d3d39d" -+ "checksumValue": "433cdf4ba80bc72e0cea5d4b420ff18676baeafdb5ba19adf5b7fb33e90b424b" - } - ], - "fileName": "Modules/_hacl/libintvector.h" ---- a/Modules/_hacl/libintvector.h -+++ b/Modules/_hacl/libintvector.h -@@ -19,7 +19,7 @@ - - #define Lib_IntVector_Intrinsics_bit_mask64(x) -((x) & 1) - --#if defined(__x86_64__) || defined(_M_X64) -+#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) - - #if defined(HACL_CAN_COMPILE_VEC128) - diff --git a/python-3.3.0b1-fix_date_time_compiler.patch b/python-3.3.0b1-fix_date_time_compiler.patch index ab4e2e6..3fc2530 100644 --- a/python-3.3.0b1-fix_date_time_compiler.patch +++ b/python-3.3.0b1-fix_date_time_compiler.patch @@ -4,7 +4,7 @@ --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1730,11 +1730,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ +@@ -1743,11 +1743,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ $(DTRACE_OBJS) \ $(srcdir)/Modules/getbuildinfo.c $(CC) -c $(PY_CORE_CFLAGS) \ @@ -22,4 +22,4 @@ + Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h Makefile $(PYTHON_HEADERS) $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \ - -DPREFIX='"$(prefix)"' \ + -DPREFIX='"$(host_prefix)"' \ diff --git a/python-3.3.0b1-test-posix_fadvise.patch b/python-3.3.0b1-test-posix_fadvise.patch index 81c0deb..0a6b091 100644 --- a/python-3.3.0b1-test-posix_fadvise.patch +++ b/python-3.3.0b1-test-posix_fadvise.patch @@ -4,7 +4,7 @@ --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py -@@ -435,7 +435,7 @@ class PosixTester(unittest.TestCase): +@@ -437,7 +437,7 @@ class PosixTester(unittest.TestCase): def test_posix_fadvise(self): fd = os.open(os_helper.TESTFN, os.O_RDONLY) try: diff --git a/python314.changes b/python314.changes index ad7ec4a..a617c42 100644 --- a/python314.changes +++ b/python314.changes @@ -1,3 +1,491 @@ +------------------------------------------------------------------- +Tue Nov 19 22:08:24 UTC 2024 - Matej Cepl + +- 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 + initialization happens after sysconfig has built a cache + for sysconfig.get_config_vars(). + - gh-126188: Update bundled pip to 24.3.1 + - gh-126766: Fix issue where urllib.request.url2pathname() + failed to discard two leading slashes introducing an empty + authority section. + - gh-126705: Allow os.PathLike to be a base for Protocols. + - gh-126699: Allow collections.abc.AsyncIterator to be a base + for Protocols. + - gh-126654: Fix crash when non-dict was passed to several + functions in _interpreters module. + - gh-104745: Limit starting a patcher (from + unittest.mock.patch() or unittest.mock.patch.object()) more + than once without stopping it + - gh-126595: Fix a crash when instantiating itertools.count + with an initial count of sys.maxsize on debug builds. Patch + by Bénédikt Tran. + - gh-120423: Fix issue where urllib.request.pathname2url() + mishandled Windows paths with embedded forward slashes. + - gh-126565: Improve performances of zipfile.Path.open() for + non-reading modes. + - gh-126505: Fix bugs in compiling case-insensitive regular + expressions with character classes containing non-BMP + characters: upper-case non-BMP character did was ignored + and the ASCII flag was ignored when matching a character + range whose upper bound is beyond the BMP region. + - gh-117378: Fixed the multiprocessing "forkserver" + start method forkserver process to correctly inherit + the parent’s sys.path during the importing of + multiprocessing.set_forkserver_preload() modules in the + same manner as sys.path is configured in workers before + executing work items. + - This bug caused some forkserver module preloading to + silently fail to preload. This manifested as a performance + degration in child processes when the sys.path was required + due to additional repeated work in every worker. + - It could also have a side effect of "" remaining in + sys.path during forkserver preload imports instead of the + absolute path from os.getcwd() at multiprocessing import + time used in the worker sys.path. + - The sys.path differences between phases in the child + process could potentially have caused preload to import + incorrect things from the wrong location. We are unaware of + that actually having happened in practice. + - gh-125679: The multiprocessing.Lock and + multiprocessing.RLock repr values no longer say “unknown” + on macOS. + - gh-126476: Raise calendar.IllegalMonthError (now a subclass + of IndexError) for calendar.month() when the input month is + not correct. + - gh-126489: The Python implementation of pickle no longer + calls pickle.Pickler.persistent_id() for the result of + persistent_id(). + - gh-126451: Register the contextvars.Context type to + collections.abc.Mapping. + - gh-126175: Add msg, doc, pos, lineno and colno attributes + to tomllib.TOMLDecodeError. Deprecate instantiating with + free-form arguments. + - gh-89416: Add RFC 9559 MIME types for Matroska audiovisual + container formats. Patch by Hugo van Kemenade. + - gh-126417: Register the multiprocessing.managers.DictProxy + and multiprocessing.managers.ListProxy types in + multiprocessing.managers to collections.abc.MutableMapping + and collections.abc.MutableSequence, respectively. + - gh-126390: Add support for returning intermixed options and + non-option arguments in order in getopt.gnu_getopt(). + - gh-126374: Add support for options with optional arguments + in the getopt module. + - gh-126363: Speed up pattern parsing in pathlib.Path.glob() + by skipping creation of a pathlib.Path object for the + pattern. + - gh-126353: asyncio.get_event_loop() now does not implicitly + creates an event loop. It now raises a RuntimeError if + there is no set event loop. Patch by Kumar Aditya. + - gh-126313: Fix an issue in curses.napms() when + curses.initscr() has not yet been called. Patch by Bénédikt + Tran. + - gh-126303: Fix pickling and copying of os.sched_param + objects. + - gh-126138: Fix a use-after-free crash on asyncio.Task + objects whose underlying coroutine yields an object that + implements an evil __getattribute__(). Patch by Nico + Posada. + - gh-120057: Replace the os.environ.refresh() method with a + new os.reload_environ() function. Patch by Victor Stinner. + - gh-126220: Fix crash in cProfile.Profile and + _lsprof.Profiler when their callbacks were directly called + with 0 arguments. + - gh-126212: Fix issue where urllib.request.pathname2url() + and url2pathname() removed slashes from Windows DOS drive + paths and URLs. + - gh-126223: Raise a UnicodeEncodeError instead of a + SystemError upon calling _interpreters.create() with an + invalid Unicode character. + - gh-126205: Fix issue where urllib.request.pathname2url() + generated URLs beginning with four slashes (rather than + two) when given a Windows UNC path. + - gh-126156: Improved performances of creating Morsel objects + by a factor of 3.8x. + - gh-126105: Fix a crash in ast when the ast.AST._fields + attribute is deleted. + - gh-126106: Fixes a possible NULL pointer dereference in + ssl. + - gh-126080: Fix a use-after-free crash on asyncio.Task + objects for which the underlying event loop implements an + evil __getattribute__(). Reported by Nico-Posada. Patch by + Bénédikt Tran. + - gh-125322: Correct detection of complex numbers support in + libffi. + - gh-126083: Fixed a reference leak in asyncio.Task objects + when reinitializing the same object with a non-None + context. Patch by Nico Posada. + - gh-126068: Fix exceptions in the argparse module so that + only error messages for ArgumentError and ArgumentTypeError + are now translated. ArgumentError is now only used for + command line errors, not for logical errors in the + program. TypeError is now raised instead of ValueError for + some logical errors. + - gh-125413: Add pathlib.Path.scandir() method to efficiently + fetch directory children and their file attributes. This is + a trivial wrapper of os.scandir(). + - gh-125984: Fix use-after-free crashes on asyncio.Future + objects for which the underlying event loop implements an + evil __getattribute__(). Reported by Nico-Posada. Patch by + Bénédikt Tran. + - gh-125926: Fix urllib.parse.urljoin() for base URI with + undefined authority. Although RFC 3986 only specify + reference resolution for absolute base URI, urljoin() + should continue to return sensible result for relative base + URI. + - gh-125969: Fix an out-of-bounds crash when an evil + asyncio.loop.call_soon() mutates the length of the internal + callbacks list. Patch by Bénédikt Tran. + - gh-125966: Fix a use-after-free crash in + asyncio.Future.remove_done_callback(). Patch by Bénédikt + Tran. + - gh-125789: Fix possible crash when mutating list of + callbacks returned by asyncio.Future._callbacks. It + now always returns a new copy in C implementation + _asyncio. Patch by Kumar Aditya. + - gh-126916: Allow the initial parameter of + functools.reduce() to be passed as a keyword + argument. Patch by Sayandip Dutta. + - gh-124452: Fix an issue in + email.policy.EmailPolicy.header_source_parse() and + email.policy.Compat32.header_source_parse() that introduced + spurious leading whitespaces into header values when the + header includes a newline character after the header name + delimiter (:) and before the value. + - gh-117941: argparse.BooleanOptionalAction now rejects + option names starting with --no-. + - gh-125884: Fixed the bug for pdb where it can’t set + breakpoints on functions with certain annotations. + - gh-125355: Fix several bugs in + argparse.ArgumentParser.parse_intermixed_args(). + - The parser no longer changes temporarily during + parsing. + - Default values are not processed twice. + - Required mutually exclusive groups containing + positional arguments are now supported. + - The missing arguments report now includes the names of + all required optional and positional arguments. + - Unknown options can be intermixed with positional + arguments in parse_known_intermixed_args(). + - gh-125767: super objects are now pickleable and copyable. + - gh-124969: locale.nl_langinfo(locale.ALT_DIGITS) now + returns a string again. The returned value consists of up + to 100 semicolon-separated symbols. + - gh-84850: Remove URLopener and FancyURLopener classes + from urllib.request. They had previously raised + DeprecationWarning since Python 3.3. + - gh-125666: Avoid the exiting the interpreter if a null byte + is given as input in the new REPL. + - gh-125710: [Enum] fix hashable<->nonhashable comparisons + for member values + - gh-125631: Restore ability to set persistent_id and + persistent_load attributes of instances of the Pickler and + Unpickler classes in the pickle module. + - gh-125378: Fixed the bug in pdb where after a multi-line + command, an empty line repeats the first line of the + multi-line command, instead of the full command. + - gh-125682: Reject non-ASCII digits in the Python + implementation of json.loads() conforming to the JSON + specification. + - gh-125660: Reject invalid unicode escapes for Python + implementation of json.loads(). + - gh-52551: Use wcsftime() to implement time.strftime() on + Windows. + - gh-125259: Fix the notes removal logic for errors thrown in + enum initialization. + - gh-125633: Add function inspect.ispackage() to determine + whether an object is a package or not. + - gh-125614: In the FORWARDREF format of annotationlib, + fix bug where nested expressions were not returned as + annotationlib.ForwardRef format. + - gh-125590: Allow FrameLocalsProxy to delete and pop if the + key is not a fast variable. + - gh-125600: Only show stale code warning in pdb when we + display source code. + - gh-125542: Deprecate passing keyword-only prefix_chars + argument to argparse.ArgumentParser.add_argument_group(). + - gh-125541: Pressing Ctrl-C while blocked in + threading.Lock.acquire(), threading.RLock.acquire(), and + threading.Thread.join() now interrupts the function call + and raises a KeyboardInterrupt exception on Windows, + similar to how those functions behave on macOS and Linux. + - gh-125519: Improve traceback if importlib.reload() is + called with an object that is not a module. Patch by Alex + Waygood. + - gh-125451: Fix deadlock when + concurrent.futures.ProcessPoolExecutor shuts down + concurrently with an error when feeding a job to a worker + process. + - gh-125115: Fixed a bug in pdb where arguments starting with + - can’t be passed to the debugged script. + - gh-125398: Fix the conversion of the VIRTUAL_ENV path in + the activate script in venv when running in Git Bash for + Windows. + - gh-125245: Fix race condition when importing + collections.abc, which could incorrectly return an empty + module. + - gh-52551: Fix encoding issues in time.strftime(), the + strftime() method of the datetime classes datetime, date + and time and formatting of these classes. Characters + not encodable in the current locale are now acceptable + in the format string. Surrogate pairs and sequence + of surrogatescape-encoded bytes are no longer + recombinated. Embedded null character no longer terminates + the format string. + - gh-124984: Fixed thread safety in ssl in the free-threaded + build. OpenSSL operations are now protected by a per-object + lock. + - gh-124651: Properly quote template strings in venv + activation scripts. + - gh-124694: We’ve added + concurrent.futures.InterpreterPoolExecutor, which allows + you to run code in multiple isolated interpreters. This + allows you to circumvent the limitations of CPU-bound + threads (due to the GIL). Patch by Eric Snow. + - This addition is unrelated to PEP 734. + - gh-58032: Deprecate the argparse.FileType type converter. + - gh-99749: Adds a feature to optionally enable suggestions + for argument choices and subparser names if mistyped by the + user. + - gh-58956: Fixed a bug in pdb where sometimes the breakpoint + won’t trigger if it was set on a function which is already + in the call stack. + - gh-124111: The tkinter module can now be built to use + either the new version 9.0.0 of Tcl/Tk or the latest + release 8.6.15 of Tcl/Tk 8. Tcl/Tk 9 includes many + improvements, both to the Tcl language and to the + appearance and utility of the graphical user interface + provided by Tk. + - gh-80958: unittest discovery supports PEP 420 namespace + packages as start directory again. + - gh-123370: Fix the canvas not clearing after running + turtledemo clock. + - gh-89083: Add uuid.uuid8() for generating UUIDv8 objects as + specified in RFC 9562. Patch by Bénédikt Tran + - gh-122549: Add platform.invalidate_caches() to invalidate + cached results. + - gh-120754: Update unbounded read calls in zipfile to + specify an explicit size putting a limit on how much data + they may read. This also updates handling around ZIP max + comment size to match the standard instead of reading + comments that are one byte too long. + - gh-121267: Improve the performance of tarfile when writing + files, by caching user names and group names. + - gh-70764: Fixed an issue where inspect.getclosurevars() + would incorrectly classify an attribute name as a global + variable when the name exists both as an attribute name and + a global variable. + - gh-118289: posixpath.realpath() now raises + NotADirectoryError when strict mode is enabled and a + non-directory path with a trailing slash is supplied. + - gh-119826: Always return an absolute path for + os.path.abspath() on Windows. + - gh-97850: Remove deprecated pkgutil.get_loader() and + pkgutil.find_loader(). + - gh-118986: Add socket.IPV6_RECVERR constant (available + since Linux 2.2). + - gh-116897: Accepting objects with false values (like 0 and + []) except empty strings, byte-like objects and None in + urllib.parse functions parse_qsl() and parse_qs() is now + deprecated. + - gh-101955: Fix SystemError when match regular expression + pattern containing some combination of possessive + quantifier, alternative and capture group. + - gh-71936: Fix a race condition in + multiprocessing.pool.Pool. + - bpo-46128: Strip unittest.IsolatedAsyncioTestCase stack + frames from reported stacktraces. + - gh-84852: Add MIME types for MS Embedded OpenType, OpenType + Layout, TrueType, WOFF 1.0 and 2.0 fonts. Patch by Sahil + Prajapati and Hugo van Kemenade. + - Documentation + - gh-126622: Added stub pages for removed modules explaining + their removal, where to find replacements, and linking to + the last Python version that supported them. Contributed by + Ned Batchelder. + - gh-125277: Require Sphinx 7.2.6 or later to build the + Python documentation. Patch by Adam Turner. + - gh-60712: Include the object type in the lists of + documented types. Change by Furkan Onder and Martin Panter. + - Core and Builtins + - gh-126795: Increase the threshold for JIT code + warmup. Depending on platform and workload, this can result + in performance gains of 1-9% and memory savings of 3-5%. + - gh-126341: Now ValueError is raised instead of SystemError + when trying to iterate over a released memoryview object. + - gh-126688: Fix a crash when calling os.fork() on some + operating systems, including SerenityOS. + - gh-126066: Fix importlib to not write an incomplete + .pyc files when a ulimit or some other operating system + mechanism is preventing the write to go through fully. + - gh-126222: Do not include count of “peek” items in + _PyUop_num_popped. This ensures that the correct number of + items are popped from the stack when a micro-op exits with + an error. + - gh-126366: Fix crash when using yield from on an object + that raises an exception in its __iter__. + - gh-126209: Fix an issue with skip_file_prefixes parameter + which resulted in an inconsistent behaviour between the C + and Python implementations of warnings.warn(). Patch by + Daehee Kim. + - gh-126312: Fix crash during garbage collection on an object + frozen by gc.freeze() on the free-threaded build. + - gh-103951: Relax optimization requirements to allow fast + attribute access to module subclasses. + - gh-126072: Following gh-126101, for Code Objects like + lambda, annotation and type alias, we no longer add None to + its co_consts. + - gh-126195: Improve JIT performance by 1.4% on macOS Apple + Silicon by using platform-specific memory protection + APIs. Patch by Diego Russo. + - gh-126139: Provide better error location when attempting to + use a future statement with an unknown future feature. + - gh-126072: Add a new attribute in co_flags to indicate + whether the first item in co_consts is the docstring. If a + code object has no docstring, None will NOT be inserted. + - gh-126076: Relocated objects such as tuple, bytes and + str objects are properly tracked by tracemalloc and its + associated hooks. Patch by Pablo Galindo. + - gh-90370: Avoid temporary tuple creation for vararg in + argument passing with Argument Clinic generated code (if + arguments either vararg or positional-only). + - gh-126018: Fix a crash in sys.audit() when passing a + non-string as first argument and Python was compiled in + debug mode. + - gh-126012: The memoryview type now supports subscription, + making it a generic type. + - gh-125837: Adds LOAD_SMALL_INT and LOAD_CONST_IMMORTAL + instructions. LOAD_SMALL_INT pushes a small integer equal + to the oparg to the stack. LOAD_CONST_IMMORTAL does the + same as LOAD_CONST but is more efficient for immortal + objects. Removes RETURN_CONST instruction. + - gh-125942: On Android, the errors setting of sys.stdout was + changed from surrogateescape to backslashreplace. + - gh-125859: Fix a crash in the free threading build when + gc.get_objects() or gc.get_referrers() is called during an + in-progress garbage collection. + - gh-125868: It was possible in 3.14.0a1 only for + attribute lookup to give the wrong value. This was + due to an incorrect specialization in very specific + circumstances. This is fixed in 3.14.0a2. + - gh-125498: The JIT has been updated to leverage Clang 19’s + new preserve_none attribute, which supports more platforms + and is more useful than LLVM’s existing ghccc calling + convention. This also removes the need to manually patch + the calling convention in LLVM IR, simplifying the JIT + compilation process. + - gh-125703: Correctly honour tracemalloc hooks in + specialized Py_DECREF paths. Patch by Pablo Galindo + - gh-125593: Use color to highlight error locations in + traceback from exception group + - gh-125017: Fix crash on certain accesses to the + __annotations__ of staticmethod and classmethod objects. + - gh-125588: The Python PEG generator can now use f-strings + in the grammar actions. Patch by Pablo Galindo + - gh-125444: Fix illegal instruction for older Arm + architectures. Patch by Diego Russo, testing by Ross + Burton. + - gh-118423: Add a new INSTRUCTION_SIZE macro to the cases + generator which returns the current instruction size. + - gh-125038: Fix crash when iterating over a generator + expression after direct changes on gi_frame.f_locals. Patch + by Mikhail Efimov. + - gh-124855: Don’t allow the JIT and perf support to be + active at the same time. Patch by Pablo Galindo + - gh-123714: Update JIT compilation to use LLVM 19 + - gh-123930: Improve the error message when a script + shadowing a module from the standard library causes + ImportError to be raised during a “from” import. Similarly, + improve the error message when a script shadowing a third + party module attempts to “from” import an attribute from + that third party module while still initialising. + - gh-119793: The map() built-in now has an optional + keyword-only strict flag like zip() to check that all the + iterables are of equal length. Patch by Wannes Boeykens. + - gh-118950: Fix bug where SSLProtocol.connection_lost wasn’t + getting called when OSError was thrown on writing to + socket. + - gh-113570: Fixed a bug in reprlib.repr where it incorrectly + called the repr method on shadowed Python built-in types. + - C API + - gh-126554: Fix error handling in ctypes.CDLL objects which + could result in a crash in rare situations. + - gh-126061: Add PyLong_IsPositive(), PyLong_IsNegative() and + PyLong_IsZero() for checking if a PyLongObject is positive, + negative, or zero, respectively. + - gh-125608: Fix a bug where dictionary watchers + (e.g., PyDict_Watch()) on an object’s attribute dictionary + (__dict__) were not triggered when the object’s attributes + were modified. + - gh-123619: Added the + PyUnstable_Object_EnableDeferredRefcount() function for + enabling PEP 703 deferred reference counting. + - gh-121654: Add PyType_Freeze() function to make a type + immutable. Patch by Victor Stinner. + - gh-120026: The Py_HUGE_VAL macro is soft deprecated. + - Build + - gh-126691: Removed the --with-emscripten-target configure + flag. We unified the node and browser options and the same + build can now be used, independent of target runtime. + - gh-123877: Use wasm32-wasip1 as the target triple for + WASI instead of wasm32-wasi. The latter will eventually + be reclaimed for WASI 1.0 while CPython currently only + supports WASI preview1. + - gh-126458: Disable SIMD support for HACL under WASI. + - gh-89640: Hard-code float word ordering as little endian on + WASM. + - gh-126206: make clinic now runs Argument Clinic using the + --force option, thus forcefully regenerating generated + code. + - gh-126187: Introduced Tools/wasm/emscripten.py to simplify + doing Emscripten builds. + - gh-124932: For cross builds, there is now support for + having a different install prefix than the host_prefix used + by getpath.py. This is set to / by default for Emscripten, + on other platforms the default behavior is the same as + before. + - gh-125946: The minimum supported Android version is now 7.0 + (API level 24). + - gh-125940: The Android build now supports 16 KB page sizes. + - gh-89640: Improve detection of float word ordering on Linux + when link-time optimizations are enabled. + - gh-124928: Emscripten builds now require node >= 18. + - gh-115382: Fix cross compile failures when the host and + target SOABIs match. +- Remove upstreamed patches: + - fix_test_generated_data.patch + - fix_test_ftp_error.patch + - gh125535-Lib_IntVector_Intrinsics_vec128.patch +- Don't limit clang to clang18. + ------------------------------------------------------------------- Thu Nov 14 07:06:20 UTC 2024 - Matej Cepl diff --git a/python314.spec b/python314.spec index 5bf6f12..958294c 100644 --- a/python314.spec +++ b/python314.spec @@ -149,8 +149,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~a1 -%define tarversion 3.14.0a1 +Version: 3.14.0~a2 +%define tarversion 3.14.0a2 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter @@ -209,15 +209,6 @@ Patch39: CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch # Skip some failing tests in test_compile for i586 arch in 15.6. Patch40: fix-test-recursion-limit-15.6.patch #### Python 3.14 DEVELOPMENT PATCHES -# PATCH-FIX-UPSTREAM gh125535-Lib_IntVector_Intrinsics_vec128.patch gh#python/cpython#125535 mcepl@suse.com -# Patch from gh#python/cpython!125244 -Patch41: gh125535-Lib_IntVector_Intrinsics_vec128.patch -# PATCH-FIX-UPSTREAM fix_test_ftp_error.patch gh#python/cpython#125584 mcepl@suse.com -# Patch from gh#python/cpython!125586 -Patch42: fix_test_ftp_error.patch -# PATCH-FIX-UPSTREAM fix_test_generated_data.patch gh#python/cpython#121938 mcepl@suse.com -# skip the failing test on 32bit arch -Patch43: fix_test_generated_data.patch BuildRequires: autoconf-archive BuildRequires: automake BuildRequires: fdupes @@ -261,8 +252,8 @@ BuildRequires: python3-python-docs-theme >= 2022.1 %if %{with experimental_jit} # needed for experimental_jit -BuildRequires: clang18 -BuildRequires: llvm18 +BuildRequires: clang +BuildRequires: llvm %endif %if %{without GIL} diff --git a/subprocess-raise-timeout.patch b/subprocess-raise-timeout.patch index b984fc4..92a02b9 100644 --- a/subprocess-raise-timeout.patch +++ b/subprocess-raise-timeout.patch @@ -4,7 +4,7 @@ --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py -@@ -280,7 +280,8 @@ class ProcessTestCase(BaseTestCase): +@@ -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.