Update to Python 3.14.1

This commit is contained in:
Karolina Surma 2025-12-03 09:21:58 +01:00 committed by Miro Hrončok
commit d849d8f127
6 changed files with 33 additions and 65 deletions

View file

@ -30,7 +30,7 @@ Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
3 files changed, 72 insertions(+), 4 deletions(-)
diff --git a/Lib/site.py b/Lib/site.py
index f932719715..e4ef914ec2 100644
index aeb7c6cfc7..86f9ae9e76 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -421,8 +421,15 @@ def getsitepackages(prefixes=None):

View file

@ -1,33 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
Date: Fri, 25 Apr 2025 09:33:37 +0200
Subject: 00461: Downstream only: Install wheel in test venvs when setuptools <
71
This can be removed when Fedora 41 goes EOL (or updates setuptools).
---
Lib/test/support/__init__.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 88f6110351..210ddcdbe3 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -2512,9 +2512,16 @@ def run_command(cmd):
else:
python = os.path.join(venv, 'bin', python_exe)
+ setuptools_whl = _findwheel('setuptools')
+ whl_filename = os.path.basename(setuptools_whl)
+ setuptools_major = int(whl_filename.split('-')[1].split('.')[0])
+ if setuptools_major >= 71: # we need 70.1+, but that's OK
+ wheels = (setuptools_whl,)
+ else:
+ wheels = (setuptools_whl, _findwheel('wheel'))
cmd = (python, '-X', 'dev',
'-m', 'pip', 'install',
- _findwheel('setuptools'),
+ *wheels,
)
run_command(cmd)

View file

@ -15,10 +15,10 @@ which is tested as working.
3 files changed, 10 insertions(+)
diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
index a091430463..55ebf34c52 100644
index daeaa38a3c..b243f1da14 100644
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -826,6 +826,8 @@ def start_element(name, _):
@@ -847,6 +847,8 @@ def start_element(name, _):
self.assertEqual(started, ['doc'])
@ -41,10 +41,10 @@ index 5c10bcedc6..1fd7a273b5 100644
result = BytesIO()
xmlgen = XMLGenerator(result)
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index bf6d5074fd..6f8ef34590 100644
index 25c084c8b9..e26e6e0c26 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -1547,9 +1547,13 @@ def test_simple_xml(self, chunk_size=None, flush=False):
@@ -1573,9 +1573,13 @@ def test_simple_xml(self, chunk_size=None, flush=False):
self.assert_event_tags(parser, [('end', 'root')])
self.assertIsNone(parser.close())
@ -58,7 +58,7 @@ index bf6d5074fd..6f8ef34590 100644
def test_simple_xml_chunk_5(self):
self.test_simple_xml(chunk_size=5, flush=True)
@@ -1774,6 +1778,8 @@ def test_flush_reparse_deferral_enabled(self):
@@ -1802,6 +1806,8 @@ def test_flush_reparse_deferral_enabled(self):
self.assert_event_tags(parser, [('end', 'doc')])

View file

