forked from pool/python315
- New development of new major version, update to 3.15.0~a1:
- Tools/Demos
- gh-139330: SBOM generation tool didn’t cross-check
the version and checksum values against the
Modules/expat/refresh.sh script, leading to the values
becoming out-of-date during routine updates.
- gh-132006: XCframeworks now include privacy manifests to
satisfy Apple App Store submission requirements.
- gh-138171: A script for building an iOS XCframework was
added. As part of this change, the top level iOS folder has
been moved to be a subdirectory of the Apple folder.
- gh-137873: The iOS test runner has been simplified,
resolving some issues that have been observed using
the runner in GitHub Actions and Azure Pipelines test
environments.
- gh-137484: Have Tools/wasm/wasi put the build Python into a
directory named after the build triple instead of “build”.
- gh-137025: The wasm_build.py script has been removed.
Tools/wasm/emscripten and Tools/wasm/wasi should be used
instead, as described in the Dev Guide.
- gh-137248: Add a --logdir option to Tools/wasm/wasi for
specifying where to write log files.
- gh-137243: Have Tools/wasm/wasi detect a WASI SDK install
in /opt when it was directly extracted from a release
tarball.
- gh-136251: Fixes and usability improvements for
Tools/wasm/emscripten/web_example
- gh-135968: Stubs for strip are now provided as part of an
iOS install.
- gh-135379: The cases generator no longer accepts type
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python315?expand=0&rev=3
This commit is contained in:
@@ -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.14.0/Lib/test/test_pyexpat.py
|
Index: Python-3.15.0a1/Lib/test/test_pyexpat.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/Lib/test/test_pyexpat.py 2025-10-08 11:27:29.989583305 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_pyexpat.py 2025-10-24 23:53:24.356893960 +0200
|
||||||
+++ Python-3.14.0/Lib/test/test_pyexpat.py 2025-10-08 11:28:09.418914658 +0200
|
+++ Python-3.15.0a1/Lib/test/test_pyexpat.py 2025-10-24 23:53:50.136311340 +0200
|
||||||
@@ -827,6 +827,10 @@
|
@@ -843,6 +843,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.14.0/Lib/test/test_pyexpat.py
|
|||||||
started = []
|
started = []
|
||||||
|
|
||||||
def start_element(name, _):
|
def start_element(name, _):
|
||||||
Index: Python-3.14.0/Lib/test/test_sax.py
|
Index: Python-3.15.0a1/Lib/test/test_sax.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/Lib/test/test_sax.py 2025-10-08 11:27:30.053760879 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_sax.py 2025-10-24 23:53:24.425039914 +0200
|
||||||
+++ Python-3.14.0/Lib/test/test_sax.py 2025-10-08 11:28:09.419532320 +0200
|
+++ Python-3.15.0a1/Lib/test/test_sax.py 2025-10-24 23:53:50.136951370 +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.14.0/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.14.0/Lib/test/test_xml_etree.py
|
Index: Python-3.15.0a1/Lib/test/test_xml_etree.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/Lib/test/test_xml_etree.py 2025-10-08 11:27:30.502943506 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_xml_etree.py 2025-10-24 23:53:24.855327755 +0200
|
||||||
+++ Python-3.14.0/Lib/test/test_xml_etree.py 2025-10-08 11:28:09.420206077 +0200
|
+++ Python-3.15.0a1/Lib/test/test_xml_etree.py 2025-10-24 23:53:50.137646227 +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.14.0/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)
|
||||||
|
|
||||||
@@ -1774,6 +1781,9 @@
|
@@ -1776,6 +1783,9 @@
|
||||||
|
|
||||||
self.assert_event_tags(parser, [('end', 'doc')])
|
self.assert_event_tags(parser, [('end', 'doc')])
|
||||||
|
|
||||||
|
|||||||
@@ -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, 65 insertions(+), 3 deletions(-)
|
2 files changed, 65 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
Index: Python-3.14.0/Lib/sysconfig/__init__.py
|
Index: Python-3.15.0a1/Lib/sysconfig/__init__.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/Lib/sysconfig/__init__.py 2025-10-08 11:27:28.335887277 +0200
|
--- Python-3.15.0a1.orig/Lib/sysconfig/__init__.py 2025-10-24 23:53:22.709921139 +0200
|
||||||
+++ Python-3.14.0/Lib/sysconfig/__init__.py 2025-10-08 11:28:00.652215416 +0200
|
+++ Python-3.15.0a1/Lib/sysconfig/__init__.py 2025-10-24 23:53:34.981019958 +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.14.0/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()
|
||||||
@@ -268,11 +288,40 @@
|
@@ -257,11 +277,40 @@
|
||||||
target_dict[key] = value
|
target_dict[key] = value
|
||||||
|
|
||||||
|
|
||||||
@@ -115,11 +115,11 @@ Index: Python-3.14.0/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.14.0/Lib/test/test_sysconfig.py
|
Index: Python-3.15.0a1/Lib/test/test_sysconfig.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/Lib/test/test_sysconfig.py 2025-10-08 11:27:30.181651013 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_sysconfig.py 2025-10-24 23:53:24.545975205 +0200
|
||||||
+++ Python-3.14.0/Lib/test/test_sysconfig.py 2025-10-08 11:28:00.653226898 +0200
|
+++ Python-3.15.0a1/Lib/test/test_sysconfig.py 2025-10-24 23:53:34.981457517 +0200
|
||||||
@@ -132,8 +132,19 @@
|
@@ -131,8 +131,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.14.0/Lib/test/test_sysconfig.py
|
|||||||
os.path.normpath(expected),
|
os.path.normpath(expected),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -395,7 +406,7 @@
|
@@ -394,7 +405,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.14.0/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)))
|
||||||
@@ -407,6 +418,8 @@
|
@@ -406,6 +417,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)
BIN
Python-3.14.0.tar.xz
(Stored with Git LFS)
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)
Normal file
BIN
Python-3.15.0a1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
1
Python-3.15.0a1.tar.xz.sigstore
Normal file
1
Python-3.15.0a1.tar.xz.sigstore
Normal file
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
|||||||
python314-base
|
python315-base
|
||||||
python314
|
python315
|
||||||
libpython3_14-1_0
|
libpython3_15-1_0
|
||||||
|
|||||||
@@ -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.14.0rc1/Doc/library/ensurepip.rst
|
Index: Python-3.15.0a1/Doc/library/ensurepip.rst
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0rc1.orig/Doc/library/ensurepip.rst 2025-07-22 18:42:44.000000000 +0200
|
--- Python-3.15.0a1.orig/Doc/library/ensurepip.rst 2025-10-14 12:46:08.000000000 +0200
|
||||||
+++ Python-3.14.0rc1/Doc/library/ensurepip.rst 2025-07-23 10:10:31.690342385 +0200
|
+++ Python-3.15.0a1/Doc/library/ensurepip.rst 2025-10-24 23:53:43.587408643 +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.14.0rc1/Doc/library/ensurepip.rst
|
|||||||
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Index: Python-3.14.0rc1/Lib/ensurepip/__init__.py
|
Index: Python-3.15.0a1/Lib/ensurepip/__init__.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0rc1.orig/Lib/ensurepip/__init__.py 2025-07-23 10:10:18.541751619 +0200
|
--- Python-3.15.0a1.orig/Lib/ensurepip/__init__.py 2025-10-24 23:53:22.118065622 +0200
|
||||||
+++ Python-3.14.0rc1/Lib/ensurepip/__init__.py 2025-07-23 10:10:31.690818287 +0200
|
+++ Python-3.15.0a1/Lib/ensurepip/__init__.py 2025-10-24 23:53:43.587899003 +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.14.0rc1/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.
|
||||||
"""
|
"""
|
||||||
@@ -162,6 +162,8 @@
|
@@ -171,6 +171,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.14.0rc1/Lib/ensurepip/__init__.py
|
|||||||
if upgrade:
|
if upgrade:
|
||||||
args += ["--upgrade"]
|
args += ["--upgrade"]
|
||||||
if user:
|
if user:
|
||||||
@@ -238,6 +240,11 @@
|
@@ -247,6 +249,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.14.0rc1/Lib/ensurepip/__init__.py
|
|||||||
"--altinstall",
|
"--altinstall",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
default=False,
|
default=False,
|
||||||
@@ -256,6 +263,7 @@
|
@@ -265,6 +272,7 @@
|
||||||
|
|
||||||
return _bootstrap(
|
return _bootstrap(
|
||||||
root=args.root,
|
root=args.root,
|
||||||
@@ -123,11 +123,11 @@ Index: Python-3.14.0rc1/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.14.0rc1/Lib/test/test_ensurepip.py
|
Index: Python-3.15.0a1/Lib/test/test_ensurepip.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0rc1.orig/Lib/test/test_ensurepip.py 2025-07-23 10:10:19.969641992 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_ensurepip.py 2025-10-24 23:53:23.546712597 +0200
|
||||||
+++ Python-3.14.0rc1/Lib/test/test_ensurepip.py 2025-07-23 10:10:31.691217643 +0200
|
+++ Python-3.15.0a1/Lib/test/test_ensurepip.py 2025-10-24 23:53:43.588286136 +0200
|
||||||
@@ -100,6 +100,17 @@
|
@@ -105,6 +105,17 @@
|
||||||
unittest.mock.ANY,
|
unittest.mock.ANY,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -145,11 +145,11 @@ Index: Python-3.14.0rc1/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.14.0rc1/Makefile.pre.in
|
Index: Python-3.15.0a1/Makefile.pre.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200
|
--- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200
|
||||||
+++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:31.691716104 +0200
|
+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:43.588889640 +0200
|
||||||
@@ -2371,7 +2371,7 @@
|
@@ -2378,7 +2378,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.14.0rc1/Makefile.pre.in
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: altinstall
|
.PHONY: altinstall
|
||||||
@@ -2382,7 +2382,7 @@
|
@@ -2389,7 +2389,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.14.0rc1/Makefile.pre.in
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: commoninstall
|
.PHONY: commoninstall
|
||||||
Index: Python-3.14.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
Index: Python-3.15.0a1/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.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
|
+++ 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
|
||||||
@@ -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`.
|
||||||
|
|||||||
@@ -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.14.0b3/Lib/test/test_compile.py
|
Index: Python-3.15.0a1/Lib/test/test_compile.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0b3.orig/Lib/test/test_compile.py 2025-06-22 00:32:01.975698954 +0200
|
--- Python-3.15.0a1.orig/Lib/test/test_compile.py 2025-10-24 23:53:23.250923195 +0200
|
||||||
+++ Python-3.14.0b3/Lib/test/test_compile.py 2025-06-22 00:32:07.740981155 +0200
|
+++ Python-3.15.0a1/Lib/test/test_compile.py 2025-10-24 23:53:52.578315707 +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.14.0b3/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
|
||||||
@@ -709,6 +713,7 @@
|
@@ -724,6 +728,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")
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
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.
|
|
||||||
@@ -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.14.0/Doc/tools/extensions/pyspecific.py
|
Index: Python-3.15.0a1/Doc/tools/extensions/pyspecific.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0.orig/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/Doc/tools/extensions/pyspecific.py
|
+++ Python-3.15.0a1/Doc/tools/extensions/pyspecific.py 2025-10-24 23:55:02.700550007 +0200
|
||||||
@@ -25,11 +25,21 @@ from sphinx.util.docutils import SphinxD
|
@@ -25,11 +25,21 @@
|
||||||
SOURCE_URI = 'https://github.com/python/cpython/tree/3.14/%s'
|
SOURCE_URI = 'https://github.com/python/cpython/tree/main/%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):
|
||||||
|
|||||||
@@ -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.14.0rc1/Makefile.pre.in
|
Index: Python-3.15.0a1/Makefile.pre.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.14.0rc1.orig/Makefile.pre.in 2025-07-22 18:42:44.000000000 +0200
|
--- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-14 12:46:08.000000000 +0200
|
||||||
+++ Python-3.14.0rc1/Makefile.pre.in 2025-07-23 10:10:27.325708066 +0200
|
+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200
|
||||||
@@ -1910,6 +1910,11 @@
|
@@ -1917,6 +1917,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
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python314
|
# spec file for package python315
|
||||||
#
|
#
|
||||||
# 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 python314
|
%define python_pkg_name python315
|
||||||
%if %{without GIL}
|
%if %{without GIL}
|
||||||
%define python_pkg_name python314-nogil
|
%define python_pkg_name python315-nogil
|
||||||
%define base_pkg_name python314
|
%define base_pkg_name python315
|
||||||
%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_14
|
%define python_version_soname 3_15
|
||||||
# %%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.14.0
|
%define folderversion 3.15.0
|
||||||
%define sitedir %{_libdir}/python%{python_version}
|
%define sitedir %{_libdir}/python%{python_version}
|
||||||
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
|
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3159
|
||||||
%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 3149
|
# soname ABI tag defined in PEP 3159
|
||||||
%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.14.0
|
Version: 3.15.0~a1
|
||||||
%define tarversion %{version}
|
%define tarversion 3.15.0a1
|
||||||
%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: python314-rpmlintrc
|
Source98: python315-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,11 +222,9 @@ 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
|
||||||
Patch45: gh139257-Support-docutils-0.22.patch
|
Patch42: gh139257-Support-docutils-0.22.patch
|
||||||
#### Python 3.14 DEVELOPMENT PATCHES
|
#### Python 3.15 DEVELOPMENT PATCHES
|
||||||
BuildRequires: autoconf-archive
|
BuildRequires: autoconf-archive
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@@ -666,7 +664,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.14
|
# Failing tests on python 3.15
|
||||||
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
|
||||||
@@ -762,7 +760,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.14t to avoid conflict
|
# mve idle binary to idle3.15t 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
|
||||||
Reference in New Issue
Block a user