2025-10-24 22:33:00 +00:00
committed by Matěj Cepl
parent dc71fadfa7
commit 45f653ebee
17 changed files with 113 additions and 1819 deletions

1
.gitattributes vendored
View File

@@ -21,3 +21,4 @@
*.xz filter=lfs diff=lfs merge=lfs -text *.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text
*.changes merge=merge-changes

4
.gitignore vendored
View File

@@ -1 +1,5 @@
.osc .osc
*.obscpio
_build.*
.pbuild
python314-*-build/

View File

@@ -4,11 +4,11 @@
Lib/test/test_xml_etree.py | 10 ++++++++++ Lib/test/test_xml_etree.py | 10 ++++++++++
3 files changed, 17 insertions(+) 3 files changed, 17 insertions(+)
Index: Python-3.15.0a1/Lib/test/test_pyexpat.py Index: Python-3.14.0/Lib/test/test_pyexpat.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_pyexpat.py 2025-10-24 23:53:24.356893960 +0200 --- Python-3.14.0.orig/Lib/test/test_pyexpat.py 2025-10-08 11:27:29.989583305 +0200
+++ Python-3.15.0a1/Lib/test/test_pyexpat.py 2025-10-24 23:53:50.136311340 +0200 +++ Python-3.14.0/Lib/test/test_pyexpat.py 2025-10-08 11:28:09.418914658 +0200
@@ -843,6 +843,10 @@ @@ -827,6 +827,10 @@
self.assertEqual(started, ['doc']) self.assertEqual(started, ['doc'])
def test_reparse_deferral_disabled(self): def test_reparse_deferral_disabled(self):
@@ -19,10 +19,10 @@ Index: Python-3.15.0a1/Lib/test/test_pyexpat.py
started = [] started = []
def start_element(name, _): def start_element(name, _):
Index: Python-3.15.0a1/Lib/test/test_sax.py Index: Python-3.14.0/Lib/test/test_sax.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_sax.py 2025-10-24 23:53:24.425039914 +0200 --- Python-3.14.0.orig/Lib/test/test_sax.py 2025-10-08 11:27:30.053760879 +0200
+++ Python-3.15.0a1/Lib/test/test_sax.py 2025-10-24 23:53:50.136951370 +0200 +++ Python-3.14.0/Lib/test/test_sax.py 2025-10-08 11:28:09.419532320 +0200
@@ -1241,6 +1241,9 @@ @@ -1241,6 +1241,9 @@
self.assertEqual(result.getvalue(), start + b"<doc></doc>") self.assertEqual(result.getvalue(), start + b"<doc></doc>")
@@ -33,10 +33,10 @@ Index: Python-3.15.0a1/Lib/test/test_sax.py
def test_flush_reparse_deferral_disabled(self): def test_flush_reparse_deferral_disabled(self):
result = BytesIO() result = BytesIO()
xmlgen = XMLGenerator(result) xmlgen = XMLGenerator(result)
Index: Python-3.15.0a1/Lib/test/test_xml_etree.py Index: Python-3.14.0/Lib/test/test_xml_etree.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_xml_etree.py 2025-10-24 23:53:24.855327755 +0200 --- Python-3.14.0.orig/Lib/test/test_xml_etree.py 2025-10-08 11:27:30.502943506 +0200
+++ Python-3.15.0a1/Lib/test/test_xml_etree.py 2025-10-24 23:53:50.137646227 +0200 +++ Python-3.14.0/Lib/test/test_xml_etree.py 2025-10-08 11:28:09.420206077 +0200
@@ -138,6 +138,11 @@ @@ -138,6 +138,11 @@
return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq)
@@ -61,7 +61,7 @@ Index: Python-3.15.0a1/Lib/test/test_xml_etree.py
def test_simple_xml_chunk_5(self): def test_simple_xml_chunk_5(self):
self.test_simple_xml(chunk_size=5, flush=True) self.test_simple_xml(chunk_size=5, flush=True)
@@ -1776,6 +1783,9 @@ @@ -1774,6 +1781,9 @@
self.assert_event_tags(parser, [('end', 'doc')]) self.assert_event_tags(parser, [('end', 'doc')])

View File