@ -24,19 +24,20 @@ discover:
test: "PYTHON=python${pybasever}d TOX=false VERSION=${pybasever} CYTHON=true ./venv.sh"
- name: selftest
path: /selftest
test: "VERSION=${pybasever} X='-i test_check_probes -i test_sysconfigdata_json' ./parallel.sh"
test: "VERSION=${pybasever} X='-i test_check_probes -i test_sysconfigdata_json -i test_margin_is_sufficient' ./parallel.sh"
- name: debugtest
path: /selftest
# test_base_interpreter: https://github.com/python/cpython/issues/131372
# test_interrupt and test_interrupt_no_handler: https://github.com/python/cpython/issues/133651
test: "VERSION=${pybasever} PYTHON=python${pybasever}d X='-i test_check_probes -i test_sysconfigdata_json -i test_base_interpreter -i test_interrupt -i test_interrupt_no_handler' ./parallel.sh"
# test_margin_is_sufficient: https://github.com/python/cpython/issues/140222
test: "VERSION=${pybasever} PYTHON=python${pybasever}d X='-i test_check_probes -i test_sysconfigdata_json -i test_base_interpreter -i test_interrupt -i test_interrupt_no_handler -i test_margin_is_sufficient' ./parallel.sh"
- name: freethreadingtest
path: /selftest
test: "VERSION=${pybasever}t X='-i test_check_probes -i test_sysconfigdata_json -i test_base_interpreter' ./parallel.sh"
test: "VERSION=${pybasever}t X='-i test_check_probes -i test_sysconfigdata_json -i test_base_interpreter -i test_margin_is_sufficient' ./parallel.sh"
- name: selftest_jit
path: /selftest
# test_attr_promotion_failure: https://github.com/python/cpython/issues/141833
test: "VERSION=${pybasever} PYTHON_JIT=1 X='-i test_check_probes -i test_sysconfigdata_json -i test_attr_promotion_failure' ./parallel.sh"
test: "VERSION=${pybasever} PYTHON_JIT=1 X='-i test_check_probes -i test_sysconfigdata_json -i test_attr_promotion_failure -i test_margin_is_sufficient' ./parallel.sh"
- name: jit_disabled_by_default
test: "python${pybasever} -c 'import sys; assert not sys._jit.is_enabled()'"
- name: jit_disabled_explicitly

View file

