Update to 3.13.4

This commit is contained in:
Tomáš Hrnčiar 2025-06-04 08:47:43 +02:00
commit b13a982a62
8 changed files with 29 additions and 174 deletions

View file

@ -30,10 +30,10 @@ 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 89a81c55cb..950e2e337f 100644
index aedf36399c..2ae49a8029 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -414,8 +414,15 @@ def getsitepackages(prefixes=None):
@@ -415,8 +415,15 @@ def getsitepackages(prefixes=None):
return sitepackages
def addsitepackages(known_paths, prefixes=None):

View file

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Wed, 9 Apr 2025 10:47:48 +0200
Subject: 00454: Invoke regen-token rst with rstfile as an argument
Proposed upstream: https://github.com/python/cpython/pull/132304
---
Makefile.pre.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 3bd4495f95..d7a4e4b320 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1784,7 +1784,8 @@ regen-token:
# using Tools/build/generate_token.py
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/build/generate_token.py rst \
$(srcdir)/Grammar/Tokens \
- $(srcdir)/Doc/library/token-list.inc
+ $(srcdir)/Doc/library/token-list.inc \
+ $(srcdir)/Doc/library/token.rst
# Regenerate Include/internal/pycore_token.h from Grammar/Tokens
# using Tools/build/generate_token.py
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/build/generate_token.py h \

View file

@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Thu, 10 Apr 2025 15:11:41 +0200
Subject: 00456: Find the correct group name in test_group_no_follow_symlinks
Proposed upstream: https://github.com/python/cpython/pull/132357
---
Lib/test/test_pathlib/test_pathlib.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py
index 1f01ce40da..2b9aad1426 100644
--- a/Lib/test/test_pathlib/test_pathlib.py
+++ b/Lib/test/test_pathlib/test_pathlib.py
@@ -781,7 +781,7 @@ def test_group_no_follow_symlinks(self):
os.chown(link, -1, gid_2, follow_symlinks=False)
expected_gid = link.stat(follow_symlinks=False).st_gid
- expected_name = self._get_pw_name_or_skip_test(expected_gid)
+ expected_name = self._get_gr_name_or_skip_test(expected_gid)
self.assertEqual(expected_gid, gid_2)
self.assertEqual(expected_name, link.group(follow_symlinks=False))

View file

@ -1,68 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Charalampos Stratakis <cstratak@redhat.com>
Date: Wed, 8 Jan 2025 04:58:22 +0100
Subject: 00459: Apply Intel Control-flow Technology for x86-64
Required for mitigation against return-oriented programming (ROP) and Call or Jump Oriented Programming (COP/JOP) attacks
Proposed upstream: https://github.com/python/cpython/pull/128606
See also: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
---
Python/asm_trampoline.S | 22 ++++++++++++++++++++++
Python/perf_jit_trampoline.c | 4 ++++
2 files changed, 26 insertions(+)
diff --git a/Python/asm_trampoline.S b/Python/asm_trampoline.S
index 0a3265dfee..616752459b 100644
--- a/Python/asm_trampoline.S
+++ b/Python/asm_trampoline.S
@@ -9,6 +9,9 @@
# }
_Py_trampoline_func_start:
#ifdef __x86_64__
+#if defined(__CET__) && (__CET__ & 1)
+ endbr64
+#endif
sub $8, %rsp
call *%rcx
add $8, %rsp
@@ -34,3 +37,22 @@ _Py_trampoline_func_start:
.globl _Py_trampoline_func_end
_Py_trampoline_func_end:
.section .note.GNU-stack,"",@progbits
+# Note for indicating the assembly code supports CET
+#if defined(__x86_64__) && defined(__CET__) && (__CET__ & 1)
+ .section .note.gnu.property,"a"
+ .align 8
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .string "GNU"
+1:
+ .align 8
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 0x3
+3:
+ .align 8
+4:
+#endif // __x86_64__
diff --git a/Python/perf_jit_trampoline.c b/Python/perf_jit_trampoline.c
index 0a8945958b..e9cc7758ba 100644
--- a/Python/perf_jit_trampoline.c
+++ b/Python/perf_jit_trampoline.c
@@ -472,7 +472,11 @@ elf_init_ehframe(ELFObjectContext* ctx)
DWRF_U8(0); /* Augmentation data. */
/* Registers saved in CFRAME. */
#ifdef __x86_64__
+# if defined(__CET__) && (__CET__ & 1)
+ DWRF_U8(DWRF_CFA_advance_loc | 8);
+# else
DWRF_U8(DWRF_CFA_advance_loc | 4);
+# endif
DWRF_U8(DWRF_CFA_def_cfa_offset); DWRF_UV(16);
DWRF_U8(DWRF_CFA_advance_loc | 6);
DWRF_U8(DWRF_CFA_def_cfa_offset); DWRF_UV(8);