@@ -28,10 +28,10 @@ Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
Lib/test/test_sysconfig.py | 17 +++++++++++++-- Lib/test/test_sysconfig.py | 17 +++++++++++++--
2 files changed, 63 insertions(+), 3 deletions(-) 2 files changed, 63 insertions(+), 3 deletions(-)
Index: Python-3.15.0a1/Lib/sysconfig/__init__.py Index: Python-3.14.0/Lib/sysconfig/__init__.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/sysconfig/__init__.py 2025-10-24 23:53:22.709921139 +0200 --- Python-3.14.0.orig/Lib/sysconfig/__init__.py 2025-10-08 11:27:28.335887277 +0200
+++ Python-3.15.0a1/Lib/sysconfig/__init__.py 2025-10-24 23:53:34.981019958 +0200 +++ Python-3.14.0/Lib/sysconfig/__init__.py 2025-10-08 11:28:00.652215416 +0200
@@ -106,6 +106,11 @@ @@ -106,6 +106,11 @@
else: else:
_INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv']
@@ -73,7 +73,7 @@ Index: Python-3.15.0a1/Lib/sysconfig/__init__.py
_BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) _BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
# Mutex guarding initialization of _CONFIG_VARS. # Mutex guarding initialization of _CONFIG_VARS.
_CONFIG_VARS_LOCK = threading.RLock() _CONFIG_VARS_LOCK = threading.RLock()
@@ -257,11 +277,40 @@ @@ -268,11 +288,40 @@
target_dict[key] = value target_dict[key] = value
@@ -115,11 +115,11 @@ Index: Python-3.15.0a1/Lib/sysconfig/__init__.py
if os.name == 'nt': if os.name == 'nt':
# On Windows we want to substitute 'lib' for schemes rather # On Windows we want to substitute 'lib' for schemes rather
# than the native value (without modifying vars, in case it # than the native value (without modifying vars, in case it
Index: Python-3.15.0a1/Lib/test/test_sysconfig.py Index: Python-3.14.0/Lib/test/test_sysconfig.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_sysconfig.py 2025-10-24 23:53:24.545975205 +0200 --- Python-3.14.0.orig/Lib/test/test_sysconfig.py 2025-10-08 11:27:30.181651013 +0200
+++ Python-3.15.0a1/Lib/test/test_sysconfig.py 2025-10-24 23:53:34.981457517 +0200 +++ Python-3.14.0/Lib/test/test_sysconfig.py 2025-10-08 11:28:00.653226898 +0200
@@ -131,8 +131,19 @@ @@ -132,8 +132,19 @@
for scheme in _INSTALL_SCHEMES: for scheme in _INSTALL_SCHEMES:
for name in _INSTALL_SCHEMES[scheme]: for name in _INSTALL_SCHEMES[scheme]:
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
@@ -140,7 +140,7 @@ Index: Python-3.15.0a1/Lib/test/test_sysconfig.py
os.path.normpath(expected), os.path.normpath(expected),
) )
@@ -394,7 +405,7 @@ @@ -395,7 +406,7 @@
self.assertTrue(os.path.isfile(config_h), config_h) self.assertTrue(os.path.isfile(config_h), config_h)
def test_get_scheme_names(self): def test_get_scheme_names(self):
@@ -149,7 +149,7 @@ Index: Python-3.15.0a1/Lib/test/test_sysconfig.py
if HAS_USER_BASE: if HAS_USER_BASE:
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
@@ -406,6 +417,8 @@ @@ -407,6 +418,8 @@
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))

BIN
Python-3.14.0.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

BIN
Python-3.15.0a1.tar.xz (Stored with Git LFS)

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
python315-base python314-base
python315 python314
libpython3_15-1_0 libpython3_14-1_0

View File

