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-03-16 14:16:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python315 (Old) and /work/SRC/openSUSE:Factory/.python315.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python315" Mon Mar 16 14:16:48 2026 rev:7 rq:1339137 version:3.15.0~a7 Changes: -------- --- /work/SRC/openSUSE:Factory/python315/python315.changes 2026-02-05 18:06:55.012010080 +0100 +++ /work/SRC/openSUSE:Factory/.python315.new.8177/python315.changes 2026-03-16 14:19:56.435789972 +0100 @@ -1,0 +2,1049 @@ +Wed Mar 11 13:41:39 UTC 2026 - Matej Cepl <[email protected]> + +- Add gh-145802-atomic-profile-update-for-PGO.patch + (gh#python/cpython#145803) to use gcc -fprofile-update=atomic + for PGO builds. + +------------------------------------------------------------------- +Tue Mar 10 20:38:32 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.15.0a7: + - Tests + - gh-144741: Fix test_frame_pointer_unwind when Python is + built with --enable-shared. Classify also libpython frames + as "python". Patch by Victor Stinner. + - gh-144739: When Python was compiled with system expat older + then 2.7.2 but tests run with newer expat, still skip + test.test_pyexpat.MemoryProtectionTest. + - Security + - gh-145506: Fixes CVE 2026-2297 by ensuring that + SourcelessFileLoader uses io.open_code() when opening .pyc + files. + - gh-144370: Disallow usage of control characters in status + in wsgiref.handlers to prevent HTTP header injections. + Patch by Benedikt Johannes. + - Library + - gh-145623: Fix crash in struct when calling repr() or + __sizeof__() on an uninitialized struct.Struct object + created via Struct.__new__() without calling __init__(). + - gh-145551: Fix InvalidStateError when cancelling process + created by asyncio.create_subprocess_exec() or + asyncio.create_subprocess_shell(). Patch by Daan De Meyer. + - gh-141510: marshal now supports frozendict objects. The + marshal format version was increased to 6. Patch by Victor + Stinner. + - gh-145417: venv: Prevent incorrect preservation of SELinux + context when copying the Activate.ps1 script. The script + inherited the SELinux security context of the system + template directory, rather than the destination project + directory. + - gh-145335: os.listdir(-1) and os.scandir(-1) now fail with + OSError(errno.EBADF) rather than listing the current + directory. os.listxattr(-1) now fails with + OSError(errno.EBADF) rather than listing extended + attributes of the current directory. Patch by Victor + Stinner. + - gh-145376: Fix double free and null pointer dereference in + unusual error scenarios in hashlib and hmac modules. + - gh-145301: hmac: fix a crash when the initialization of the + underlying C extension module fails. + - gh-145301: hashlib: fix a crash when the initialization of + the underlying C extension module fails. + - gh-76007: The version attribute of the tarfile module is + deprecated and slated for removal in Python 3.20. + - gh-145158: Avoid undefined behaviour from signed integer + overflow when parsing format strings in the struct module. + - gh-123853: Removed Windows 95 compatibility for + locale.getdefaultlocale(). + - gh-66802: Add unicodedata.block() function to return the + Unicode block of a character. + - gh-145033: Add typing.TypeForm, implementing PEP 747. Patch + by Jelle Zijlstra. + - gh-141510: dataclasses.field(): if metadata is None, use an + empty frozendict, instead of a MappingProxyType() of an + empty dict. Patch by Victor Stinner. + - gh-145006: Add ModuleNotFoundError hints when a module for + a different ABI exists. + - gh-141510: ParameterizedMIMEHeader.params of + email.headerregistry is now a frozendict instead of + a types.MappingProxyType. Patch by Victor Stinner. + - gh-134872: Add valid import name suggestions on + ModuleNotFoundError. + - gh-88091: Fix unicodedata.decomposition() for Hangul + characters. + - gh-144986: Fix a memory leak in atexit.register(). Patch by + Shamil Abdulaev. + - gh-144777: Fix data races in io.IncrementalNewlineDecoder + in the free-threaded build. + - gh-144809: Make collections.deque copy atomic in the + free-threaded build. + - gh-141510: The copy module now supports the frozendict + type. Patch by Pieter Eendebak based on work by Victor + Stinner. + - gh-141510: The json module now supports the frozendict + type. Patch by Victor Stinner. + - gh-144835: Added missing explanations for some parameters + in glob.glob() and glob.iglob(). + - gh-144833: Fixed a use-after-free in ssl when SSL_new() + returns NULL in newPySSLSocket(). The error was reported + via a dangling pointer after the object had already been + freed. + - gh-140715: Add '%D' support to strptime(). + - gh-144782: Fix argparse.ArgumentParser to be pickleable. + - gh-144763: Fix a race condition in tracemalloc: it no + longer detaches the attached thread state to acquire its + internal lock. Patch by Victor Stinner. + - gh-142224: unicodedata.bidirectional() now return the + correct default bidi class for unassigned code points. + - gh-117865: Reduce the import time of inspect module by + ~20%. + - gh-144156: Fix the folding of headers by the email library + when RFC 2047 encoded words are used. Now whitespace is + correctly preserved and also correctly added between + adjacent encoded words. The latter property was broken by + the fix for gh-92081, which mostly fixed previous failures + to preserve whitespace. + - gh-66305: Fixed a hang on Windows in the tempfile module + when trying to create a temporary file or subdirectory in + a non-writable directory. + - gh-144615: Methods directly decorated with + @functools.singledispatchmethod now dispatch on the second + argument when called after being accessed as class + attributes. Patch by Bartosz Sławecki. + - gh-144321: The functional syntax for creating + typing.NamedTuple classes now supports passing any iterable + of fields and types. Previously, only sequences were + supported. + - gh-144475: Calling repr() on functools.partial() is now + safer when the partial object’s internal attributes are + replaced while the string representation is being + generated. + - gh-144285: Attribute suggestions in AttributeError + tracebacks are now formatted differently to make them + easier to understand, for example: Did you mean + '.datetime.now' instead of '.now'. Contributed by Bartosz + Sławecki. + - gh-144316: Fix crash in _remote_debugging that caused + test_external_inspection to intermittently fail. Patch by + Taegyun Kim. + - gh-143637: Fixed a crash in socket.sendmsg() that could + occur if ancillary data is mutated re-entrantly during + argument parsing. + - gh-140652: Fix a crash in _interpchannels.list_all() after + closing a channel. + - gh-143698: Allow scheduler and setpgroup arguments to be + explicitly None when calling os.posix_spawn() or + os.posix_spawnp(). Patch by Bénédikt Tran. + - gh-143698: Raise TypeError instead of SystemError when the + scheduler in os.posix_spawn() or os.posix_spawnp() is not + a tuple. Patch by Bénédikt Tran. + - gh-142516: ssl: fix reference leaks in ssl.SSLContext + objects. Patch by Bénédikt Tran. + - gh-85809: Added path-like object support for + shutil.make_archive(). + - gh-143304: Fix ctypes.CDLL to honor the handle parameter on + POSIX systems. + - gh-142781: zoneinfo: fix a crash when instantiating + ZoneInfo objects for which the internal class-level cache + is inconsistent. + - gh-142787: Fix assertion failure in sqlite3 blob subscript + when slicing with indices that result in an empty slice. + - gh-142352: Fix asyncio.StreamWriter.start_tls() to transfer + buffered data from StreamReader to the SSL layer, + preventing data loss when upgrading a connection to TLS + mid-stream (e.g., when implementing PROXY protocol + support). + - gh-139899: Introduced + importlib.abc.MetaPathFinder.discover() and + importlib.abc.PathEntryFinder.discover() to allow module + and submodule name discovery without assuming the use of + traditional filesystem based imports. + - gh-137335: Get rid of any possibility of a name conflict + for named pipes in multiprocessing and asyncio on Windows, + no matter how small. + - gh-135883: Fix sqlite3’s interactive shell keeping part of + previous commands when scrolling history. + - gh-124748: Improve TypeError error message when + weakref.WeakKeyDictionary.update() is used with + keyword-only parameters. + - gh-80667: Add support for Tangut Ideographs names in + unicodedata. + - bpo-42353: The re module gains a new re.prefixmatch() + function as an explicit spelling of what has to date always + been known as re.match(). re.Pattern similary gains + a re.Pattern.prefixmatch() method. + - Why? Explicit is better than implicit. Other widely used + languages all use the term “match” to mean what Python uses + the term “search” for. The unadorened “match” name in + Python has been a frequent case of confusion and coding + bugs due to the inconsistency with the rest if the software + industry. + - We do not plan to deprecate and remove the older match + name. + - bpo-40243: Fix unicodedata.ucd_3_2_0.numeric() for + non-decimal values. + - bpo-40212: Re-enable os.posix_fallocate() and + os.posix_fadvise() on AIX. + - bpo-3405: Add support for user data of Tk virtual events + and detail for Enter, Leave, FocusIn, FocusOut, and + ConfigureRequest events to tkinter. + - bpo-32234: mailbox.Mailbox instances can now be used as + a context manager. The Mailbox is locked on context entry + and unlocked and closed at context exit. + - Documentation + - gh-145450: Document missing public wave.Wave_write getter + methods. + - gh-110937: Document rest of full public + importlib.metadata.Distribution API. Also add the (already + documented) PackagePath to __all__. + - gh-136246: A new “Improve this page” link is available in + the left-hand sidebar of the docs, offering links to create + GitHub issues, discussion forum posts, or pull requests. + - Core and Builtins + - gh-145701: Fix SystemError when __classdict__ or + __conditional_annotations__ is in a class-scope inlined + comprehension. Found by OSS Fuzz in #491105000. + - gh-145615: Fixed a memory leak in the free-threaded build + where mimalloc pages could become permanently unreclaimable + until the owning thread exited. + - gh-116738: Make mmap.mmap.set_name() thread-safe on the + free threaded build. + - gh-145566: In the free threading build, skip the + stop-the-world pause when reassigning __class__ on a newly + created object. + - gh-143055: Fix crash in AST unparser when unparsing dict + comprehension unpacking. Found by OSS Fuzz in #489790200. + - gh-145335: Fix a crash in os.pathconf() when called with -1 + as the path argument. + - gh-145376: Fix reference leaks in various unusual error + scenarios. + - gh-145234: Fixed a SystemError in the parser when an + encoding cookie (for example, UTF-7) decodes to carriage + returns (\r). Newlines are now normalized after decoding in + the string tokenizer. + - Patch by Pablo Galindo. + - gh-145275: Added the -X pathconfig_warnings and + PYTHON_PATHCONFIG_WARNINGS options, allowing to disable + warnings from The initialization of the sys.path module + search path. + - gh-145273: A warning is now shown during The initialization + of the sys.path module search path if it can’t find a valid + standard library. + - gh-145241: Specialized the parser error for when with items + are followed by a trailing comma (for example, with + item,:), raising a clearer SyntaxError message. Patch by + Pablo Galindo and Bartosz Sławecki. + - gh-130555: Fix use-after-free in dict.clear() when the + dictionary values are embedded in an object and + a destructor causes re-entrant mutation of the dictionary. + - gh-145197: Fix JIT trace crash when recording function from + cleared generator frame. + - gh-145187: Fix compiler assertion fail when a type + parameter bound contains an invalid expression in + a conditional block. + - gh-145142: Fix a crash in the free-threaded build when the + dictionary argument to str.maketrans() is concurrently + modified. + - gh-145118: str.maketrans() now accepts frozendict. + - gh-144015: Speed up bytes.hex(), bytearray.hex(), + binascii.hexlify(), and hashlib .hexdigest() operations + with SIMD on x86-64, ARM64, and ARM32 with NEON when built + with gcc (version 12 or higher) or clang (version 3 or + higher) compilers. Around 1.1-3x faster for common 16-64 + byte inputs such as hashlib hex digests, and up to 8x + faster for larger data. + - gh-145118: type() now accepts frozendict as an argument. + - gh-145064: Fix JIT optimizer assertion failure during + CALL_ALLOC_AND_ENTER_INIT side exit. + - gh-145055: exec() and eval() now accept frozendict for + globals. Patch by Victor Stinner. + - gh-145058: Fix a crash when __lazy_import__() is passed + a non-string argument, by raising an TypeError instead. + - gh-144995: Optimize memoryview comparison: a memoryview is + equal to itself, there is no need to compare values. Patch + by Victor Stinner. + - gh-141510: Update specializer to support frozendict. Patch + by Donghee Na. + - gh-141510: Optimize frozendict.fromkeys() to avoid + unnecessary thread-safety operations in frozendict cases. + Patch by Donghee Na. + - gh-100239: Speedup BINARY_OP_EXTEND for exact floats and + medium-size integers by up to 15%. Patch by Chris Eibl. + - gh-144914: Use mimalloc for raw memory allocations such as + via PyMem_RawMalloc() for better performance on + free-threaded builds. Patch by Kumar Aditya. + - gh-144872: Fix heap buffer overflow in the parser found by + OSS-Fuzz. + - gh-144766: Fix a crash in fork child process when perf + support is enabled. + - gh-144759: Fix undefined behavior in the lexer when start + and multi_line_start pointers are NULL in + _PyLexer_remember_fstring_buffers() and + _PyLexer_restore_fstring_buffers(). The NULL pointer + arithmetic (NULL - valid_pointer) is now guarded with + explicit NULL checks. + - gh-141510: Add built-in frozendict type. Patch by Victor + Stinner. + - gh-144681: Fix a JIT assertion failure when a conditional + branch jumps to the same target as the fallthrough path. + - gh-143300: Add PyUnstable_SetImmortal() C-API function to + mark objects as immortal. + - gh-144702: Clarify the error message raised when a class + pattern is used to match on a non-class object. + - gh-144569: Optimize BINARY_SLICE for list, tuple, and + unicode by avoiding temporary slice object creation. + - gh-144438: Align the QSBR thread state array to a 64-byte + cache line boundary to avoid false sharing in the + free-threaded build. ++++ 752 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python315/python315.changes ++++ and /work/SRC/openSUSE:Factory/.python315.new.8177/python315.changes Old: ---- CVE-2024-6923-follow-up-EOL-email-headers.patch CVE-2025-11468-email-hdr-fold-comment.patch CVE-2025-12781-b64decode-alt-chars.patch CVE-2025-15282-urllib-ctrl-chars.patch CVE-2025-15366-imap-ctrl-chars.patch CVE-2025-15367-poplib-ctrl-chars.patch CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch CVE-2026-0865-wsgiref-ctrl-chars.patch Python-3.15.0a3.tar.xz Python-3.15.0a3.tar.xz.sigstore longer-time-test_thread_time.patch New: ---- Python-3.15.0a7.tar.xz Python-3.15.0a7.tar.xz.sigstore gh-145802-atomic-profile-update-for-PGO.patch skip-test_array_alignment.patch test_ci_fuzz_stdlib-failure.patch ----------(Old B)---------- Old:- Remove upstreamed patches: - CVE-2024-6923-follow-up-EOL-email-headers.patch - CVE-2025-11468-email-hdr-fold-comment.patch Old: - CVE-2024-6923-follow-up-EOL-email-headers.patch - CVE-2025-11468-email-hdr-fold-comment.patch - CVE-2025-12781-b64decode-alt-chars.patch Old: - CVE-2025-11468-email-hdr-fold-comment.patch - CVE-2025-12781-b64decode-alt-chars.patch - CVE-2025-15282-urllib-ctrl-chars.patch Old: - CVE-2025-12781-b64decode-alt-chars.patch - CVE-2025-15282-urllib-ctrl-chars.patch - CVE-2025-15366-imap-ctrl-chars.patch Old: - CVE-2025-15282-urllib-ctrl-chars.patch - CVE-2025-15366-imap-ctrl-chars.patch - CVE-2025-15367-poplib-ctrl-chars.patch Old: - CVE-2025-15366-imap-ctrl-chars.patch - CVE-2025-15367-poplib-ctrl-chars.patch - CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch Old: - CVE-2025-15367-poplib-ctrl-chars.patch - CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch - CVE-2026-0865-wsgiref-ctrl-chars.patch Old: - CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch - CVE-2026-0865-wsgiref-ctrl-chars.patch Old:- Remove upstreamed patch: - longer-time-test_thread_time.patch ----------(Old E)---------- ----------(New B)---------- New: - Add gh-145802-atomic-profile-update-for-PGO.patch (gh#python/cpython#145803) to use gcc -fprofile-update=atomic New: - Add skip-test_array_alignment.patch skipping failing test test.test_buffer.TestBufferProtocol.test_array_alignment New: ./configure. - Add test_ci_fuzz_stdlib-failure.patch to fix gh#python/cpython#145762. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python315.spec ++++++ --- /var/tmp/diff_new_pack.Uohlvg/_old 2026-03-16 14:19:57.703842612 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:57.707842778 +0100 @@ -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~a3 -%define tarversion 3.15.0a3 +Version: 3.15.0~a7 +%define tarversion 3.15.0a7 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter @@ -225,34 +225,15 @@ Patch41: bsc1243155-sphinx-non-determinism.patch # PATCH-FIX-OPENSUSE gh139257-Support-docutils-0.22.patch gh#python/cpython#139257 [email protected] Patch42: gh139257-Support-docutils-0.22.patch -# PATCH-FIX-UPSTREAM longer-time-test_thread_time.patch gh#python/cpython!143558 [email protected] -# tolerate 100 ms instead of 20 ms to support slow CIs. -Patch43: longer-time-test_thread_time.patch -# PATCH-FIX-UPSTREAM CVE-2024-6923-follow-up-EOL-email-headers.patch bsc#1257181 [email protected] -# Encode newlines in headers when using ByteGenerator -# patch from gh#python/cpython#144125 -Patch44: CVE-2024-6923-follow-up-EOL-email-headers.patch -# PATCH-FIX-UPSTREAM CVE-2025-11468-email-hdr-fold-comment.patch bsc#1257029 [email protected] -# Email preserve parens when folding comments -Patch45: CVE-2025-11468-email-hdr-fold-comment.patch -# PATCH-FIX-UPSTREAM CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch bsc#1257031 [email protected] -# Reject control characters in http cookies -Patch46: CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch -# PATCH-FIX-UPSTREAM CVE-2025-12781-b64decode-alt-chars.patch bsc#1257108 [email protected] -# Fix decoding with non-standard Base64 alphabet gh#python/cpython#125346 -Patch47: CVE-2025-12781-b64decode-alt-chars.patch -# PATCH-FIX-UPSTREAM CVE-2026-0865-wsgiref-ctrl-chars.patch bsc#1257042 [email protected] -# Reject control characters in wsgiref.headers.Headers -Patch48: CVE-2026-0865-wsgiref-ctrl-chars.patch -# PATCH-FIX-UPSTREAM CVE-2025-15366-imap-ctrl-chars.patch bsc#1257044 [email protected] -# Reject control characters in wsgiref.headers.Headers -Patch49: CVE-2025-15366-imap-ctrl-chars.patch -# PATCH-FIX-UPSTREAM CVE-2025-15282-urllib-ctrl-chars.patch bsc#1257046 [email protected] -# Reject control characters in wsgiref.headers.Headers -Patch50: CVE-2025-15282-urllib-ctrl-chars.patch -# PATCH-FIX-UPSTREAM CVE-2025-15367-poplib-ctrl-chars.patch bsc#1257041 [email protected] -# Reject control characters in poplib -Patch51: CVE-2025-15367-poplib-ctrl-chars.patch +# 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 #### 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.Uohlvg/_old 2026-03-16 14:19:57.743844273 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:57.747844438 +0100 @@ -4,10 +4,10 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) -Index: Python-3.15.0a3/Lib/test/test_pyexpat.py +Index: Python-3.15.0a5/Lib/test/test_pyexpat.py =================================================================== ---- Python-3.15.0a3.orig/Lib/test/test_pyexpat.py 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Lib/test/test_pyexpat.py 2025-12-19 02:26:33.964969539 +0100 +--- 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 @@ self.assertEqual(started, ['doc']) @@ -19,10 +19,10 @@ started = [] def start_element(name, _): -Index: Python-3.15.0a3/Lib/test/test_sax.py +Index: Python-3.15.0a5/Lib/test/test_sax.py =================================================================== ---- Python-3.15.0a3.orig/Lib/test/test_sax.py 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Lib/test/test_sax.py 2025-12-19 02:26:33.966048947 +0100 +--- 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 @@ -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.0a3/Lib/test/test_xml_etree.py +Index: Python-3.15.0a5/Lib/test/test_xml_etree.py =================================================================== ---- Python-3.15.0a3.orig/Lib/test/test_xml_etree.py 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Lib/test/test_xml_etree.py 2025-12-19 02:26:33.966681016 +0100 +--- 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 @@ -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): -@@ -1620,9 +1625,11 @@ +@@ -1619,9 +1624,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) -@@ -1849,6 +1856,9 @@ +@@ -1848,6 +1855,9 @@ self.assert_event_tags(parser, [('end', 'doc')]) ++++++ Python-3.15.0a3.tar.xz -> Python-3.15.0a7.tar.xz ++++++ /work/SRC/openSUSE:Factory/python315/Python-3.15.0a3.tar.xz /work/SRC/openSUSE:Factory/.python315.new.8177/Python-3.15.0a7.tar.xz differ: char 26, line 1 ++++++ Python-3.15.0a3.tar.xz.sigstore -> Python-3.15.0a7.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python315/Python-3.15.0a3.tar.xz.sigstore 2025-12-22 22:52:41.409554067 +0100 +++ /work/SRC/openSUSE:Factory/.python315.new.8177/Python-3.15.0a7.tar.xz.sigstore 2026-03-16 14:19:56.371787315 +0100 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzjCCAlOgAwIBAgIUWGdIw6jkonGGlxTefVWR5dycYMUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMjE2MTQzNDE1WhcNMjUxMjE2MTQ0NDE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMeXAUdFRAMUwkol7S3TfLRDGSmTBLxrIQ3KpDiKGHVX13ZTBQwnQnTwV+sIwP787IJZHObALFx34l925AS5oSKOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU1KEmc4ZWtSbp0HrR7xEl632FVQEwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABmyeVUi8AAAQDAEYwRAIgeNcEmGEuUlpapxVCjn9ssKb5U0FKgDx1cACe+m//GqwCIHaMa36eZ/5Ov9IQNyTUkm0bquaYWBvG5iGXMccaNkI+MAoGCCqGSM49BAMDA2kAMGYCMQDE+zTm1YaPVjKhhV7UrybXV88rHo7p1wedZglYz/WTQ6tdfXme WXd4XcY8qvdMXxECMQCKipA6iUBoyWfYxM9wwNk1R0+YPpDvApKpuKcJssq7UBMH+qsVU2mYROAeVI/cTUc="}, "tlogEntries": [{"logIndex": "767379108", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1765895656", "inclusionPromise": {"signedEntryTimestamp": "MEYCIQC/gr68tewjyDayVY1YgkSx3wyJr1gDp9niugBN6CuI3QIhAI+AI17ZFMXpBHbN6nqzRRSF3gkcOFeiztd/ddPiR3Qr"}, "inclusionProof": {"logIndex": "645474846", "rootHash": "+7pvZSc1vkrbz1NYkRJTW6ebJVNEKnBbysMwrYfqBBw=", "treeSize": "645474850", "hashes": ["3IExMYCGoBe2wYmaUDFh/NwM9Yfz+YqErksZ9FiJMdU=", "5OlXK7CbwTpuOXJUjRBnsTRYTjVw1n5Yy8FU5TBL0XA=", "k7H5SO2fy1fisX7nQuhceTTJDt+OYrkbDLi4yA4s8x8=", "OUxbxHF4gP/nb0YaEJsiu5bD9WwjbSKIysm29uO2Wg8=", "xhz07XLYNXp0QZ6l+zMHq2ou8fUvEBzrXHj5p8bhW0w=", "TBrb22/2hnzqPGPgryvf9E/XySk6biXtuETjbuLr4iQ=", "XXiywYiYcfd6pMWvLjChESCzRvayGZ5Ga9vLoivArTc=", "6ymuOfiti8iWpSzihumjs587leNSK8iia3j2fQWYQvQ=", "x/rIPkrAoE9rz9kw44ofjWopN9MMV2UwNq4 ZZxyk6gA=", "Jx3nGngq60bR51zwd8OmKd+Jv0wh/mwftjiOc6qQXgo=", "1Vd3rUmNolkFfJocF+ehhHicx+XZCI1oORVzpl1WD3k=", "STJBwmMYjQL7nNE7RtmufqTzKydDq3utsDtdFqjV83Q=", "volnUoGNFpLYblGf83KDzlbqdAQlS0WvwWzyZgIHQjo=", "1j4lDTV8P+GITn6Cn5v42uy3JK42BtPmPkJMt5IcMy0=", "X6vkxz0poxK2DIlRur/7LbEdz3iDXj5QY/gLk/ewXjA=", "ZmUkYkHBy1B723JrEgiKvepTdHYrP6y2a4oODYvi5VY=", "T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n645474850\n+7pvZSc1vkrbz1NYkRJTW6ebJVNEKnBbysMwrYfqBBw=\n\n\u2014 rekor.sigstore.dev wNI9ajBDAh8xrHp05yLv6Q/03Lpwf+xo601cjQSlyFVx6fhX4g6QAiAHV2ukAWeKPX30txbAW2ymQCsMCjyaxXVyMi5ohj7Dvg==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2YWIwMmNkYWMyNDUwNTc3OTg3N2JiMWQ5MTg5NDMyZDY3ZTkwZGRmMmE5YjhiN2IzNzNlYWQ1NGFjMDdiNjA3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQ0hPTThHQjNyZFVTZTZzSFNMLzZWeDE3TkVabmlqRG1qZ2tVdXdDS0xu YkFpQU54VFdKRFk4dmhhVEF2NDVpWFlDM0dvTjl6RDVtYllpdUFkM3FockN2MGc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4UFowRjNTVUpCWjBsVlYwZGtTWGMyYW10dmJrZEhiSGhVWldaV1YxSTFaSGxqV1UxVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFxUlRKTlZGRjZUa1JGTVZkb1kwNU5hbFY0VFdwRk1rMVVVVEJPUkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZOWlZoQlZXUkdVa0ZOVlhkcmIydzNVek5VWmt4U1JFZFRiVlJDVEhoeVNWRXpTM0FLUkdsTFIwaFdXREV6V2xSQ1VYZHVVVzVVZDFZcmMwbDNVRGM0TjBsS1draFBZa0ZNUm5nek5HdzVNalZCVXpWdlUwdFBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlV4UzBWdENtTTBXbGQwVTJKd01FaHlVamQ0Uld3Mk16SkdWbEZGZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV 1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnRlV1ZXVldrNFFRcEJRVkZFUVVWWmQxSkJTV2RsVG1ORmJVZEZkVlZzY0dGd2VGWkRhbTQ1YzNOTFlqVlZNRVpMWjBSNE1XTkJRMlVyYlM4dlIzRjNRMGxJWVUxaE16WmxDbG92TlU5Mk9VbFJUbmxVVld0dE1HSnhkV0ZaVjBKMlJ6VnBSMWhOWTJOaFRtdEpLMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbXRCVFVkWlEwMVJSRVVLSzNwVWJURlpZVkJXYWt0b2FGWTNWWEo1WWxoV09EaHlTRzgzY0RGM1pXUmFaMnhaZWk5WFZGRTJkR1JtV0cxbFYxaGtORmhqV1RoeGRtUk5XSGhGUXdwTlVVTkxhWEJCTm1sVlFtOTVWMlpaZUUwNWQzZE9hekZTTUN0WlVIQkVka0Z3UzNCMVMyTktjM054TjFWQ1RVZ3JjWE5XVlRKdFdWSlBRV1ZXU1M5akNsUlZZejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messag eSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "arAs2sJFBXeYd7sdkYlDLWfpDd8qm4t7Nz6tVKwHtgc="}, "signature": "MEQCICHOM8GB3rdUSe6sHSL/6Vx17NEZnijDmjgkUuwCKLnbAiANxTWJDY8vhaTAv45iXYC3GoN9zD5mbYiuAd3qhrCv0g=="}} +{"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=="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.Uohlvg/_old 2026-03-16 14:19:57.855848922 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:57.859849088 +0100 @@ -1,6 +1,6 @@ -mtime: 1770240166 -commit: 3312e86ee4a2708afdaa23ebdcf981dbd3c3306d7f68bb406a9e3f321c0a4fa6 +mtime: 1773307978 +commit: 5590875d279841a26c266d3aa3af3e638e5f13af0985791c76374c9819929ebc url: https://src.opensuse.org/python-interpreters/python315.git -revision: 3312e86ee4a2708afdaa23ebdcf981dbd3c3306d7f68bb406a9e3f321c0a4fa6 +revision: 5590875d279841a26c266d3aa3af3e638e5f13af0985791c76374c9819929ebc projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.Uohlvg/_old 2026-03-16 14:19:57.887850251 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:57.887850251 +0100 @@ -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.0a3/Doc/library/ensurepip.rst +Index: Python-3.15.0a7/Doc/library/ensurepip.rst =================================================================== ---- Python-3.15.0a3.orig/Doc/library/ensurepip.rst 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Doc/library/ensurepip.rst 2026-01-21 18:16:58.317178174 +0100 +--- 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 @@ -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,10 +57,10 @@ .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: -Index: Python-3.15.0a3/Lib/ensurepip/__init__.py +Index: Python-3.15.0a7/Lib/ensurepip/__init__.py =================================================================== ---- Python-3.15.0a3.orig/Lib/ensurepip/__init__.py 2026-01-21 18:16:36.646076159 +0100 -+++ Python-3.15.0a3/Lib/ensurepip/__init__.py 2026-01-21 18:16:58.317562933 +0100 +--- 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 @@ os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -103,7 +103,7 @@ if upgrade: args += ["--upgrade"] if user: -@@ -247,6 +249,11 @@ +@@ -249,6 +251,11 @@ help="Install everything relative to this alternate root directory.", ) parser.add_argument( @@ -115,7 +115,7 @@ "--altinstall", action="store_true", default=False, -@@ -265,6 +272,7 @@ +@@ -267,6 +274,7 @@ return _bootstrap( root=args.root, @@ -123,11 +123,11 @@ upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, -Index: Python-3.15.0a3/Lib/test/test_ensurepip.py +Index: Python-3.15.0a7/Lib/test/test_ensurepip.py =================================================================== ---- Python-3.15.0a3.orig/Lib/test/test_ensurepip.py 2026-01-21 18:16:38.055385060 +0100 -+++ Python-3.15.0a3/Lib/test/test_ensurepip.py 2026-01-21 18:16:58.317858155 +0100 -@@ -105,6 +105,17 @@ +--- 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 @@ unittest.mock.ANY, ) @@ -145,11 +145,11 @@ def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.15.0a3/Makefile.pre.in +Index: Python-3.15.0a7/Makefile.pre.in =================================================================== ---- Python-3.15.0a3.orig/Makefile.pre.in 2026-01-21 18:16:49.104742043 +0100 -+++ Python-3.15.0a3/Makefile.pre.in 2026-01-21 18:16:58.318353823 +0100 -@@ -2391,7 +2391,7 @@ +--- 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 +@@ -2418,7 +2418,7 @@ install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -158,7 +158,7 @@ fi .PHONY: altinstall -@@ -2402,7 +2402,7 @@ +@@ -2429,7 +2429,7 @@ install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -167,10 +167,10 @@ fi .PHONY: commoninstall -Index: Python-3.15.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.15.0a7/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.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-01-21 18:16:58.318910394 +0100 ++++ 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 @@ -0,0 +1 @@ +A directory prefix can now be specified when using :mod:`ensurepip`. ++++++ 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-03-13 13:31:22.000000000 +0100 @@ -0,0 +1,6 @@ +*.obscpio +*.orig +*.osc +_build.* +.pbuild +python315-*-build/ ++++++ gh-145802-atomic-profile-update-for-PGO.patch ++++++ >From dfb0a1a7f16430fa34e886d8fbe1991cb7a06e51 Mon Sep 17 00:00:00 2001 From: Victor Stinner <[email protected]> Date: Wed, 11 Mar 2026 11:55:36 +0100 Subject: [PATCH] gh-145801: Use gcc -fprofile-update=atomic for PGO builds When Python build is optimized by PGO, use GCC -fprofile-update=atomic option to use atomic operations when updating profile information. This option reduces the risk of gcov Data Files (.gcda) corruption which can cause random GCC crashes. --- Misc/NEWS.d/next/Build/2026-03-11-11-58-42.gh-issue-145801.iCXa3v.rst | 4 ++++ configure | 2 +- configure.ac | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2026-03-11-11-58-42.gh-issue-145801.iCXa3v.rst Index: Python-3.15.0a7/Misc/NEWS.d/next/Build/2026-03-11-11-58-42.gh-issue-145801.iCXa3v.rst =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ Python-3.15.0a7/Misc/NEWS.d/next/Build/2026-03-11-11-58-42.gh-issue-145801.iCXa3v.rst 2026-03-11 14:40:47.055558773 +0100 @@ -0,0 +1,4 @@ +When Python build is optimized by PGO, use GCC ``-fprofile-update=atomic`` +option to use atomic operations when updating profile information. This option +reduces the risk of gcov Data Files (.gcda) corruption which can cause random +GCC crashes. Patch by Victor Stinner. Index: Python-3.15.0a7/configure =================================================================== --- Python-3.15.0a7.orig/configure 2026-03-10 13:31:15.000000000 +0100 +++ Python-3.15.0a7/configure 2026-03-11 14:40:47.059323607 +0100 @@ -9083,7 +9083,7 @@ fi ;; gcc) - PGO_PROF_GEN_FLAG="-fprofile-generate" + PGO_PROF_GEN_FLAG="-fprofile-generate -fprofile-update=atomic" PGO_PROF_USE_FLAG="-fprofile-use -fprofile-correction" LLVM_PROF_MERGER="true" LLVM_PROF_FILE="" Index: Python-3.15.0a7/configure.ac =================================================================== --- Python-3.15.0a7.orig/configure.ac 2026-03-11 14:40:40.007249549 +0100 +++ Python-3.15.0a7/configure.ac 2026-03-11 14:40:47.061622097 +0100 @@ -2084,7 +2084,7 @@ fi ;; gcc) - PGO_PROF_GEN_FLAG="-fprofile-generate" + PGO_PROF_GEN_FLAG="-fprofile-generate -fprofile-update=atomic" PGO_PROF_USE_FLAG="-fprofile-use -fprofile-correction" LLVM_PROF_MERGER="true" LLVM_PROF_FILE="" ++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++ --- /var/tmp/diff_new_pack.Uohlvg/_old 2026-03-16 14:19:58.159861543 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:58.163861709 +0100 @@ -16,11 +16,11 @@ Makefile.pre.in | 7 +++++++ 1 file changed, 7 insertions(+) -Index: Python-3.15.0a3/Makefile.pre.in +Index: Python-3.15.0a7/Makefile.pre.in =================================================================== ---- Python-3.15.0a3.orig/Makefile.pre.in 2025-12-16 13:26:12.000000000 +0100 -+++ Python-3.15.0a3/Makefile.pre.in 2026-01-21 18:16:49.104742043 +0100 -@@ -1926,6 +1926,13 @@ +--- Python-3.15.0a7.orig/Makefile.pre.in 2026-03-10 13:31:15.000000000 +0100 ++++ Python-3.15.0a7/Makefile.pre.in 2026-03-10 21:55:56.002096854 +0100 +@@ -1932,6 +1932,13 @@ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c ++++++ python-3.3.0b1-localpath.patch ++++++ --- /var/tmp/diff_new_pack.Uohlvg/_old 2026-03-16 14:19:58.175862207 +0100 +++ /var/tmp/diff_new_pack.Uohlvg/_new 2026-03-16 14:19:58.179862373 +0100 @@ -2,9 +2,11 @@ Lib/site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- a/Lib/site.py -+++ b/Lib/site.py -@@ -78,7 +78,7 @@ import stat +Index: Python-3.15.0a7/Lib/site.py +=================================================================== +--- Python-3.15.0a7.orig/Lib/site.py 2026-03-10 21:55:34.774030935 +0100 ++++ Python-3.15.0a7/Lib/site.py 2026-03-10 21:55:45.838165991 +0100 +@@ -80,7 +80,7 @@ import errno # Prefixes for site-packages; add additional prefixes like /usr/local here ++++++ skip-test_array_alignment.patch ++++++ --- Lib/test/test_buffer.py | 1 + 1 file changed, 1 insertion(+) Index: Python-3.15.0a6/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 @@ self.assertEqual([ptr % align for ptr in ptrs], [0]*len(ptrs)) @support.cpython_only + @unittest.skip('test fails; gh#python/cpython#144725') @unittest.skipIf(_testcapi is None, "requires _testcapi") def test_array_alignment(self): # gh-140557: pointer alignment of buffers including empty allocation ++++++ test_ci_fuzz_stdlib-failure.patch ++++++ >From 9c7dfebd7744198ad9bb1585bf31b05b19fbf778 Mon Sep 17 00:00:00 2001 From: Chris Eibl <[email protected]> Date: Tue, 10 Mar 2026 18:28:27 +0100 Subject: [PATCH] Fix test_ci_fuzz_stdlib when running the tests after building from the source archive --- Lib/test/test_tools/test_compute_changes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_tools/test_compute_changes.py b/Lib/test/test_tools/test_compute_changes.py index 351fb06a885006..eb1ecd447a7ce0 100644 --- a/Lib/test/test_tools/test_compute_changes.py +++ b/Lib/test/test_tools/test_compute_changes.py @@ -55,7 +55,7 @@ def test_ci_fuzz_stdlib(self): elif p.is_file(): f = p else: - self.fail(f"LIBRARY_FUZZER_PATHS contains an invalid entry: {p!r}") + continue result = process_changed_files({f}) self.assertTrue(result.run_ci_fuzz_stdlib) self.assertTrue(is_fuzzable_library_file(f))
