From f6915d7e27fba43230fedf1ecc093b1630ec59b0 Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Thu, 18 Jan 2024 10:18:46 +0100 Subject: [PATCH] Update to Python 3.13.0a3 --- 00251-change-user-install-location.patch | 29 +++++++++-------- ...or-the-main-thread-gh-28549-gh-28589.patch | 2 +- ...on-t-generate-sbom-in-make-regen-all.patch | 32 +++++++++++++++++++ python3.13.spec | 30 +++++++++++++---- sources | 4 +-- 5 files changed, 73 insertions(+), 24 deletions(-) create mode 100644 00418-don-t-generate-sbom-in-make-regen-all.patch diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 9383ef3..dc8bcae 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -25,15 +25,15 @@ Co-authored-by: Michal Cyprian Co-authored-by: Lumír Balhar --- Lib/site.py | 9 ++++++- - Lib/sysconfig/__init__.py | 49 +++++++++++++++++++++++++++++++++++++- + Lib/sysconfig/__init__.py | 50 +++++++++++++++++++++++++++++++++++++- Lib/test/test_sysconfig.py | 17 +++++++++++-- - 3 files changed, 71 insertions(+), 4 deletions(-) + 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/Lib/site.py b/Lib/site.py -index 672fa7b000..0a9c5be53e 100644 +index 0631f3f611..2ed7b683a0 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -377,8 +377,15 @@ def getsitepackages(prefixes=None): +@@ -395,8 +395,15 @@ def getsitepackages(prefixes=None): return sitepackages def addsitepackages(known_paths, prefixes=None): @@ -51,10 +51,10 @@ index 672fa7b000..0a9c5be53e 100644 if os.path.isdir(sitedir): addsitedir(sitedir, known_paths) diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py -index 2a7fa45be0..7b75228fb3 100644 +index 07ab27c7fb..d3e22762bf 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py -@@ -104,6 +104,11 @@ +@@ -104,6 +104,12 @@ else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -63,10 +63,11 @@ index 2a7fa45be0..7b75228fb3 100644 +# For backwards compatibility, we keep it here (at least on 3.10 and 3.11). +_INSTALL_SCHEMES['rpm_prefix'] = _INSTALL_SCHEMES['posix_prefix'] + ++ + def _get_implementation(): + return 'Python' - # NOTE: site.py has copy of this function. - # Sync it when modify this function. -@@ -163,6 +168,19 @@ def joinuser(*args): +@@ -165,6 +171,19 @@ def joinuser(*args): }, } @@ -86,7 +87,7 @@ index 2a7fa45be0..7b75228fb3 100644 _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data') -@@ -257,11 +275,40 @@ def _extend_dict(target_dict, other_dict): +@@ -259,11 +278,40 @@ def _extend_dict(target_dict, other_dict): target_dict[key] = value @@ -129,10 +130,10 @@ index 2a7fa45be0..7b75228fb3 100644 # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py -index 2a6813f00b..00d7034801 100644 +index be609a0abd..8269f48c6d 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py -@@ -113,8 +113,19 @@ def test_get_path(self): +@@ -115,8 +115,19 @@ def test_get_path(self): for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) @@ -153,7 +154,7 @@ index 2a6813f00b..00d7034801 100644 os.path.normpath(expected), ) -@@ -338,7 +349,7 @@ def test_get_config_h_filename(self): +@@ -340,7 +351,7 @@ def test_get_config_h_filename(self): self.assertTrue(os.path.isfile(config_h), config_h) def test_get_scheme_names(self): @@ -162,7 +163,7 @@ index 2a6813f00b..00d7034801 100644 if HAS_USER_BASE: wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) -@@ -350,6 +361,8 @@ def test_symlink(self): # Issue 7880 +@@ -352,6 +363,8 @@ def test_symlink(self): # Issue 7880 cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) diff --git a/00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch b/00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch index b536ae0..4639352 100644 --- a/00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch +++ b/00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch @@ -16,7 +16,7 @@ https://github.com/GrahamDumpleton/mod_wsgi/issues/730 2 files changed, 11 insertions(+), 53 deletions(-) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py -index 146e2dbc0f..af63422c6c 100644 +index 3060af44fd..4c7afe648d 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -1056,39 +1056,6 @@ def noop(): pass diff --git a/00418-don-t-generate-sbom-in-make-regen-all.patch b/00418-don-t-generate-sbom-in-make-regen-all.patch new file mode 100644 index 0000000..36bf09c --- /dev/null +++ b/00418-don-t-generate-sbom-in-make-regen-all.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Karolina Surma +Date: Fri, 19 Jan 2024 12:00:18 +0100 +Subject: [PATCH] 00418: Don't generate sbom in make regen-all + +The script and make target, added in Python 3.13.0a3, assumes a fixed +location of pip wheel and other bundled libraries, resulting in an +error and failed build when not found. +Reported upstream: https://github.com/python/cpython/issues/114240 +and https://github.com/python/cpython/issues/114244 +--- + Makefile.pre.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 289ab97666..1058fac8cc 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1364,10 +1364,11 @@ regen-unicodedata: + regen-all: regen-cases regen-typeslots \ + regen-token regen-ast regen-keyword regen-sre regen-frozen \ + regen-pegen-metaparser regen-pegen regen-test-frozenmain \ +- regen-test-levenshtein regen-global-objects regen-sbom ++ regen-test-levenshtein regen-global-objects + @echo + @echo "Note: make regen-stdlib-module-names, make regen-limited-abi, " +- @echo "make regen-configure and make regen-unicodedata should be run manually" ++ @echo "make regen-configure, make regen-unicodedata and make regen-sbom " ++ @echo "should be run manually" + + ############################################################################ + # Special rules for object files diff --git a/python3.13.spec b/python3.13.spec index 8277fcd..ce12b34 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -14,10 +14,10 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel a2 +%global prerel a3 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 1%{?dist} License: Python-2.0.1 @@ -71,15 +71,15 @@ License: Python-2.0.1 # If the rpmwheels condition is disabled, we use the bundled wheel packages # from Python with the versions below. # This needs to be manually updated when we update Python. -%global pip_version 23.2.1 +%global pip_version 23.3.2 %global setuptools_version 67.6.1 %global wheel_version 0.40.0 # All of those also include a list of indirect bundled libs: # pip # $ %%{_rpmconfigdir}/pythonbundles.py <(unzip -p Lib/ensurepip/_bundled/pip-*.whl pip/_vendor/vendor.txt) %global pip_bundled_provides %{expand: -Provides: bundled(python3dist(cachecontrol)) = 0.12.11 -Provides: bundled(python3dist(certifi)) = 2023.5.7 +Provides: bundled(python3dist(cachecontrol)) = 0.13.1 +Provides: bundled(python3dist(certifi)) = 2023.7.22 Provides: bundled(python3dist(chardet)) = 5.1 Provides: bundled(python3dist(colorama)) = 0.4.6 Provides: bundled(python3dist(distlib)) = 0.3.6 @@ -98,8 +98,9 @@ Provides: bundled(python3dist(setuptools)) = 68 Provides: bundled(python3dist(six)) = 1.16 Provides: bundled(python3dist(tenacity)) = 8.2.2 Provides: bundled(python3dist(tomli)) = 2.0.1 +Provides: bundled(python3dist(truststore)) = 0.8 Provides: bundled(python3dist(typing-extensions)) = 4.7.1 -Provides: bundled(python3dist(urllib3)) = 1.26.16 +Provides: bundled(python3dist(urllib3)) = 1.26.17 Provides: bundled(python3dist(webencodings)) = 0.5.1 } # setuptools @@ -354,7 +355,7 @@ Source11: idle3.appdata.xml # (Patches taken from github.com/fedora-python/cpython) -# 00251 # 758eb29fbfe9253ab343e8a09a480a6b64e57df8 +# 00251 # 60dd97be7bf3662ff65edd8471e948924b4175b2 # Change user install location # # Set values of base and platbase in sysconfig from /usr @@ -382,6 +383,16 @@ Patch251: 00251-change-user-install-location.patch # https://github.com/GrahamDumpleton/mod_wsgi/issues/730 Patch371: 00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch +# 00418 # 7044fbb05d0825f5fd9733a6491bb5bea904fab1 +# Don't generate sbom in make regen-all +# +# The script and make target, added in Python 3.13.0a3, assumes a fixed +# location of pip wheel and other bundled libraries, resulting in an +# error and failed build when not found. +# Reported upstream: https://github.com/python/cpython/issues/114240 +# and https://github.com/python/cpython/issues/114244 +Patch418: 00418-don-t-generate-sbom-in-make-regen-all.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -1329,6 +1340,7 @@ CheckPython freethreading %{pylibdir}/json/ %{pylibdir}/logging/ %{pylibdir}/multiprocessing/ +%{pylibdir}/pathlib/ %{pylibdir}/pydoc_data/ %{pylibdir}/re/ %{pylibdir}/sqlite3/ @@ -1421,6 +1433,7 @@ CheckPython freethreading %{dynload_dir}/_statistics.%{1}.so\ %{dynload_dir}/_struct.%{1}.so\ %{dynload_dir}/_uuid.%{1}.so\ +%{dynload_dir}/_xxinterpqueues.%{1}.so\ %{dynload_dir}/_xxsubinterpreters.%{1}.so\ %{dynload_dir}/_zoneinfo.%{1}.so\ %{dynload_dir}/array.%{1}.so\ @@ -1663,6 +1676,9 @@ CheckPython freethreading # ====================================================== %changelog +* Thu Jan 18 2024 Karolina Surma - 3.13.0~a3-1 +- Update to Python 3.13.0a3 + * Tue Dec 05 2023 Miro Hrončok - 3.13.0~a2-2 - Add the python3.13-freethreading and python3.13-freethreading-debug packages - See https://peps.python.org/pep-0703/ diff --git a/sources b/sources index 15f25bf..52bf88e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (Python-3.13.0a2.tar.xz) = 2702f630ebb49a835c213656f2f0d41f87daf2dad6b856821f4011f4614c19279656eaa1dad9f1cbfd258992aa5f59d4571577057c6a4ad1cdcfa4d8ada3b607 -SHA512 (Python-3.13.0a2.tar.xz.asc) = c6a0101b844701fcd860a519ec4830bde0df486ea78377831544dbe0db25dd67c28360f46d5ef01db64aa4347cf7b0d489590f6dc91e768b16753228f2c93b25 +SHA512 (Python-3.13.0a3.tar.xz) = 0cabe30ca97f89df7da35684dda9ac8a3018fb7547d97f595e7883323809fdb99ff02c48719d71fb12abdacda1fc86f0ca15b1d27717e941cdc0b31c72fd63bb +SHA512 (Python-3.13.0a3.tar.xz.asc) = 91efe8e66085e4b60b565130a8ab43b3772e3dafe25fa6266900a8c19004082bcfd7e72e6e5293dc5bc3330ea2db233365d1028ef3b86ee4bb7df1246b6641b0