@@ -13,10 +13,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
5 files changed, 37 insertions(+), 9 deletions(-) 5 files changed, 37 insertions(+), 9 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
Index: Python-3.15.0a1/Doc/library/ensurepip.rst Index: Python-3.14.0rc1/Doc/library/ensurepip.rst
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Doc/library/ensurepip.rst 2025-10-14 12:46:08.000000000 +0200 --- Python-3.14.0rc1.orig/Doc/library/ensurepip.rst 2025-07-22 18:42:44.000000000 +0200
+++ Python-3.15.0a1/Doc/library/ensurepip.rst 2025-10-24 23:53:43.587408643 +0200 +++ Python-3.14.0rc1/Doc/library/ensurepip.rst 2025-07-23 10:10:31.690342385 +0200
@@ -61,7 +61,11 @@ @@ -61,7 +61,11 @@
By default, ``pip`` is installed into the current virtual environment By default, ``pip`` is installed into the current virtual environment
(if one is active) or into the system site packages (if there is no (if one is active) or into the system site packages (if there is no
@@ -57,10 +57,10 @@ Index: Python-3.15.0a1/Doc/library/ensurepip.rst
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
.. note:: .. note::
Index: Python-3.15.0a1/Lib/ensurepip/__init__.py Index: Python-3.14.0rc1/Lib/ensurepip/__init__.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/ensurepip/__init__.py 2025-10-24 23:53:22.118065622 +0200 --- Python-3.14.0rc1.orig/Lib/ensurepip/__init__.py 2025-07-23 10:10:18.541751619 +0200
+++ Python-3.15.0a1/Lib/ensurepip/__init__.py 2025-10-24 23:53:43.587899003 +0200 +++ Python-3.14.0rc1/Lib/ensurepip/__init__.py 2025-07-23 10:10:31.690818287 +0200
@@ -106,27 +106,27 @@ @@ -106,27 +106,27 @@
os.environ['PIP_CONFIG_FILE'] = os.devnull os.environ['PIP_CONFIG_FILE'] = os.devnull
@@ -94,7 +94,7 @@ Index: Python-3.15.0a1/Lib/ensurepip/__init__.py
Note that calling this function will alter both sys.path and os.environ. Note that calling this function will alter both sys.path and os.environ.
""" """
@@ -171,6 +171,8 @@ @@ -162,6 +162,8 @@
args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir] args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir]
if root: if root:
args += ["--root", root] args += ["--root", root]
@@ -103,7 +103,7 @@ Index: Python-3.15.0a1/Lib/ensurepip/__init__.py
if upgrade: if upgrade:
args += ["--upgrade"] args += ["--upgrade"]
if user: if user:
@@ -247,6 +249,11 @@ @@ -238,6 +240,11 @@
help="Install everything relative to this alternate root directory.", help="Install everything relative to this alternate root directory.",
) )
parser.add_argument( parser.add_argument(
@@ -115,7 +115,7 @@ Index: Python-3.15.0a1/Lib/ensurepip/__init__.py
"--altinstall", "--altinstall",
action="store_true", action="store_true",
default=False, default=False,
@@ -265,6 +272,7 @@ @@ -256,6 +263,7 @@
return _bootstrap( return _bootstrap(
root=args.root, root=args.root,
@@ -123,11 +123,11 @@ Index: Python-3.15.0a1/Lib/ensurepip/__init__.py
upgrade=args.upgrade, upgrade=args.upgrade,
user=args.user, user=args.user,
verbosity=args.verbosity, verbosity=args.verbosity,
Index: Python-3.15.0a1/Lib/test/test_ensurepip.py Index: Python-3.14.0rc1/Lib/test/test_ensurepip.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_ensurepip.py 2025-10-24 23:53:23.546712597 +0200 --- Python-3.14.0rc1.orig/Lib/test/test_ensurepip.py 2025-07-23 10:10:19.969641992 +0200
+++ Python-3.15.0a1/Lib/test/test_ensurepip.py 2025-10-24 23:53:43.588286136 +0200 +++ Python-3.14.0rc1/Lib/test/test_ensurepip.py 2025-07-23 10:10:31.691217643 +0200
@@ -105,6 +105,17 @@ @@ -100,6 +100,17 @@
unittest.mock.ANY, unittest.mock.ANY,
) )
@@ -145,11 +145,11 @@ Index: Python-3.15.0a1/Lib/test/test_ensurepip.py
def test_bootstrapping_with_user(self): def test_bootstrapping_with_user(self):
ensurepip.bootstrap(user=True) ensurepip.bootstrap(user=True)
Index: Python-3.15.0a1/Makefile.pre.in Index: Python-3.14.0rc1/Makefile.pre.in
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200 --- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200
+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:43.588889640 +0200 +++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:31.691716104 +0200
@@ -2378,7 +2378,7 @@ @@ -2371,7 +2371,7 @@
install|*) ensurepip="" ;; \ install|*) ensurepip="" ;; \
esac; \ esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -158,7 +158,7 @@ Index: Python-3.15.0a1/Makefile.pre.in
fi fi
.PHONY: altinstall .PHONY: altinstall
@@ -2389,7 +2389,7 @@ @@ -2382,7 +2382,7 @@
install|*) ensurepip="--altinstall" ;; \ install|*) ensurepip="--altinstall" ;; \
esac; \ esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -167,9 +167,9 @@ Index: Python-3.15.0a1/Makefile.pre.in
fi fi
.PHONY: commoninstall .PHONY: commoninstall
Index: Python-3.15.0a1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst Index: Python-3.14.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ Python-3.15.0a1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2025-10-24 23:53:43.589498870 +0200 +++ Python-3.14.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2025-07-23 10:10:31.692253536 +0200
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+A directory prefix can now be specified when using :mod:`ensurepip`. +A directory prefix can now be specified when using :mod:`ensurepip`.

