Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python315 for openSUSE:Factory checked in at 2026-04-09 16:08:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python315 (Old) and /work/SRC/openSUSE:Factory/.python315.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python315" Thu Apr 9 16:08:50 2026 rev:10 rq:1345197 version:3.15.0~a8 Changes: -------- --- /work/SRC/openSUSE:Factory/python315/python315.changes 2026-03-31 15:23:44.759961580 +0200 +++ /work/SRC/openSUSE:Factory/.python315.new.21863/python315.changes 2026-04-09 16:21:36.718787488 +0200 @@ -1,0 +2,509 @@ +Wed Apr 8 07:34:18 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.15.0~a8 (the last alpha release): + - Security + - gh-145986: xml.parsers.expat: Fixed a crash caused by + unbounded C recursion when converting deeply nested XML + content models with ElementDeclHandler(). This addresses + CVE 2026-4224 (bsc#1259735, CVE-2026-4224). + - gh-145599: Reject control characters in http.cookies.Morsel + update() and js_output(). This addresses CVE 2026-3644 + (bsc#1259734, CVE-2026-3644). + - gh-143930: Reject leading dashes in URLs passed to + webbrowser.open() (bsc#1260026, CVE-2026-4519). + - Core and Builtins + - gh-148157: Fix an unlikely crash when parsing an invalid + type comments for function parameters. Found by OSS Fuzz in + #492782951. + - gh-100239: Propagate result type and uniqueness information + through _BINARY_OP_EXTEND in the tier 2 optimizer, enabling + elimination of downstream type guards and selection of + inplace float operations. + - gh-148144: Initialize _PyInterpreterFrame.visited when + copying interpreter frames so incremental GC does not read + an uninitialized byte from generator and frame-object + copies. + - gh-148072: Cache pickle.dumps and pickle.loads per + interpreter in the XIData framework, avoiding repeated + module lookups on every cross-interpreter data transfer. + This speeds up InterpreterPoolExecutor for mutable types + (list, dict) by 1.7x–3.3x. + - gh-148110: Fix sys.set_lazy_imports_filter() so relative + lazy imports pass the resolved imported module name to the + filter callback. Patch by Pablo Galindo. + - gh-148083: Constant-fold _CONTAINS_OP_SET for frozenset. + Patch by Donghee Na. + - gh-144319: Fix a bug that could cause applications with + specific allocation patterns to leak memory via Huge Pages + if compiled with Huge Page support. Patch by Pablo Galindo + - gh-147985: Make PySet_Contains() attempt a lock-free + lookup, similar to set.__contains__(). This avoids + acquiring the set object mutex in the normal case. + - gh-147856: Allow the count argument of bytes.replace() to + be a keyword. + - gh-146615: Fix a crash in __get__() for METH_METHOD + descriptors when an invalid (non-type) object is passed as + the second argument. Patch by Steven Sun. + - gh-146306: Optimize compact integer arithmetic in the JIT + by mutating uniquely-referenced operands in place, avoiding + allocation of a new int object. Speeds up the pyperformance + spectral_norm benchmark by ~10%. + - gh-146587: Fix type slot assignment incase of multiple + slots for same name in type object implementation. Patch by + Kumar Aditya. + - gh-126910: Set frame pointers in aarch64-unknown-linux-gnu + JIT code, allowing most native profilers and debuggers to + unwind through them. Patch by Diego Russo (possibly + a duplicate gh#python/cpython#144741 ?) + - gh-146388: Adds a null check to handle when the JIT + optimizer runs out of space when dealing with + contradictions in make_bottom. + - gh-146369: Ensure -X lazy_imports=none` and + PYTHON_LAZY_IMPORTS=none` override __lazy_modules__. Patch + by Hugo van Kemenade. + - gh-146308: Fixed multiple error handling issues in the + _remote_debugging module including a double-free in code + object caching, memory leaks on allocation failure, missing + exception checks in binary format varint decoding, + reference leaks on error paths in frame chain processing, + and inconsistent thread status error reporting across + platforms. Patch by Pablo Galindo. + - gh-146306: Optimize float arithmetic in the JIT by mutating + uniquely-referenced operands in place, avoiding allocation + of a new float object. Speeds up the pyperformance nbody + benchmark by ~19%. + - gh-146128: Fix a bug which could cause constant values to + be partially corrupted in AArch64 JIT code. This issue is + theoretical, and hasn’t actually been observed in + unmodified Python interpreters. + - gh-146250: Fixed a memory leak in SyntaxError when + re-initializing it. + - gh-146245: Fixed reference leaks in socket when audit hooks + raise exceptions in socket.getaddrinfo() and + socket.sendto(). + - gh-146151: memoryview now supports the float complex and + double complex C types: formatting characters 'F' and 'D' + respectively. Patch by Sergey B Kirpichev. + - gh-146196: Fix potential Undefined Behavior in + PyUnicodeWriter_WriteASCII() by adding a zero-length check. + Patch by Shamil Abdulaev. + - gh-146227: Fix wrong type in _Py_atomic_load_uint16 in the + C11 atomics backend (pyatomic_std.h), which used a 32-bit + atomic load instead of 16-bit. Found by Mohammed Zuhaib. + - gh-146205: Fixed a bug where select.epoll.close(), + select.kqueue.close(), and select.devpoll.close() silently + ignored errors. + - gh-146199: Comparison of code objects now handles errors + correctly. + - gh-145667: Remove the GET_ITER_YIELD_FROM instruction, + modifying SEND to pair with GET_ITER when compiling yield + from expressions. + - gh-146192: Add Base32 support to binascii and improve the + performance of the Base32 converters in base64. Patch by + James Seo. + - gh-135871: Improve multithreaded scaling of PyMutex in + low-contention scenarios by reloading the lock’s internal + state, without slowing down high-contention scenarios. + - gh-146096: Fixed segmentation fault when called repr for + BaseExceptionGroup with empty or 1-size tuple args. + - gh-146056: Fix repr() for lists and tuples containing + NULLs. + - gh-145059: Fixed sys.lazy_modules to include lazy modules + without submodules. Patch by Bartosz Sławecki. + - gh-146041: Fix free-threading scaling bottleneck in + sys.intern() and PyObject_SetAttr() by avoiding the + interpreter-wide lock when the string is already interned + and immortalized. + - gh-145990: python --help-env sections are now sorted by + environment variable name. + - gh-145990: python --help-xoptions is now sorted by -X + option name. + - gh-145876: AttributeErrors and KeyErrors raised in keys() + or __getitem__() during dictionary unpacking ({**mymapping} + or func(**mymapping)) are no longer masked by TypeError. + - gh-127958: Support tracing from function entrypoints in the + JIT. Patch by Ken Jin. + - gh-145376: Fix GC tracking in structseq.__replace__(). + - gh-145792: Fix out-of-bounds access when invoking + faulthandler on a CPython build compiled without support + for VLAs. + - gh-142183: Avoid a pathological case where repeated calls + at a specific stack depth could be significantly slower. + - gh-145779: Improve scaling of classmethod() and + staticmethod() calls in the free-threaded build by avoiding + the descriptor __get__ call. + - gh-145783: Fix an unlikely crash in the parser when certain + errors were erroneously not propagated. Found by OSS Fuzz + in #491369109. + - gh-145685: Improve scaling of type attribute lookups in the + free-threaded build by avoiding contention on the internal + type lock. + - gh-145713: Make bytearray.resize() thread-safe in the + free-threaded build by using a critical section and calling + the lock-held variant of the resize function. + - gh-145036: In free-threaded build, fix race condition when + calling __sizeof__() on a list + - gh-134584: Eliminate redundant refcounting for MATCH_CLASS + in the JIT. + - gh-69605: Add math.integer to REPL auto-completion of + imports. + - gh-131798: Optimize _ITER_CHECK_RANGE and _ITER_CHECK_LIST + in the JIT + - gh-143414: Add tracking to the JIT optimizer to determine + whether a reference is uniquely owned or shared + - gh-143636: Fix a crash when calling + SimpleNamespace.__replace__() on non-namespace instances. + Patch by Bénédikt Tran. + - gh-126910: Set frame pointers in x86_64-unknown-linux-gnu + JIT code, allowing most native profilers and debuggers to + unwind through them. + - gh-140594: Fix an out of bounds read when a single NUL + character is read from the standard input. Patch by Shamil + Abdulaev. + - gh-140870: Add support for module attributes in the REPL + auto-completion of imports. + - Library + - gh-144503: Fix a regression introduced in 3.14.3 and + 3.13.12 where the multiprocessing forkserver start method + would fail with BrokenPipeError when the parent process had + a very large sys.argv. The argv is now passed to the + forkserver as separate command-line arguments rather than + being embedded in the -c command string, avoiding the + operating system’s per-argument length limit. + - gh-148153: base64.b32encode() now always raises ValueError + instead of AssertionError for the value of map01 with + invalid length. + - gh-73613: Add the padded parameter in functions related to + Base32 and Base64 codecs in the binascii and base64 + modules. In the encoding functions it controls whether the + pad character can be added in the output, in the decoding + functions it controls whether padding is required in input. + Padding of input no longer required in + base64.urlsafe_b64decode() by default. + - gh-146613: itertools: Fix a crash in itertools.groupby() + when the grouper iterator is concurrently mutated. + - gh-147944: Accepted range for the bytes_per_sep argument of + bytes.hex(), bytearray.hex(), memoryview.hex(), and + binascii.b2a_hex() is now increased, so passing sys.maxsize + and -sys.maxsize is now valid. + - gh-146080: ssl: fix a crash when an SNI callback tries to + use an SSL object that has already been garbage-collected. + Patch by Bénédikt Tran. + - gh-146556: Fix annotationlib.get_annotations() hanging + indefinitely when called with eval_str=True on a callable + that has a circular __wrapped__ chain (e.g. f.__wrapped__ + = f). Cycle detection using an id-based visited set now + stops the traversal and falls back to the globals found so + far, mirroring the approach of inspect.unwrap(). + - gh-146090: sqlite3: fix a crash when + sqlite3.Connection.create_collation() fails with + SQLITE_BUSY. Patch by Bénédikt Tran. + - gh-146090: sqlite3: properly raise MemoryError instead of + SystemError when a context callback fails to be allocated. + Patch by Bénédikt Tran. + - gh-146507: Make asyncio.SelectorEventLoop() stream + transport’s get_write_buffer_size() O(1) by maintaining + a running byte counter instead of iterating the buffer on + every call. + - gh-145056: Fix merging of collections.OrderedDict and + frozendict. + - gh-145056: Add support for merging collections.UserDict and + frozendict. + - gh-145633: Fix struct.pack('f', float): use PyFloat_Pack4() + to raise OverflowError. Patch by Sergey B Kirpichev and + Victor Stinner. + - gh-146440: json: Add the array_hook parameter to load() and + loads() functions: allow a callback for JSON literal array + types to customize Python lists in the resulting decoded + object. Passing combined frozendict to object_pairs_hook + param and tuple to array_hook will yield a deeply nested + immutable Python structure representing the JSON data. + - gh-146431: Add the wrapcol parameter to base64 functions + b16encode(), b32encode(), b32hexencode(), b85encode() and + z85encode(), and binascii functions b2a_base32() and + b2a_base85(). Add the ignorechars parameter to base64 + functions b16decode(), b32decode(), b32hexdecode(), + b85decode() and z85decode(), and binascii functions + a2b_hex(), unhexlify(), a2b_base32() and a2b_base85(). + - gh-146310: The ensurepip module no longer looks for + pip-*.whl wheel packages in the current directory. + - gh-141510: Support frozendict in plistlib, for + serialization only. Patch by Hugo van Kemenade. + - gh-146238: Support half-floats (type code 'e' of the struct + module) in the array module. Patch by Sergey B Kirpichev. + - gh-140947: Fix incorrect contextvars handling in server + tasks created by asyncio. Patch by Kumar Aditya. + - gh-146151: Support the float complex and double complex + C types in the array module: formatting characters 'F' and + 'D' respectively. Patch by Sergey B Kirpichev. + - gh-143387: In importlib.metadata, when a distribution file + is corrupt and there is no metadata file, calls to + Distribution.metadata() (including implicit calls from + other properties like .name and .requires) will now raise + a MetadataNotFound Exception. This allows callers to + distinguish between missing metadata and a degenerate + (empty) metadata. Previously, if the file was missing, an + empty PackageMetadata would be returned and would be + indistinguishable from the presence of an empty file. + - gh-146228: Cached FastPath objects in importlib.metadata + are now cleared on fork, avoiding broken references to zip + files during fork. + - gh-146171: Nested AttributeError suggestions now include + property-backed attributes on nested objects without + executing the property getter. + - gh-145410: On Windows, sysconfig.get_platform() now gets + the platform from the _sysconfig module instead of parsing + sys.version string. Patch by Victor Stinner. + - gh-146091: Fix a bug in termios.tcsetwinsize() where + passing a sequence that raises an exception in __getitem__ + would cause a SystemError instead of propagating the + original exception. + - gh-146083: Update bundled libexpat to version 2.7.5. + - gh-146076: zoneinfo: fix crashes when deleting _weak_cache + from a zoneinfo.ZoneInfo subclass. + - gh-123471: Make concurrent iteration over + itertools.zip_longest safe under free-threading. + - gh-146075: Errors when calling functools.partial() with + a malformed keyword will no longer crash the interpreter. + - gh-146054: Limit the size of encodings.search_function() + cache. Found by OSS Fuzz in #493449985. + - gh-146004: All -X options from the Python command line are + now propagated to child processes spawned by + multiprocessing, not just a hard-coded subset. This makes + the behavior consistent between default “spawn” and + “forkserver” start methods and the old “fork” start method. + The options that were previously not propagated are: + context_aware_warnings, cpu_count, disable-remote-debug, + int_max_str_digits, lazy_imports, no_debug_ranges, + pathconfig_warnings, perf, perf_jit, presite, + pycache_prefix, thread_inherit_context, and + warn_default_encoding. + - gh-145980: Added the alphabet parameter in b2a_base64(), + a2b_base64(), b2a_base85() and a2b_base85() and a number of + *_ALPHABET constants in the binascii module. Removed + b2a_z85() and a2b_z85(). + - gh-145968: Fix translation in base64.b64decode() when + altchars overlaps with the standard ones. + - gh-145966: Non-AttributeError exceptions raised during + dialect attribute lookup in csv are no longer silently + suppressed. + - gh-145883: zoneinfo: Fix heap buffer overflow reads from + malformed TZif data. Found by OSS Fuzz, issues #492245058 + and #492230068. + - gh-145850: Changed some implementation details in + struct.Struct: calling it with non-ASCII string format will + now raise a ValueError instead of UnicodeEncodeError, + calling it with non-ASCII bytes format will now raise + a ValueError instead of struct.error, getting the format ++++ 215 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python315/python315.changes ++++ and /work/SRC/openSUSE:Factory/.python315.new.21863/python315.changes Old: ---- CVE-2025-13462-tarinfo-header-parse.patch CVE-2026-3644-cookies-Morsel-update-II.patch CVE-2026-4224-expat-unbound-C-recursion.patch CVE-2026-4519-webbrowser-open-dashes.patch Python-3.15.0a7.tar.xz Python-3.15.0a7.tar.xz.sigstore gh-144741-frame_pointer_unwind.patch gh-145802-atomic-profile-update-for-PGO.patch test_ci_fuzz_stdlib-failure.patch New: ---- Python-3.15.0a8.tar.xz Python-3.15.0a8.tar.xz.sigstore ----------(Old B)---------- Old:- Remove upstreamed patches: - CVE-2025-13462-tarinfo-header-parse.patch - CVE-2026-3479-pkgutil_get_data.patch Old: - CVE-2026-3479-pkgutil_get_data.patch - CVE-2026-3644-cookies-Morsel-update-II.patch - CVE-2026-4224-expat-unbound-C-recursion.patch Old: - CVE-2026-3644-cookies-Morsel-update-II.patch - CVE-2026-4224-expat-unbound-C-recursion.patch - CVE-2026-4519-webbrowser-open-dashes.patch Old: - CVE-2026-4224-expat-unbound-C-recursion.patch - CVE-2026-4519-webbrowser-open-dashes.patch - gh-144741-frame_pointer_unwind.patch Old: - CVE-2026-4519-webbrowser-open-dashes.patch - gh-144741-frame_pointer_unwind.patch - gh-145802-atomic-profile-update-for-PGO.patch Old: - gh-144741-frame_pointer_unwind.patch - gh-145802-atomic-profile-update-for-PGO.patch - test_ci_fuzz_stdlib-failure.patch Old: - gh-145802-atomic-profile-update-for-PGO.patch - test_ci_fuzz_stdlib-failure.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python315.spec ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:37.814832461 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:37.818832625 +0200 @@ -162,8 +162,8 @@ # _md5.cpython-38m-x86_64-linux-gnu.so %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so Name: %{python_pkg_name}%{psuffix} -Version: 3.15.0~a7 -%define tarversion 3.15.0a7 +Version: 3.15.0~a8 +%define tarversion 3.15.0a8 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter @@ -228,27 +228,6 @@ # PATCH-FIX-UPSTREAM skip-test_array_alignment.patch gh#python/cpython#144725 [email protected] # skip failing test Patch43: skip-test_array_alignment.patch -# PATCH-FIX-UPSTREAM test_ci_fuzz_stdlib-failure.patch gh#python/cpython#145762 [email protected] -# skip over more files, which shouldn't be included in the test -Patch44: test_ci_fuzz_stdlib-failure.patch -# PATCH-FIX-UPSTREAM gh-145802-atomic-profile-update-for-PGO.patch gh#python/cpython#145803 [email protected] -# Use gcc -fprofile-update=atomic for PGO builds -Patch45: gh-145802-atomic-profile-update-for-PGO.patch -# PATCH-FIX-UPSTREAM gh-144741-frame_pointer_unwind.patch gh#python/cpython#144741 [email protected] -# Fix test_frame_pointer_unwind for libpython -Patch46: gh-144741-frame_pointer_unwind.patch -# PATCH-FIX-UPSTREAM CVE-2026-3644-cookies-Morsel-update-II.patch bsc#1259734 [email protected] -# Reject control characters in http.cookies.Morsel.update() and http.cookies.BaseCookie.js_output -Patch47: CVE-2026-3644-cookies-Morsel-update-II.patch -# PATCH-FIX-UPSTREAM CVE-2026-4224-expat-unbound-C-recursion.patch bsc#1259735 [email protected] -# Avoid unbound C recursion in conv_content_model -Patch48: CVE-2026-4224-expat-unbound-C-recursion.patch -# PATCH-FIX-UPSTREAM CVE-2025-13462-tarinfo-header-parse.patch bsc#1259611 [email protected] -# Skip TarInfo DIRTYPE normalization during GNU long name handling -Patch49: CVE-2025-13462-tarinfo-header-parse.patch -# PATCH-FIX-UPSTREAM CVE-2026-4519-webbrowser-open-dashes.patch bsc#1260026 [email protected] -# reject leading dashes in webbrowser URLs -Patch50: CVE-2026-4519-webbrowser-open-dashes.patch #### Python 3.15 DEVELOPMENT PATCHES BuildRequires: autoconf-archive BuildRequires: automake ++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:37.862834430 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:37.870834759 +0200 @@ -4,11 +4,11 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) -Index: Python-3.15.0a5/Lib/test/test_pyexpat.py +Index: Python-3.15.0a8/Lib/test/test_pyexpat.py =================================================================== ---- Python-3.15.0a5.orig/Lib/test/test_pyexpat.py 2026-02-08 14:31:48.498838928 +0100 -+++ Python-3.15.0a5/Lib/test/test_pyexpat.py 2026-02-08 14:31:58.465492442 +0100 -@@ -860,6 +860,10 @@ +--- Python-3.15.0a8.orig/Lib/test/test_pyexpat.py 2026-04-08 13:45:33.923094710 +0200 ++++ Python-3.15.0a8/Lib/test/test_pyexpat.py 2026-04-08 13:45:52.854328088 +0200 +@@ -918,6 +918,10 @@ self.assertEqual(started, ['doc']) def test_reparse_deferral_disabled(self): @@ -19,10 +19,10 @@ started = [] def start_element(name, _): -Index: Python-3.15.0a5/Lib/test/test_sax.py +Index: Python-3.15.0a8/Lib/test/test_sax.py =================================================================== ---- Python-3.15.0a5.orig/Lib/test/test_sax.py 2026-02-08 14:31:48.575186151 +0100 -+++ Python-3.15.0a5/Lib/test/test_sax.py 2026-02-08 14:31:58.465928363 +0100 +--- Python-3.15.0a8.orig/Lib/test/test_sax.py 2026-04-08 13:45:33.923094710 +0200 ++++ Python-3.15.0a8/Lib/test/test_sax.py 2026-04-08 13:45:52.854835623 +0200 @@ -1241,6 +1241,9 @@ self.assertEqual(result.getvalue(), start + b"<doc></doc>") @@ -33,10 +33,10 @@ def test_flush_reparse_deferral_disabled(self): result = BytesIO() xmlgen = XMLGenerator(result) -Index: Python-3.15.0a5/Lib/test/test_xml_etree.py +Index: Python-3.15.0a8/Lib/test/test_xml_etree.py =================================================================== ---- Python-3.15.0a5.orig/Lib/test/test_xml_etree.py 2026-02-08 14:31:49.084155592 +0100 -+++ Python-3.15.0a5/Lib/test/test_xml_etree.py 2026-02-08 14:31:58.466519056 +0100 +--- Python-3.15.0a8.orig/Lib/test/test_xml_etree.py 2026-04-08 13:45:33.923094710 +0200 ++++ Python-3.15.0a8/Lib/test/test_xml_etree.py 2026-04-08 13:45:52.855476530 +0200 @@ -138,6 +138,11 @@ return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) @@ -49,7 +49,7 @@ def checkwarnings(*filters, quiet=False): def decorator(test): def newtest(*args, **kwargs): -@@ -1619,9 +1624,11 @@ +@@ -1654,9 +1659,11 @@ self.assert_event_tags(parser, [('end', 'root')]) self.assertIsNone(parser.close()) @@ -61,7 +61,7 @@ def test_simple_xml_chunk_5(self): self.test_simple_xml(chunk_size=5, flush=True) -@@ -1848,6 +1855,9 @@ +@@ -1883,6 +1890,9 @@ self.assert_event_tags(parser, [('end', 'doc')]) ++++++ F00251-change-user-install-location.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:37.894835744 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:37.898835908 +0200 @@ -28,10 +28,10 @@ Lib/test/test_sysconfig.py | 17 +++++++++++++-- 2 files changed, 65 insertions(+), 3 deletions(-) -Index: Python-3.15.0a1/Lib/sysconfig/__init__.py +Index: Python-3.15.0a8/Lib/sysconfig/__init__.py =================================================================== ---- Python-3.15.0a1.orig/Lib/sysconfig/__init__.py 2025-10-24 23:53:22.709921139 +0200 -+++ Python-3.15.0a1/Lib/sysconfig/__init__.py 2025-10-24 23:53:34.981019958 +0200 +--- Python-3.15.0a8.orig/Lib/sysconfig/__init__.py 2026-04-08 13:45:34.229096811 +0200 ++++ Python-3.15.0a8/Lib/sysconfig/__init__.py 2026-04-08 13:45:36.940641269 +0200 @@ -106,6 +106,11 @@ else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -115,11 +115,11 @@ if os.name == 'nt': # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it -Index: Python-3.15.0a1/Lib/test/test_sysconfig.py +Index: Python-3.15.0a8/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.15.0a1/Lib/test/test_sysconfig.py 2025-10-24 23:53:34.981457517 +0200 -@@ -131,8 +131,19 @@ +--- Python-3.15.0a8.orig/Lib/test/test_sysconfig.py 2026-04-08 13:45:34.229096811 +0200 ++++ Python-3.15.0a8/Lib/test/test_sysconfig.py 2026-04-08 13:45:36.941205552 +0200 +@@ -132,8 +132,19 @@ for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars) @@ -140,7 +140,7 @@ os.path.normpath(expected), ) -@@ -394,7 +405,7 @@ +@@ -393,7 +404,7 @@ self.assertTrue(os.path.isfile(config_h), config_h) def test_get_scheme_names(self): @@ -149,7 +149,7 @@ if HAS_USER_BASE: wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) -@@ -406,6 +417,8 @@ +@@ -405,6 +416,8 @@ cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) ++++++ Python-3.15.0a7.tar.xz -> Python-3.15.0a8.tar.xz ++++++ /work/SRC/openSUSE:Factory/python315/Python-3.15.0a7.tar.xz /work/SRC/openSUSE:Factory/.python315.new.21863/Python-3.15.0a8.tar.xz differ: char 25, line 1 ++++++ Python-3.15.0a7.tar.xz.sigstore -> Python-3.15.0a8.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python315/Python-3.15.0a7.tar.xz.sigstore 2026-03-16 14:19:56.371787315 +0100 +++ /work/SRC/openSUSE:Factory/.python315.new.21863/Python-3.15.0a8.tar.xz.sigstore 2026-04-09 16:21:36.662785190 +0200 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlOgAwIBAgIUQCZFNes864rkYbM9NBz8OwDv9pQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwMzEwMTQ1ODEyWhcNMjYwMzEwMTUwODEyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh5/+e07IE5gUVYUjQUMQkdy8NV7T7dBBCkxozkwKFc+yIOUpQVisNcYeq/TCjDOlAm0+iTUPY9vsn24aUeF4BKOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU6zNDX+aZ1xGvyRr1jRGqini+qvcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnNhBbQ0AAAQDAEYwRAIgGrs+7t9NoN9lvjNM0DDXlkRD1b8Eg62uV9DfuQDm/CgCIHRHbu1mLM4sAi4WCZBQtVa9PjsQ2rUeFVLJW6Xh1jXAMAoGCCqGSM49BAMDA2gAMGUCMCHy1qAEyFvtUdTvKYvRdvAK5ZCp1DMubOsilMkioaArtwib4m0C JhvNGiJSviC+zQIxANlwE9fAPPhReIpRAdcOf3F2JkiHePNNsHNXWZFV33ZHIDEHi/Z68d5NzPic7S8qXA=="}, "tlogEntries": [{"logIndex": "1075912528", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1773154692", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQD42RMmUhsa7IBS0XjRCLV57MBOUrrdIuL9sN4GGyP8NQIgBYTz8p4lqY6/jYKnj0g9gmy+krHJCYNk4K0g0ASLNXo="}, "inclusionProof": {"logIndex": "954008266", "rootHash": "54UgPm7teHz/hbrEfZ2FL5lvQUl9ers0x++YVvXj9yk=", "treeSize": "954008272", "hashes": ["sg4M8SNINOlWlLyPZkCEbnlG9bPHZnyvggG+kxf9h4k=", "nL220iemcefeFxrr+wESPUEiePeLRdLQl4oaiswL308=", "3dyHvYKU5K2LoeJi7RzFRFCr6iZcUIh7OfkkTZpi3Vk=", "6ykjElNqdL5OxTRuzrF0igQr5ktyON3GvYE/6U7CsUE=", "QFtROGTbs6hnbqrhVzviz2Ip9TP8MI0WcSsFW1HrKrQ=", "3XUycL7YKpJlmrmCR8fG5rr6QpJ6mPlTT+fuFPflAZ4=", "S4JBeU7NYErZ27PHxLZQ88r904KImEXScxOmLFgcQHA=", "Umdyn/GrCi9GlujFSR8NGgOatDps+IEUnEhY74KkAKg=", "i6gdL+8LJXAQhGgtuzaDlKcEe696yTy9TU n9m+FquKA=", "8JR4pkSgDSLjVN1kMGkmaw/YH9wJ+wq1yLJ4IjS40fs=", "j0adZ1oa5riJVt3rCiB/z4Dn8ys8YtW90w669vyBjGs=", "iGPJqoaMERVmVoJI6Wf+JMw+K4vN4KjhYjD6t0ZGL44=", "7dklf5Lm6jfXBWXMt6kEv3EXBajmauMii6AHUtJf6+k=", "eRlAy3G7QgM2MWo2Jrz6/6oltT7/FwGiHfkpiaoARlI=", "fLAvE46NqCVV86EpB2pKkwJlFjjFk7ntX3lC+PiZuIo=", "T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n954008272\n54UgPm7teHz/hbrEfZ2FL5lvQUl9ers0x++YVvXj9yk=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEA9ory9YYyrWo49FT1GEuV3aV6L8PxEx2sN7OvJfR6akYCIHDv6yHU9PjOuLVsN7JDCl7Atv9AvxfsfYARFveK3TKG\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4ZjU5MGM0MjhiN2YwZDQwNmRmOTI4Yjg1NzM3ZTdhM2FmYTI4ZWRkZDRkMTQxOTQxMGVhODA5Njg3ZWQxZWE3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJREN3V2o1a3kva3d2SWpXcnF5WVpYemhjcGt3YjJXK3ZDQkpFU0ZldlRzcUFpQjRUYkNMVXdHOUNFQUk4dkF3Yzl6dlNyaHdwZk10TXB nL2JkTnhMa3NxWEE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVlVVTmFSazVsY3pnMk5ISnJXV0pOT1U1Q2VqaFBkMFIyT1hCUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDE2UlhkTlZGRXhUMFJGZVZkb1kwNU5hbGwzVFhwRmQwMVVWWGRQUkVWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZvTlM4clpUQTNTVVUxWjFWV1dWVnFVVlZOVVd0a2VUaE9WamRVTjJSQ1FrTnJlRzhLZW10M1MwWmpLM2xKVDFWd1VWWnBjMDVqV1dWeEwxUkRha1JQYkVGdE1DdHBWRlZRV1RsMmMyNHlOR0ZWWlVZMFFrdFBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUyZWs1RUNsZ3JZVm94ZUVkMmVWSnlNV3BTUjNGcGJta3JjWFpqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RI UTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVUbWhDWWxFd1FRcEJRVkZFUVVWWmQxSkJTV2RIY25Nck4zUTVUbTlPT1d4MmFrNU5NRVJFV0d4clVrUXhZamhGWnpZeWRWWTVSR1oxVVVSdEwwTm5RMGxJVWtoaWRURnRDa3hOTkhOQmFUUlhRMXBDVVhSV1lUbFFhbk5STW5KVlpVWldURXBYTmxob01XcFlRVTFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMURTSGtLTVhGQlJYbEdkblJWWkZSMlMxbDJVbVIyUVVzMVdrTndNVVJOZFdKUGMybHNUV3RwYjJGQmNuUjNhV0kwYlRCRFNtaDJUa2RwU2xOMmFVTXJlbEZKZUFwQlRteDNSVGxtUVZCUWFGSmxTWEJTUVdSalQyWXpSakpLYTJsSVpWQk9Ubk5JVGxoWFdrWldNek5hU0VsRVJVaHBMMW8yT0dRMVRucFFhV00zVXpoeENsaEJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "S HA2_256", "digest": "j1kMQot/DUBt+Si4Vzfno6+ijt3U0UGUEOqAloftHqc="}, "signature": "MEQCIDCwWj5ky/kwvIjWrqyYZXzhcpkwb2W+vCBJESFevTsqAiB4TbCLUwG9CEAI8vAwc9zvSrhwpfMtMpg/bdNxLksqXA=="}} +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlOgAwIBAgIUQ3Zn4OX5Xx29MMIDa/IMy3EfNp8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNDA3MTc0ODI2WhcNMjYwNDA3MTc1ODI2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEa+ZXBvuHmRlf2G5qgBw6oQFegQdy4t/jDFT/qutVSy9O9nrTwgqaPlY2LCBayMSpAXka3hr3lDRS7zuMI+FK+qOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUzH8ql0Wne5bIQ3dvt+ZEzbY5dPMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnWkPWREAAAQDAEYwRAIgajR418xiNzSkSPYLKJwpeEvIEV8Pqx9kaz6B0CAg7GMCIBsNxxAZaYoGiBTMVUcCsvK/MSv3GNVMDrGeBVPGnMHEMAoGCCqGSM49BAMDA2gAMGUCMBV5leWJHLIUlecm9B+31UyagwRjwvHQ4sinKMvKtm+7qNrFzUUh T/DB1t1GtvGyGAIxAO/3x/w1xp9Aa9Nfbgc8OP5kzNPPzdwHZaCHWyF/bb0hC9A7rDlb0tkNn9Ry7at/GA=="}, "tlogEntries": [{"logIndex": "1247676088", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1775584107", "inclusionPromise": {"signedEntryTimestamp": "MEUCIDVQlHjrhmCeQq+bmk8/4qneFkgdeWrl6looAafMQxGzAiEAuige9lajXobChk/+/HUs/tKSpCLvNbMx0k2Z+Svl0Hw="}, "inclusionProof": {"logIndex": "1125771826", "rootHash": "sMn5V/RbIwXlvlJKnuqHearuj7sJaqFc5bht2L8babs=", "treeSize": "1125771828", "hashes": ["5idJyYmDmjvfxtziiw2AUm9X0Y0CybhM2KLujQWsi7M=", "AmujGe2ti7MM5eLAgK4t/FjgJfo6a2myUvg8HyKe1n4=", "IfRWcPrix0hDOpyycaEQVejN9YyiPN67yhz1YR4NIDY=", "yTa95BXAWI9bH35Oy1diIUgjjJKAec3GLyLfaRrI0Tg=", "dJtu8pJ3yhn0rC0EFdgoebJF3MldcpHMX00y2eHPYDY=", "81dr9W/Ax/UfYIsxNTxjBYK7sYU/az3TPo6rdJosDO0=", "4rt9/yEt1Zy95yQxSCxpoOu6E3CWDDxpGd37aEEFadg=", "+wrWv/cO9uKKpjC+BMIC/Fv2Ipe50C7wL0wd+YlH5Kw=", "ZxCK8NmXD/qxQEyqBRFYo8WOz/kUHRHA +BXOPC6789o=", "civ0dM20+gns15I1mfWo9Jt0YBzbex5QVYwaGjqgcs4=", "2v7+H4Fejl7qkIhG2G79UQH+wJ0QpPreOZwulFGWzLI=", "vXMaHYsu3vXUFKr78h1vCtaZWhgh1OwZh5O05RGwxkw=", "WbswTMpSfvjDqroD6lDGb2VDeljBPlMsAchJ+0L+3U4=", "psQ1PrYXqFtm6T3uF1q91rl1dhNiykO58GpOdq1ZaKI=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n1125771828\nsMn5V/RbIwXlvlJKnuqHearuj7sJaqFc5bht2L8babs=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAuhq3/d1BI5QULMFsIGjggb3cpTMWUJBqZ7iXI3DwYDgCIQC/kEcONRvSdmvggkNPuwpS6AOYHwTpbZ5HzKnD4ugASQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyOGYxYjYzNTg2MDkwNDJlYmNjODE0ODhlYzI0NTY5NTE5ZjUwODA0YmIwN2RjMjNjYzcwN2IyODFiMDMxYzY5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRW5XWGZwR2tZUTF1S0lhSEtwZW80b1NjazR2MGYvMW9DNGxsZmlrY0pyckFpRUFocmZhK2htRCtKaWRoWGRMNnUvSXRndTl3dHJ0SDdDVUpXWm9zMWsyNTFrPSIsInB1YmxpY0tleSI6eyJj b250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVlVUTmFialJQV0RWWWVESTVUVTFKUkdFdlNVMTVNMFZtVG5BNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVFUVROTlZHTXdUMFJKTWxkb1kwNU5hbGwzVGtSQk0wMVVZekZQUkVreVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZoSzFwWVFuWjFTRzFTYkdZeVJ6VnhaMEozTm05UlJtVm5VV1I1TkhRdmFrUkdWQzhLY1hWMFZsTjVPVTg1Ym5KVWQyZHhZVkJzV1RKTVEwSmhlVTFUY0VGWWEyRXphSEl6YkVSU1V6ZDZkVTFKSzBaTEszRlBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlY2U0RoeENtd3dWMjVsTldKSlVUTmtkblFyV2tWNllsazFaRkJOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFa ENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVWMnRRVjFKRlFRcEJRVkZFUVVWWmQxSkJTV2RoYWxJME1UaDRhVTU2VTJ0VFVGbE1TMHAzY0dWRmRrbEZWamhRY1hnNWEyRjZOa0l3UTBGbk4wZE5RMGxDYzA1NGVFRmFDbUZaYjBkcFFsUk5WbFZqUTNOMlN5OU5VM1l6UjA1V1RVUnlSMlZDVmxCSGJrMUlSVTFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMUNWalVLYkdWWFNraE1TVlZzWldOdE9VSXJNekZWZVdGbmQxSnFkM1pJVVRSemFXNUxUWFpMZEcwck4zRk9ja1o2VlZWb1ZDOUVRakYwTVVkMGRrZDVSMEZKZUFwQlR5OHplQzkzTVhod09VRmhPVTVtWW1kak9FOVFOV3Q2VGxCUWVtUjNTRnBoUTBoWGVVWXZZbUl3YUVNNVFUZHlSR3hpTUhSclRtNDVVbmszWVhRdkNrZEJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "KPG2NYYJBC68yBSI7CRW lRn1CAS7B9wjzHB7KBsDHGk="}, "signature": "MEUCIEnWXfpGkYQ1uKIaHKpeo4oSck4v0f/1oC4llfikcJrrAiEAhrfa+hmD+JidhXdL6u/Itgu9wtrtH7CUJWZos1k251k="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.034841489 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.038841653 +0200 @@ -1,6 +1,6 @@ -mtime: 1774634044 -commit: 72260269b18eb1203403d94df928332b7b058bbc8e0a73bd1238cd0c5b5eef3e +mtime: 1775649775 +commit: d69fcb54a7f08cdcfbae03dc041ba05d9fcfffce49d77b49c8d8b0ba141e9850 url: https://src.opensuse.org/python-interpreters/python315.git -revision: 72260269b18eb1203403d94df928332b7b058bbc8e0a73bd1238cd0c5b5eef3e +revision: d69fcb54a7f08cdcfbae03dc041ba05d9fcfffce49d77b49c8d8b0ba141e9850 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.070842966 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.074843130 +0200 @@ -13,10 +13,10 @@ 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 -Index: Python-3.15.0a7/Doc/library/ensurepip.rst +Index: Python-3.15.0a8/Doc/library/ensurepip.rst =================================================================== ---- Python-3.15.0a7.orig/Doc/library/ensurepip.rst 2026-03-10 13:31:15.000000000 +0100 -+++ Python-3.15.0a7/Doc/library/ensurepip.rst 2026-03-10 21:56:04.065215023 +0100 +--- Python-3.15.0a8.orig/Doc/library/ensurepip.rst 2026-04-08 13:45:34.016095348 +0200 ++++ Python-3.15.0a8/Doc/library/ensurepip.rst 2026-04-08 13:45:43.944138830 +0200 @@ -65,7 +65,11 @@ By default, ``pip`` is installed into the current virtual environment (if one is active) or into the system site packages (if there is no @@ -57,11 +57,11 @@ .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: -Index: Python-3.15.0a7/Lib/ensurepip/__init__.py +Index: Python-3.15.0a8/Lib/ensurepip/__init__.py =================================================================== ---- Python-3.15.0a7.orig/Lib/ensurepip/__init__.py 2026-03-10 21:55:34.138824888 +0100 -+++ Python-3.15.0a7/Lib/ensurepip/__init__.py 2026-03-10 21:56:04.065631508 +0100 -@@ -106,27 +106,27 @@ +--- Python-3.15.0a8.orig/Lib/ensurepip/__init__.py 2026-04-08 13:45:34.016095348 +0200 ++++ Python-3.15.0a8/Lib/ensurepip/__init__.py 2026-04-08 13:45:43.944472088 +0200 +@@ -107,27 +107,27 @@ os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -94,7 +94,7 @@ Note that calling this function will alter both sys.path and os.environ. """ -@@ -171,6 +171,8 @@ +@@ -172,6 +172,8 @@ args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir] if root: args += ["--root", root] @@ -103,7 +103,7 @@ if upgrade: args += ["--upgrade"] if user: -@@ -249,6 +251,11 @@ +@@ -250,6 +252,11 @@ help="Install everything relative to this alternate root directory.", ) parser.add_argument( @@ -115,7 +115,7 @@ "--altinstall", action="store_true", default=False, -@@ -267,6 +274,7 @@ +@@ -268,6 +275,7 @@ return _bootstrap( root=args.root, @@ -123,11 +123,11 @@ upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, -Index: Python-3.15.0a7/Lib/test/test_ensurepip.py +Index: Python-3.15.0a8/Lib/test/test_ensurepip.py =================================================================== ---- Python-3.15.0a7.orig/Lib/test/test_ensurepip.py 2026-03-10 21:55:35.709593640 +0100 -+++ Python-3.15.0a7/Lib/test/test_ensurepip.py 2026-03-10 21:56:04.065975767 +0100 -@@ -111,6 +111,17 @@ +--- Python-3.15.0a8.orig/Lib/test/test_ensurepip.py 2026-04-08 13:45:34.016095348 +0200 ++++ Python-3.15.0a8/Lib/test/test_ensurepip.py 2026-04-08 13:45:43.944750522 +0200 +@@ -121,6 +121,17 @@ unittest.mock.ANY, ) @@ -145,10 +145,10 @@ def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.15.0a7/Makefile.pre.in +Index: Python-3.15.0a8/Makefile.pre.in =================================================================== ---- Python-3.15.0a7.orig/Makefile.pre.in 2026-03-10 21:55:56.002096854 +0100 -+++ Python-3.15.0a7/Makefile.pre.in 2026-03-10 21:56:04.066350363 +0100 +--- Python-3.15.0a8.orig/Makefile.pre.in 2026-04-08 13:45:42.151151268 +0200 ++++ Python-3.15.0a8/Makefile.pre.in 2026-04-08 13:45:43.945249382 +0200 @@ -2418,7 +2418,7 @@ install|*) ensurepip="" ;; \ esac; \ @@ -167,10 +167,10 @@ fi .PHONY: commoninstall -Index: Python-3.15.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.15.0a8/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 -+++ Python-3.15.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-03-10 21:56:04.067139341 +0100 ++++ Python-3.15.0a8/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-04-08 13:45:43.945767177 +0200 @@ -0,0 +1 @@ +A directory prefix can now be specified when using :mod:`ensurepip`. ++++++ bsc1243155-sphinx-non-determinism.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.090843786 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.094843950 +0200 @@ -14,10 +14,10 @@ Doc/tools/extensions/audit_events.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) -Index: Python-3.14.0b3/Doc/tools/extensions/audit_events.py +Index: Python-3.15.0a8/Doc/tools/extensions/audit_events.py =================================================================== ---- Python-3.14.0b3.orig/Doc/tools/extensions/audit_events.py 2025-06-17 17:40:54.000000000 +0200 -+++ Python-3.14.0b3/Doc/tools/extensions/audit_events.py 2025-07-02 15:06:57.802539821 +0200 +--- Python-3.15.0a8.orig/Doc/tools/extensions/audit_events.py 2026-04-08 13:45:33.832094085 +0200 ++++ Python-3.15.0a8/Doc/tools/extensions/audit_events.py 2026-04-08 13:45:59.479006144 +0200 @@ -68,8 +68,13 @@ logger.warning(msg) return ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-04-08 14:03:21.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +.pbuild +python315-*-build/ ++++++ fix-test-recursion-limit-15.6.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.326853470 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.330853635 +0200 @@ -2,10 +2,10 @@ Lib/test/test_compile.py | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.15.0a1/Lib/test/test_compile.py +Index: Python-3.15.0a8/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.15.0a1/Lib/test/test_compile.py 2025-10-24 23:53:52.578315707 +0200 +--- Python-3.15.0a8.orig/Lib/test/test_compile.py 2026-04-08 13:45:33.877094394 +0200 ++++ Python-3.15.0a8/Lib/test/test_compile.py 2026-04-08 13:45:56.084237567 +0200 @@ -24,6 +24,9 @@ from test.support.bytecode_helper import instructions_with_positions from test.support.os_helper import FakePath ++++++ gh139257-Support-docutils-0.22.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.350854455 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.366855112 +0200 @@ -7,10 +7,10 @@ Doc/tools/extensions/pyspecific.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -Index: Python-3.15.0a3/Doc/tools/extensions/pyspecific.py +Index: Python-3.15.0a8/Doc/tools/extensions/pyspecific.py =================================================================== ---- Python-3.15.0a3.orig/Doc/tools/extensions/pyspecific.py 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Doc/tools/extensions/pyspecific.py 2025-12-19 02:27:34.493094269 +0100 +--- Python-3.15.0a8.orig/Doc/tools/extensions/pyspecific.py 2026-04-08 13:45:33.788093782 +0200 ++++ Python-3.15.0a8/Doc/tools/extensions/pyspecific.py 2026-04-08 13:46:02.807521346 +0200 @@ -24,6 +24,24 @@ # Used in conf.py and updated here by python/release-tools/run_release.py SOURCE_URI = 'https://github.com/python/cpython/tree/main/%s' ++++++ skip-test_array_alignment.patch ++++++ --- /var/tmp/diff_new_pack.sPLYtw/_old 2026-04-09 16:21:38.482859872 +0200 +++ /var/tmp/diff_new_pack.sPLYtw/_new 2026-04-09 16:21:38.486860036 +0200 @@ -2,11 +2,11 @@ Lib/test/test_buffer.py | 1 + 1 file changed, 1 insertion(+) -Index: Python-3.15.0a6/Lib/test/test_buffer.py +Index: Python-3.15.0a8/Lib/test/test_buffer.py =================================================================== ---- Python-3.15.0a6.orig/Lib/test/test_buffer.py 2026-02-12 00:38:25.599265172 +0100 -+++ Python-3.15.0a6/Lib/test/test_buffer.py 2026-02-12 00:46:24.303091378 +0100 -@@ -4463,6 +4463,7 @@ +--- Python-3.15.0a8.orig/Lib/test/test_buffer.py 2026-04-08 13:45:33.744093480 +0200 ++++ Python-3.15.0a8/Lib/test/test_buffer.py 2026-04-08 13:46:05.816521482 +0200 +@@ -4475,6 +4475,7 @@ self.assertEqual([ptr % align for ptr in ptrs], [0]*len(ptrs)) @support.cpython_only