View file

@ -16,15 +16,14 @@ Co-Authored-By: Victor Stinner <vstinner@python.org>
Lib/test/support/__init__.py | 14 +++++++-------
Lib/test/test_cext/__init__.py | 2 +-
Lib/test/test_cppext/__init__.py | 2 +-
Lib/test/test_cppext/setup.py | 1 +
Lib/test/test_peg_generator/test_c_parser.py | 2 +-
5 files changed, 11 insertions(+), 10 deletions(-)
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 78cf4b3ca8..bd8860b696 100644
index f4cc51a918..6350d7c0a9 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -2360,7 +2360,7 @@ def _findwheel(pkgname):
@@ -2361,7 +2361,7 @@ def _findwheel(pkgname):
filenames = os.listdir(wheel_dir)
filenames = sorted(filenames, reverse=True) # approximate "newest" first
for filename in filenames:
@ -33,7 +32,7 @@ index 78cf4b3ca8..bd8860b696 100644
if not filename.endswith(".whl"):
continue
prefix = pkgname + '-'
@@ -2369,16 +2369,16 @@ def _findwheel(pkgname):
@@ -2370,16 +2370,16 @@ def _findwheel(pkgname):
raise FileNotFoundError(f"No wheel for {pkgname} found in {wheel_dir}")
@ -54,7 +53,7 @@ index 78cf4b3ca8..bd8860b696 100644
print()
print('Run:', ' '.join(map(shlex.quote, cmd)))
subprocess.run(cmd, check=True)
@@ -2402,10 +2402,10 @@ def run_command(cmd):
@@ -2403,10 +2403,10 @@ def run_command(cmd):
else:
python = os.path.join(venv, 'bin', python_exe)
@ -93,18 +92,6 @@ index d519522730..e7130f6fc6 100644
self._check_build(extension_name, python_exe,
std=std, limited=limited)
diff --git a/Lib/test/test_cppext/setup.py b/Lib/test/test_cppext/setup.py
index 019ff18446..25d71cd9a2 100644
--- a/Lib/test/test_cppext/setup.py
+++ b/Lib/test/test_cppext/setup.py
@@ -3,6 +3,7 @@
import os
import platform
import shlex
+import sys
import sysconfig
from test import support
diff --git a/Lib/test/test_peg_generator/test_c_parser.py b/Lib/test/test_peg_generator/test_c_parser.py
index 1411e55dd0..1095e7303c 100644
--- a/Lib/test/test_peg_generator/test_c_parser.py

View file

@ -9,10 +9,10 @@ Subject: 00461: Downstream only: Install wheel in test venvs when setuptools <
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index bd8860b696..785ca4c3d5 100644
index 6350d7c0a9..64b3a8300e 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -2402,9 +2402,16 @@ def run_command(cmd):
@@ -2403,9 +2403,16 @@ def run_command(cmd):
else:
python = os.path.join(venv, 'bin', python_exe)

View file