View File

@@ -2,10 +2,10 @@
Lib/test/test_compile.py | 5 +++++ Lib/test/test_compile.py | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
Index: Python-3.15.0a1/Lib/test/test_compile.py Index: Python-3.14.0b3/Lib/test/test_compile.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Lib/test/test_compile.py 2025-10-24 23:53:23.250923195 +0200 --- Python-3.14.0b3.orig/Lib/test/test_compile.py 2025-06-22 00:32:01.975698954 +0200
+++ Python-3.15.0a1/Lib/test/test_compile.py 2025-10-24 23:53:52.578315707 +0200 +++ Python-3.14.0b3/Lib/test/test_compile.py 2025-06-22 00:32:07.740981155 +0200
@@ -24,6 +24,9 @@ @@ -24,6 +24,9 @@
from test.support.bytecode_helper import instructions_with_positions from test.support.bytecode_helper import instructions_with_positions
from test.support.os_helper import FakePath from test.support.os_helper import FakePath
@@ -24,7 +24,7 @@ Index: Python-3.15.0a1/Lib/test/test_compile.py
@support.skip_emscripten_stack_overflow() @support.skip_emscripten_stack_overflow()
def test_extended_arg(self): def test_extended_arg(self):
repeat = 100 repeat = 100
@@ -724,6 +728,7 @@ @@ -709,6 +713,7 @@
@support.cpython_only @support.cpython_only
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")

View File

@@ -0,0 +1,30 @@
From 4bb41b28d5bac09bccd636d8c5fefe1a462f63a7 Mon Sep 17 00:00:00 2001
From: Alm <alon.menczer@gmail.com>
Date: Mon, 25 Aug 2025 08:56:38 +0300
Subject: [PATCH 1/4] Exclude .pyc files from the computed digest in the jit
stencils
---
Tools/jit/_targets.py | 3 +++
1 file changed, 3 insertions(+)
Index: Python-3.14.0rc2/Tools/jit/_targets.py
===================================================================
--- Python-3.14.0rc2.orig/Tools/jit/_targets.py
+++ Python-3.14.0rc2/Tools/jit/_targets.py
@@ -69,6 +69,9 @@ class _Target(typing.Generic[_S, _R]):
hasher.update(PYTHON_EXECUTOR_CASES_C_H.read_bytes())
hasher.update((self.pyconfig_dir / "pyconfig.h").read_bytes())
for dirpath, _, filenames in sorted(os.walk(TOOLS_JIT)):
+ # Exclude cache files from digest computation to ensure reproducible builds.
+ if dirpath.endswith("__pycache__"):
+ continue
for filename in filenames:
hasher.update(pathlib.Path(dirpath, filename).read_bytes())
return hasher.hexdigest()
Index: Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
===================================================================
--- /dev/null
+++ Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
@@ -0,0 +1 @@
+Ensure reproducible builds by making JIT stencil header generation deterministic.

View File