@ -45,11 +45,11 @@ 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 general_version %{pybasever}.1
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 2%{?dist}
Release: 1%{?dist}
License: Python-2.0.1
@ -112,30 +112,30 @@ License: Python-2.0.1
# This needs to be manually updated when we update Python.
# Explore the sources tarball (you need the version before %%prep is executed):
# $ tar -tf Python-%%{upstream_version}.tar.xz | grep whl
%global pip_version 25.2
%global pip_version 25.3
%global setuptools_version 79.0.1
# 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.14.3
Provides: bundled(python3dist(certifi)) = 2025.7.14
Provides: bundled(python3dist(certifi)) = 2025.10.5
Provides: bundled(python3dist(dependency-groups)) = 1.3.1
Provides: bundled(python3dist(distlib)) = 0.4
Provides: bundled(python3dist(distro)) = 1.9
Provides: bundled(python3dist(idna)) = 3.10
Provides: bundled(python3dist(msgpack)) = 1.1.1
Provides: bundled(python3dist(msgpack)) = 1.1.2
Provides: bundled(python3dist(packaging)) = 25
Provides: bundled(python3dist(platformdirs)) = 4.3.8
Provides: bundled(python3dist(platformdirs)) = 4.5
Provides: bundled(python3dist(pygments)) = 2.19.2
Provides: bundled(python3dist(pyproject-hooks)) = 1.2
Provides: bundled(python3dist(requests)) = 2.32.4
Provides: bundled(python3dist(resolvelib)) = 1.2
Provides: bundled(python3dist(rich)) = 14.1
Provides: bundled(python3dist(requests)) = 2.32.5
Provides: bundled(python3dist(resolvelib)) = 1.2.1
Provides: bundled(python3dist(rich)) = 14.2
Provides: bundled(python3dist(setuptools)) = 70.3
Provides: bundled(python3dist(tomli)) = 2.2.1
Provides: bundled(python3dist(tomli)) = 2.3
Provides: bundled(python3dist(tomli-w)) = 1.2
Provides: bundled(python3dist(truststore)) = 0.10.1
Provides: bundled(python3dist(truststore)) = 0.10.4
Provides: bundled(python3dist(urllib3)) = 1.26.20
}
# setuptools
@ -387,12 +387,6 @@ Source34: Python-%{upstream_version}-x86_64-optimized-jit_stencils.h
# pypa/distutils integration: https://github.com/pypa/distutils/pull/70
Patch251: 00251-change-user-install-location.patch
# 00461 # 920175020b21c0aff5edcc4c28d688b5061f591c
# Downstream only: Install wheel in test venvs when setuptools < 71
#
# This can be removed when Fedora 41 goes EOL (or updates setuptools).
Patch461: 00461-downstream-only-install-wheel-in-test-venvs-when-setuptools-71.patch
# 00464 # 292acffec7a379cb6d1f3c47b9e5a2f170bbadb6
# Enable PAC and BTI protections for aarch64
#
@ -1475,6 +1469,8 @@ CheckPython() {
# see: https://github.com/python/cpython/issues/121719
# test_interrupt and test_interrupt_no_handler
# reported in https://github.com/python/cpython/issues/133651
# test_margin_is_sufficient
# reported in https://github.com/python/cpython/issues/140222
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
-wW --slowest %{_smp_mflags} \
%ifarch riscv64
@ -1486,6 +1482,7 @@ CheckPython() {
-i test_check_probes \
-i test_interrupt \
-i test_interrupt_no_handler \
-i test_margin_is_sufficient \
%ifarch %{mips64}
-x test_ctypes \
%endif
@ -1982,6 +1979,9 @@ CheckPython freethreading
# ======================================================
%changelog
* Wed Dec 03 2025 Karolina Surma <ksurma@redhat.com> - 3.14.1-1
- Update to Python 3.14.1
* Fri Oct 17 2025 Karolina Surma <ksurma@redhat.com> - 3.14.0-2
- Split -freethreading package into analogs of the main Python

10
sources
View file

@ -1,5 +1,5 @@
SHA512 (Python-3.14.0.tar.xz) = 46e9e205c3a084cba68bf7f267ab2fd0862a05430165e0eb713f2d6b3a1a4452f72f563de5de55caea824be9df56f66dd568f4814941667a9bb0954229772c53
SHA512 (Python-3.14.0-aarch64-debug-jit_stencils.h) = 850952abc9ee83be51a67d64d013e31abd6a9e4331045ae169f684107d98fba9c91ef28fd1bf60e75c8975b600665afc9aec258b7e5b61abafa834996b16fb18
SHA512 (Python-3.14.0-aarch64-optimized-jit_stencils.h) = d7b50e8bb2341f0404781f3f17dca9ac489efd8e25b832eb34346e4b88f3084e9c4482f981e51db4a9596df05c4138642252f52d0712dac9dda15cee21db196c
SHA512 (Python-3.14.0-x86_64-debug-jit_stencils.h) = 51484d6b19a2483f67589c4d57f2df25f28d089a591f19c5eef6564006db5f7d5afa52181df2cd925a550e358ee5562c8f02ef0f8de7628f5f1fa242fd89a56a
SHA512 (Python-3.14.0-x86_64-optimized-jit_stencils.h) = c84dda9956690faf372a09d9a532311d975ae69c4bf2a91102c30086dca16bef9a2c0ebb2f372437cfad64585e7a872db74476f5c502dc9635a25dd9e0b710d4
SHA512 (Python-3.14.1-aarch64-debug-jit_stencils.h) = 158a259a89b86d5456f4e07d41132644698d40783fb6cd3c6aba231da4ac428c1588c3c1e665430ee6909f7b6c29c7924ff0e37adf0470679c120faaf169f07a
SHA512 (Python-3.14.1-aarch64-optimized-jit_stencils.h) = 45ac03531984fcd0c1366563649510e6b0c6760e76e4c8ce675291202b4e1bcd78ed038c312bc66c7ab8b8cd26a6bae7804e7b87b327d1e67c901b93194c4fc1
SHA512 (Python-3.14.1-x86_64-debug-jit_stencils.h) = bfacfb2fe7fc32dd239b7a533f1e86364d687d46dbc6c7170bdd39c1660deda72f3fa2d5e26bd9a27f009f487e248e0426614fcb8dcefd42be1e71d5ef0f0523
SHA512 (Python-3.14.1-x86_64-optimized-jit_stencils.h) = ecf76a904c7f686c01fea4ecfd498ef07fef226e62b792c97dcbb45c76f54351e5ecc02554fa21a3a82d55e5b6255b80c73f67538929d69c1c326f81ac8bd7b2
SHA512 (Python-3.14.1.tar.xz) = b5ec011190536126fedade5c33a4afabc081a133ad5c734f4b872769d376735775219d63a482812d139fdd90c46707927065ab9dc733d0bce2d1ebc59fe705a2