@ -13,11 +13,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}.3
%global general_version %{pybasever}.4
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 4%{?dist}
Release: 1%{?dist}
License: Python-2.0.1
@ -57,30 +57,32 @@ 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.0.1
%global pip_version 25.1.1
%global setuptools_version 67.6.1
%global wheel_version 0.43.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.14.1
Provides: bundled(python3dist(certifi)) = 2024.8.30
Provides: bundled(python3dist(cachecontrol)) = 0.14.2
Provides: bundled(python3dist(certifi)) = 2025.1.31
Provides: bundled(python3dist(dependency-groups)) = 1.3.1
Provides: bundled(python3dist(distlib)) = 0.3.9
Provides: bundled(python3dist(distro)) = 1.9
Provides: bundled(python3dist(idna)) = 3.10
Provides: bundled(python3dist(msgpack)) = 1.1
Provides: bundled(python3dist(packaging)) = 24.2
Provides: bundled(python3dist(platformdirs)) = 4.3.6
Provides: bundled(python3dist(pygments)) = 2.18
Provides: bundled(python3dist(packaging)) = 25
Provides: bundled(python3dist(platformdirs)) = 4.3.7
Provides: bundled(python3dist(pygments)) = 2.19.1
Provides: bundled(python3dist(pyproject-hooks)) = 1.2
Provides: bundled(python3dist(requests)) = 2.32.3
Provides: bundled(python3dist(resolvelib)) = 1.0.1
Provides: bundled(python3dist(rich)) = 13.9.4
Provides: bundled(python3dist(resolvelib)) = 1.1
Provides: bundled(python3dist(rich)) = 14
Provides: bundled(python3dist(setuptools)) = 70.3
Provides: bundled(python3dist(tomli)) = 2.2.1
Provides: bundled(python3dist(truststore)) = 0.10
Provides: bundled(python3dist(typing-extensions)) = 4.12.2
Provides: bundled(python3dist(tomli-w)) = 1.2
Provides: bundled(python3dist(truststore)) = 0.10.1
Provides: bundled(python3dist(typing-extensions)) = 4.13.2
Provides: bundled(python3dist(urllib3)) = 1.26.20
}
# setuptools
@ -363,29 +365,7 @@ Source11: idle3.appdata.xml
# pypa/distutils integration: https://github.com/pypa/distutils/pull/70
Patch251: 00251-change-user-install-location.patch
# 00454 # 1d5d7e9ce724fbbd89645d637303d12731c2a622
# Invoke regen-token rst with rstfile as an argument
#
# Proposed upstream: https://github.com/python/cpython/pull/132304
Patch454: 00454-invoke-regen-token-rst-with-rstfile-as-an-argument.patch
# 00456 # 8f50cf7170e39c02d52cb5f99d647eeefad2f685
# Find the correct group name in test_group_no_follow_symlinks
#
# Proposed upstream: https://github.com/python/cpython/pull/132357
Patch456: 00456-find-the-correct-group-name-in-test_group_no_follow_symlinks.patch
# 00459 # 9cf6fed17de184d2e17ace2b5063e782e7e186ba
# Apply Intel Control-flow Technology for x86-64
#
# Required for mitigation against return-oriented programming (ROP) and Call or Jump Oriented Programming (COP/JOP) attacks
#
# Proposed upstream: https://github.com/python/cpython/pull/128606
#
# See also: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
Patch459: 00459-apply-intel-control-flow-technology-for-x86-64.patch
# 00460 # f876c748b89770cfee4148c3dd3acbc3dd527eb6
# 00460 # c0bff2b6359f503d3fc72bdba9f07a25519a4cdd
# gh-132415: Update vendored setuptools in ``Lib/test/wheeldata``
#
# (actual changes in .whl files removed to make this patch smaller)
@ -1750,6 +1730,9 @@ CheckPython freethreading
# ======================================================
%changelog
* Wed Jun 04 2025 Tomáš Hrnčiar <thrnciar@redhat.com> - 3.13.4-1
- Update to 3.13.4
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 3.13.3-4
- Rebuilt as non-main Python on Fedora 43

View file

@ -1,2 +1,2 @@
SHA512 (Python-3.13.3.tar.xz) = f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578
SHA512 (Python-3.13.3.tar.xz.asc) = 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db
SHA512 (Python-3.13.4.tar.xz) = 91454bb4d04c192721d2df980a806858bd8aadb5cef92159c2844cc33e92b0386b1b33d5cfff0f69d449e9f978a5f67f6032155f7b1425ff38e36477637c0c68
SHA512 (Python-3.13.4.tar.xz.asc) = ba9c1dee0f3bf564e6ac19cbe08cf4fdc3779a04ed8289654f6dda3fba9f07a0937764a12f1e7e2f6d7ff17bb5b86c05b8ea19296a2b98d1c81a48362ccf6104