@@ -7,12 +7,12 @@ Subject: [PATCH 1/2] gh-139257: Support docutils >= 0.22
Doc/tools/extensions/pyspecific.py | 12 +++++++++++- Doc/tools/extensions/pyspecific.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-) 1 file changed, 11 insertions(+), 1 deletion(-)
Index: Python-3.15.0a1/Doc/tools/extensions/pyspecific.py Index: Python-3.14.0/Doc/tools/extensions/pyspecific.py
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Doc/tools/extensions/pyspecific.py 2025-10-14 12:46:08.000000000 +0200 --- Python-3.14.0.orig/Doc/tools/extensions/pyspecific.py
+++ Python-3.15.0a1/Doc/tools/extensions/pyspecific.py 2025-10-24 23:55:02.700550007 +0200 +++ Python-3.14.0/Doc/tools/extensions/pyspecific.py
@@ -25,11 +25,21 @@ @@ -25,11 +25,21 @@ from sphinx.util.docutils import SphinxD
SOURCE_URI = 'https://github.com/python/cpython/tree/main/%s' SOURCE_URI = 'https://github.com/python/cpython/tree/3.14/%s'
# monkey-patch reST parser to disable alphabetic and roman enumerated lists # monkey-patch reST parser to disable alphabetic and roman enumerated lists
+def _disable_alphabetic_and_roman(text): +def _disable_alphabetic_and_roman(text):

View File

