This update for python313, python3 fixes the following issues:
Changes in python313:
Update to 3.13.14:
Security
Core and Builtins
code compilation - _winapi.CreateProcess()
C API
Build
Library
IDLE
Documentation
Tests
Keep unversioned Python 3 development entry points in python3-devel: python313-devel no longer provides python3-devel and no longer owns libpython3.so, python3-config, python3.pc, or python3-embed.pc. Do not package versioned GIL pkg-config files in nogil-devel. Also, fix regular expressions in rpmlintrc.
Improve testing for the support of IPPROTO_UDPLITE, which could be not present although header files are. (bsc#1263787, gh#python/cpython!149081)
Add missing BR crypto-policies-scripts (need for the fix of
bsc#1211301).
CVE-2026-6019: protect against HTML injection by Base64-encoding cookie values embedded in JS (bsc#1262654, gh#python/cpython#90309)
CVE-2026-1502: reject CR/LF in HTTP tunnel request headers (bsc#1261969, gh#python/cpython#146211)
CVE-2026-4786: fix webbrowser %action substitution bypass of dash-prefix check (bsc#1262319, gh#python/cpython#148169)
CVE-2026-6100: prevent dangling pointer, which can end in the use-after-free error (bsc#1262098, gh#python/cpython#148395)
Changes in python3:
break bootstrap build dependency cycle on primary python
Break the cyclic build dependency loop between python3 and
python313 during version upgrades (such as 3.13.13 to 3.13.14).
Previously, python3.spec required BuildRequires: %{primary_python} (the versioned non-base interpreter package)
and queried its version via rpm -q during spec file parsing.
During upgrades, this blocked the build of python3 because
%{primary_python} (non-base) depended on python3-base, which
demanded the new python313-base version.
Since the unversioned compatibility package python3 only
creates unversioned symlinks (like /usr/bin/python3) and owns
generic RPM macros, it does not actually require the versioned
standard library modules (the non-base flavor) to build.
This change allows python3 to build successfully against the
already built python313-base and python313-devel packages,
breaking the circular dependency and enabling a clean upgrade
path.
Let python3-devel explicitly provide pkgconfig(python3) and pkgconfig(python3-embed), matching its ownership of the unversioned pkg-config files.
Complete the transition of the unversioned python3 namespace (jsc#PED-16123, bsc#1258364).
Add missing Provides/Obsoletes for generic names.
Add macros.python3 (moved from python313).
Add BuildIgnore: gdb BuildRequires: python313-devel → python313-devel owns /usr/share/gdb/auto-load/...libpython3.13...-gdb.py → the currently published version of that file has #!/usr/bin/python3 → RPM auto-generated Requires: python3-base on gdb → OBS tries to install gdb into the build root and fails because python3-base is the package being built.
Correct the logic in the %pre scripts.
version of the package must be equal to the version of %primary_python
Initial packaging effort for the python3 superpackage.
python3 is shipped as new package.
{
"binaries": [
{
"libpython3_13-1_0": "3.13.14-160000.1.1",
"python3": "3.13.14-160000.1.1",
"python3-base": "3.13.14-160000.1.1",
"python3-curses": "3.13.14-160000.1.1",
"python313": "3.13.14-160000.1.1",
"python313-base": "3.13.14-160000.1.1",
"python313-curses": "3.13.14-160000.1.1"
}
]
}
{
"binaries": [
{
"libpython3_13-1_0": "3.13.14-160000.1.1",
"python3": "3.13.14-160000.1.1",
"python3-base": "3.13.14-160000.1.1",
"python3-curses": "3.13.14-160000.1.1",
"python313": "3.13.14-160000.1.1",
"python313-base": "3.13.14-160000.1.1",
"python313-curses": "3.13.14-160000.1.1"
}
]
}
{
"binaries": [
{
"libpython3_13-1_0": "3.13.14-160000.1.1",
"python3": "3.13.14-160000.1.1",
"python3-base": "3.13.14-160000.1.1",
"python3-curses": "3.13.14-160000.1.1",
"python313": "3.13.14-160000.1.1",
"python313-base": "3.13.14-160000.1.1",
"python313-curses": "3.13.14-160000.1.1"
}
]
}