@@ -2,11 +2,11 @@
Makefile.pre.in | 5 +++++ Makefile.pre.in | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
Index: Python-3.15.0a1/Makefile.pre.in Index: Python-3.14.0rc1/Makefile.pre.in
=================================================================== ===================================================================
--- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-14 12:46:08.000000000 +0200 --- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-22 18:42:44.000000000 +0200
+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200 +++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200
@@ -1917,6 +1917,11 @@ @@ -1910,6 +1910,11 @@
-DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
-o $@ $(srcdir)/Modules/getbuildinfo.c -o $@ $(srcdir)/Modules/getbuildinfo.c

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
# #
# spec file for package python315 # spec file for package python314
# #
# Copyright (c) 2025 SUSE LLC and contributors # Copyright (c) 2025 SUSE LLC and contributors
# #
@@ -86,10 +86,10 @@
%bcond_with externally_managed %bcond_with externally_managed
%endif %endif
%define python_pkg_name python315 %define python_pkg_name python314
%if %{without GIL} %if %{without GIL}
%define python_pkg_name python315-nogil %define python_pkg_name python314-nogil
%define base_pkg_name python315 %define base_pkg_name python314
%endif %endif
%if "%{python_pkg_name}" == "%{primary_python}" %if "%{python_pkg_name}" == "%{primary_python}"
@@ -116,7 +116,7 @@
# based on the current source tarball # based on the current source tarball
%define python_version_abitag %(c=%{python_version}; echo ${c//./}) %define python_version_abitag %(c=%{python_version}; echo ${c//./})
# FIXME %%define python_version_soname %%(c=%%{python_version}; echo ${c//./_}) # FIXME %%define python_version_soname %%(c=%%{python_version}; echo ${c//./_})
%define python_version_soname 3_15 %define python_version_soname 3_14
# %%if 0%%(test -n "%%{tar_suffix}" && echo 1) # %%if 0%%(test -n "%%{tar_suffix}" && echo 1)
# %%define _version %%(echo "%%{_version}~%%{tar_suffix}") # %%define _version %%(echo "%%{_version}~%%{tar_suffix}")
# %%define tarversion %%{version} # %%define tarversion %%{version}
@@ -124,9 +124,9 @@
# %%define tarversion %%{version} # %%define tarversion %%{version}
# %%endif # %%endif
# We don't process beta signs well # We don't process beta signs well
%define folderversion 3.15.0 %define folderversion 3.14.0
%define sitedir %{_libdir}/python%{python_version} %define sitedir %{_libdir}/python%{python_version}
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3159 # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
%define abi_kind %{nil} %define abi_kind %{nil}
%if %{without GIL} %if %{without GIL}
%define abi_kind t %define abi_kind t
@@ -134,7 +134,7 @@
%endif %endif
# python ABI version - used in some file names # python ABI version - used in some file names
%define python_abi %{python_version}%{abi_kind} %define python_abi %{python_version}%{abi_kind}
# soname ABI tag defined in PEP 3159 # soname ABI tag defined in PEP 3149
%define abi_tag %{python_version_abitag}%{abi_kind} %define abi_tag %{python_version_abitag}%{abi_kind}
# version part of "libpython" package # version part of "libpython" package
%define so_major 1 %define so_major 1
@@ -162,8 +162,8 @@
# _md5.cpython-38m-x86_64-linux-gnu.so # _md5.cpython-38m-x86_64-linux-gnu.so
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
Name: %{python_pkg_name}%{psuffix} Name: %{python_pkg_name}%{psuffix}
Version: 3.15.0~a1 Version: 3.14.0
%define tarversion 3.15.0a1 %define tarversion %{version}
%define tarname Python-%{tarversion} %define tarname Python-%{tarversion}
Release: 0 Release: 0
Summary: Python 3 Interpreter Summary: Python 3 Interpreter
@@ -187,7 +187,7 @@ Source20: idle3.appdata.xml
# 3. mkdir Vendor && mv usr/include/* Vendor/ # 3. mkdir Vendor && mv usr/include/* Vendor/
# 4. tar cJf bluez-devel-vendor.tar.xz Vendor/ # 4. tar cJf bluez-devel-vendor.tar.xz Vendor/
Source21: bluez-devel-vendor.tar.xz Source21: bluez-devel-vendor.tar.xz
Source98: python315-rpmlintrc Source98: python314-rpmlintrc
# The following files are not used in the build. # The following files are not used in the build.
# They are listed here to work around missing functionality in rpmbuild, # They are listed here to work around missing functionality in rpmbuild,
# which would otherwise exclude them from distributed src.rpm files. # which would otherwise exclude them from distributed src.rpm files.
@@ -222,9 +222,11 @@ Patch40: fix-test-recursion-limit-15.6.patch
# PATCH-FIX-UPSTREAM bsc1243155-sphinx-non-determinism.patch bsc#1243155 mcepl@suse.com # PATCH-FIX-UPSTREAM bsc1243155-sphinx-non-determinism.patch bsc#1243155 mcepl@suse.com
# Doc: Generate ids for audit_events using docname # Doc: Generate ids for audit_events using docname
Patch41: bsc1243155-sphinx-non-determinism.patch Patch41: bsc1243155-sphinx-non-determinism.patch
# PATCH-FIX-UPSTREAM gh138131-exclude-pycache-from-digest.patch bsc#1244680 daniel.garcia@suse.com
Patch44: gh138131-exclude-pycache-from-digest.patch
# PATCH-FIX-OPENSUSE gh139257-Support-docutils-0.22.patch gh#python/cpython#139257 daniel.garcia@suse.com # PATCH-FIX-OPENSUSE gh139257-Support-docutils-0.22.patch gh#python/cpython#139257 daniel.garcia@suse.com
Patch42: gh139257-Support-docutils-0.22.patch Patch45: gh139257-Support-docutils-0.22.patch
#### Python 3.15 DEVELOPMENT PATCHES #### Python 3.14 DEVELOPMENT PATCHES
BuildRequires: autoconf-archive BuildRequires: autoconf-archive
BuildRequires: automake BuildRequires: automake
BuildRequires: fdupes BuildRequires: fdupes
@@ -664,7 +666,7 @@ EXCLUDE="$EXCLUDE test_uuid"
# bsc#1195140 and bpo#37169 - test_capi is failing on openSUSE, and not sure why # bsc#1195140 and bpo#37169 - test_capi is failing on openSUSE, and not sure why
EXCLUDE="$EXCLUDE test_capi" EXCLUDE="$EXCLUDE test_capi"
# Failing tests on python 3.15 # Failing tests on python 3.14
EXCLUDE="$EXCLUDE test_regrtest test_sysconfig" EXCLUDE="$EXCLUDE test_regrtest test_sysconfig"
# Limit virtual memory to avoid spurious failures # Limit virtual memory to avoid spurious failures
@@ -760,7 +762,7 @@ install -d -m 755 %{buildroot}%{_sysconfdir}/idle%{python_abi}
# keep just idle3.X # keep just idle3.X
rm %{buildroot}%{_bindir}/idle3 rm %{buildroot}%{_bindir}/idle3
# mve idle binary to idle3.15t to avoid conflict # mve idle binary to idle3.14t to avoid conflict
%if %{without GIL} %if %{without GIL}
mv %{buildroot}%{_bindir}/idle%{python_version} %{buildroot}%{_bindir}/idle%{python_abi} mv %{buildroot}%{_bindir}/idle%{python_version} %{buildroot}%{_bindir}/idle%{python_abi}
%endif %endif