Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python314 for openSUSE:Factory checked in at 2026-08-25 13:18:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python314 (Old) and /work/SRC/openSUSE:Factory/.python314.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python314" Tue Aug 25 13:18:06 2026 rev:39 rq:1370390 version:3.14.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python314/python314.changes 2026-07-22 19:00:53.956402621 +0200 +++ /work/SRC/openSUSE:Factory/.python314.new.1258/python314.changes 2026-08-25 13:18:10.420907150 +0200 @@ -1,0 +2,747 @@ +Fri Aug 7 16:56:07 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.14.7: + - Security + - gh-153030: Fixed quadratic complexity in incremental + parsing of long unterminated constructs (such as tags or + comments) in html.parser.HTMLParser, which could be + exploited for a denial of service (bsc#1271192, + CVE-2026-15308). + - gh-152674: The xml.etree.ElementTree.Element methods + findall(), iterfind() and find() avoid quadratic behavior + when using XPath index predicates ([1], [last()], + [last()-N]) on XML documents with many same-tag siblings. + - gh-152216: Update bundled libexpat to version 2.8.2. + - gh-151987: The tarfile.TarFile.extract() method now applies + the given filter when it extracts a link target from the + archive as a fallback (bsc#1269959, CVE-2026-4360). + - gh-151981: In tarfile, seeking a stream now stops when end + of the stream is reached (bsc#1269788, CVE-2026-11972). + - gh-151544: Modules/Setup.local is no longer used as + a landmark to discover whether Python is running in + a source tree, as it could potentially affect actual + installs. The pybuilddir.txt file is now the sole indicator + of running in a source tree. + - gh-151558: Fixed an vulnerability in the tarfile data and + tar extraction filters where crafted archives could create + a symlink pointing outside the destination directory. This + was a bypass of CVE 2025-4330 (bsc#1268977, + CVE-2026-11940). + - gh-150743: http.client now limits the number of + chunked-response trailer lines it will read to 100, and the + number of interim (1xx) responses it will skip to 100. + A malicious or broken server could previously stream + trailer lines or 100 Continue responses forever, hanging + the client even when a socket timeout was in use. Reported + by @YLChen-007 via GHSA-w4q2-g22w-6fr4. + - gh-143927: Normalize all line endings (CR, CRLF, and LF) to + LF+TAB when writing multi-line configparser values. + - gh-143921: Reject NUL, CR and LF characters in IMAP + commands. Other control characters are allowed and sent + quoted (bsc#1257044, CVE-2025-15366). + - Core and Builtins + - gh-133931: Fix data races when setting attributes of + function objects on the free threaded build. + - gh-154709: Fix an out-of-bounds access in reverse + dictionary iterators when the underlying dictionary is + cleared and modified after the iterator is created. + - gh-154695: Fix asyncio.Task raising AttributeError when + created with eager_start=True and no explicit loop + argument. + - gh-153809: Fix interpreter crash while deallocating objects + of asyncio.Task on free-threaded builds. Contributed by + Sergey Miryanov. + - gh-154275: Fix a crash when getting deeply nested + __parameters__ from a types.GenericAlias objects. + - gh-153932: Fix thread safety issue in the __reduce__ method + of enumerate. + - gh-153298: Fixes a data race in types.GenericAlias + __parameters__ initialization on free-threading builds. + - gh-153205: Fix a potential SystemError during vector calls + when memory allocation fails. A MemoryError is now raised + instead. + - gh-152682: Fix NULL pointer dereference in compile() when + a reserved name (e.g. __classdict__) is used as a type + parameter name and memory allocation fails while formatting + the error message. + - gh-152635: Fix a crash caused when running out of memory + creating a _interpchannels channel. Now a MemoryError is + correctly raised. + - gh-152375: Fix undefined behaviour when a sys.monitoring + callback raised an exception while the program was + following a branch or loop. + - gh-152235: Defer GC tracking of set.intersection(), + set.difference(), set.symmetric_difference(), set.union() + and set.__sub__. Patch by Donghee Na. + - gh-152235: Defer GC tracking of a set or frozenset to the + end of its construction from iterable. Patch by Donghee Na. + - gh-152228: Fix an assertion failure when python is built in + a debug mode that happened in str.replace() under a limited + memory situation. + - gh-151763: Fixes possible crash on types.CodeType + deallocation. + - gh-152020: On the free-threaded build, asyncio.all_tasks() + no longer loses eager-started tasks when called from + a thread other than the one running the event loop. + - gh-151763: Fix a potential crash in compile(), exec(), + eval() and ast.parse() when an allocation fails: the parser + or compiler could return without setting an exception. + - gh-151912: Fixed a crash in type() when selecting + a metaclass whose tp_new slot is NULL. Such metaclasses are + now rejected with TypeError instead of causing a NULL + pointer dereference. + - gh-151905: Fix OOM error handling in PyFrame_GetBack() to + propagate exceptions instead of masking them as None. + - gh-151773: Fix a crash in contextvars.ContextVar.set() when + memory allocation fails. + - gh-151126: Fix a crash when sharing memoryview objects + between interpreters fails due to running out of memory. It + now raises a proper MemoryError. + - gh-151644: Fix a data race in sys.setdlopenflags() and + sys.getdlopenflags() when called concurrently in the + free-threaded build. The underlying + _PyImport_GetDLOpenFlags and _PyImport_SetDLOpenFlags + functions now use atomic load/store operations. + - gh-151126: Avoid possible crash in _winapi.c where a device + has no memory left. Now it properly raises a MemoryError. + Patch by Ivy Xu. + - gh-151546: Fix the stack limit check if Python is linked to + musl (ex: Alpine Linux). Use the stack size set by the + linker to compute the stack limits. Patch by Victor + Stinner. + - gh-151461: Fix direct execution of files with invalid + source encodings to report the underlying codec lookup or + decoding error instead of the generic SyntaxError: encoding + problem message. Patch by Bartosz Sławecki. + - gh-151218: PyConfig_Set() and sys.set_int_max_str_digits() + now replace sys.flags (create a new object), instead of + modifying sys.flags in-place. Patch by Victor Stinner. + - gh-151253: If import encodings (first import) fails at + Python startup, dump the Python path configuration to help + users debugging their configuration. Patch by Victor + Stinner. + - gh-151238: Fix a crash when compiling a concatenated + f-string or t-string if an error occurs when processing one + of it’s parts. + - gh-151126: Fix a crash, when there’s no memory left on + a device, which happened in _interpchannels module. + - Now it raises proper MemoryError errors. + - gh-150902: Apply an existing optimization of + PyCriticalSection (single mutex) to PyCriticalSection2: + avoid acquiring the same locks that the current CS has + already acquired. + - gh-151065: Fix memory leak when using the mimalloc memory + allocator. + - gh-151029: On Linux, fix sys.remote_exec() unable to find + remote writable memory when libpython replaced on disk. + - gh-150988: Fix a reference leak in OSError when attributes + are set before super().__init__(). + - gh-144774: Fix data race in BaseException when an exception + is copied while being mutated. + - gh-150411: Fix a data race in the free-threaded build when + gc.get_count() reads the young generation allocation count + while another thread updates it. + - gh-149689: Fix missing error propagation in parser action + helpers when memory allocation fails. Patch by Thomas + Kowalski. + - gh-149162: Fix a potential deadlock in + PyUnicode_InternFromString() and other interning functions + in the free-threaded build when called from C++ static + local initializers. + - Library + - gh-155009: Fix argparse.ArgumentParser to preserve the + program name from sys.argv[0] when a named module is + executed as the main program without replacing sys.argv[0]. + - gh-155063: Bump the version of pip bundled in ensurepip to + version 26.2.1 + - gh-155063: Bump the version of pip bundled in ensurepip to + version 26.2 + - gh-154936: Fix the pure Python json decoder to report the + correct position for invalid literal control characters in + JSON strings. + - gh-154892: Fix a bug in the C accelerator for zoneinfo + where datetime.datetime subclasses returning -1 for hour, + minute, or second could incorrectly raise a SystemError. + - gh-154848: The pickle C accelerator now enforces frame + boundaries when unpickling, as the pure Python + implementation already did. An argument that straddles + a frame boundary, or a frame that begins before the + previous one has ended, now raises pickle.UnpicklingError + instead of being silently read across the boundary. This + prevents the loaded data from diverging from the + pickletools disassembly of the same pickle. + - gh-109638: Fix exponential time in csv.Sniffer.sniff() for + a sample which contains many quote characters. A doubled + quote character is now also detected in a field which + contains the delimiter or a line break. + - gh-98820: Fix quadratic time in csv.Sniffer.sniff() for + a sample which contains quoted fields, in particular for + a single column of quoted fields. + - gh-154738: Fix ExternalEntityParserCreate() not propagating + the reparse-deferral setting to the subparser, which left + GetReparseDeferralEnabled() returning an uninitialized + value. Patch by tonghuaroot. + - gh-93251: Fix UnicodeDecodeError in socket functions (such + as getaddrinfo() and gethostbyaddr()) when the localized + error message of the C library is not UTF-8: decode it from + the locale encoding. + - gh-154551: Fix ctypes.util.find_library() returning None in + non-UTF-8 locales. + - gh-79366: Fixed a race condition in logging: if a handler + was removed while a record was being emitted, the following + handlers of the same logger could be skipped. + - gh-73458: Fix logging.config.listen(): it left the caller + waiting for the ready event forever if the server could not + be started, for example if the port was invalid or already + in use. It now also binds to an IPv6 address if the host + has no IPv4 address, for example if localhost is only + aliased to ::1. + - gh-154460: Fix time.strftime() and + datetime.datetime.strftime() returning a wrong ISO 8601 + week number (%V) on OpenBSD. + - gh-154435: Fix os.posix_fadvise() and os.posix_fallocate() + on DragonFly BSD: they raised OSError with a meaningless + error code, because these functions return -1 and set errno + there. + - gh-154399: Fix venv activation in a non-interactive csh: + activate.csh no longer fails when the prompt variable is + not set. + - gh-154389: Fix uuid.uuid1() on OpenBSD: it returned + a version 4 UUID, because uuid_create() generates random + UUIDs on this platform. + - gh-154324: Fix os.sendfile() on illumos: it no longer + reports a successful transfer when the underlying system + call failed without writing any data. + - gh-154307: Fix tempfile.TemporaryDirectory.cleanup() on + DragonFly BSD, where removing a file with the UF_NOUNLINK + flag failed with EISDIR instead of EPERM. + - gh-154291: Fix socket.has_dualstack_ipv6() to return False + on platforms such as DragonFly BSD where setting + IPV6_V6ONLY to 0 silently has no effect. + - gh-154283: On DragonFly BSD, threading.get_native_id() now + returns a value that is unique across processes, matching + the other platforms. + - gh-154258: Fix a crash in mmap.mmap.resize() on NetBSD when + growing a shared anonymous mapping. resize() now raises + ValueError in this case, as it already did on Linux. + - gh-131565: ctypes.util.dllist() now works on NetBSD. It is + implemented in the _ctypes extension module so that + dl_iterate_phdr() reports all loaded shared libraries: on + NetBSD it only reports the link-map group of the calling + object, which excluded them when called through ctypes. + - gh-154225: Fix os.openpty() on Solaris and illumos: it no + longer leaves the pseudo-terminal as the controlling + terminal of the calling process. + - gh-154227: Fix os.posix_openpt() on OpenBSD, where it + rejected the O_CLOEXEC flag. + - gh-145030: Fix asyncio write pipe transports for named + FIFOs on macOS and Solaris. Unread data sitting in the FIFO + made the transport misinterpret a poll event as the reader + disconnecting, wrongly closing the transport. + - gh-154001: Fix random.binomialvariate() raising + ZeroDivisionError when random.random() returns zero. + - gh-153908: Fix data race when calling repr() on + itertools.count under the free-threaded build. + - gh-153896: Deduplicate unhashable args in typing.Literal. + - gh-153864: On a wide curses build, curses.window.insch() + now inserts a non-ASCII byte as the character it encodes in + the window’s encoding, consistently with addch(), instead + of its code point. + - gh-153862: On a wide curses build, curses.window.inch() now + returns the locale-encoded byte of a non-ASCII character, + matching instr(), instead of the low byte of its code + point. + - gh-146011: Fix a heap-use-after-free in the + C implementation of decimal when calling repr() after + deleting the Context. + - gh-153761: Fix cancelling asyncio.loop.sock_accept() + dropping a pending connection. + - gh-153695: Hashing a sqlite3.Row that contains an + unhashable value now raises TypeError instead of + SystemError. Patch by tonghuaroot. + - gh-127049: Fix a race condition in asyncio on Unix where + asyncio.subprocess.Process.send_signal(), terminate() or + kill() could signal an unrelated process that was recycled + onto the PID of the already-reaped child when + ThreadedChildWatcher is used. Patch by Kumar Aditya. + - gh-153658: Fix sqlite3.Connection.iterdump() raising + sqlite3.OperationalError when a table name contains + a single quote. Patch by tonghuaroot. + - gh-85943: Fix struct functions raising BytesWarning under + the -bb command line option when a str format is used after + an equal bytes format (or vice versa). The internal format + cache no longer mixes str and bytes keys. + - gh-153404: urllib.robotparser.RobotFileParser now silently + ignores a Crawl-delay or Request-rate value written with + non-decimal digits (such as U+00B2 SUPERSCRIPT TWO) instead + of raising ValueError and aborting the parse of the whole + robots.txt file. + - gh-153417: Error messages from imaplib.IMAP4.select() and + imaplib.IMAP4.uid() no longer raise BytesWarning under -bb + when the mailbox or command argument is bytes. + - gh-153406: email.utils.parsedate_to_datetime() now raises + ValueError instead of OverflowError when the parsed year or + timezone offset is out of range, matching its documented + behavior. + - gh-153083: Defer GC tracking of an array.array to the end + of its construction. Patch by Donghee Na. + - gh-153292: Fix data race in repr of threading.RLock in + free-threading build. + - gh-143990: A tkinter.font.Font created from a named font, + including by copy(), now copies its configured options + rather than the options resolved by Tcl’s font actual, + preserving a size specified in pixels (a negative size). + - gh-148286: Fix undefined behavior in + compression.zstd.ZstdDecompressor.unused_data when + a complete frame was decompressed in a single call. + - gh-153210: Fix crash on array import under a memory ++++ 453 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python314/python314.changes ++++ and /work/SRC/openSUSE:Factory/.python314.new.1258/python314.changes Old: ---- CVE-2025-15366-imap-ctrl-chars.patch CVE-2026-11940-tarfile-escape.patch Python-3.14.6.tar.xz Python-3.14.6.tar.xz.sigstore New: ---- Python-3.14.7.tar.xz Python-3.14.7.tar.xz.sigstore ----------(Old B)---------- Old:- Remove upstreamed patches: - CVE-2025-15366-imap-ctrl-chars.patch - CVE-2026-11940-tarfile-escape.patch Old: - CVE-2025-15366-imap-ctrl-chars.patch - CVE-2026-11940-tarfile-escape.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python314.spec ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.521945941 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.523946012 +0200 @@ -162,7 +162,7 @@ # _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.14.6 +Version: 3.14.7 %define tarversion %{version} %define tarname Python-%{tarversion} Release: 0 @@ -231,18 +231,12 @@ # 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 Patch49: CVE-2025-12781-b64decode-alt-chars.patch -# PATCH-FIX-UPSTREAM CVE-2025-15366-imap-ctrl-chars.patch bsc#1257044 [email protected] -# Reject control characters in wsgiref.headers.Headers -Patch50: CVE-2025-15366-imap-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-OPENSUSE bsc1260884-llvm21-support.patch bsc#1260884 [email protected] # update JIT builds to use LLVM 21 Patch57: bsc1260884-llvm21-support.patch -# PATCH-FIX-UPSTREAM CVE-2026-11940-tarfile-escape.patch bsc#1268977 [email protected] -# Fix symlink escape via tarfile hardlink-extraction fallback -Patch58: CVE-2026-11940-tarfile-escape.patch #### Python 3.14 END OF PATCHES BuildRequires: autoconf-archive BuildRequires: automake ++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.545946787 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.550946963 +0200 @@ -4,11 +4,11 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) -Index: Python-3.14.6/Lib/test/test_pyexpat.py +Index: Python-3.14.7/Lib/test/test_pyexpat.py =================================================================== ---- Python-3.14.6.orig/Lib/test/test_pyexpat.py 2026-06-16 10:10:27.487668052 +0200 -+++ Python-3.14.6/Lib/test/test_pyexpat.py 2026-06-16 10:12:18.364066546 +0200 -@@ -1032,6 +1032,10 @@ +--- Python-3.14.7.orig/Lib/test/test_pyexpat.py 2026-08-07 19:07:31.236195513 +0200 ++++ Python-3.14.7/Lib/test/test_pyexpat.py 2026-08-07 19:07:56.508246251 +0200 +@@ -1038,6 +1038,10 @@ self.assertEqual(started, ['doc']) def test_reparse_deferral_disabled(self): @@ -19,10 +19,10 @@ started = [] def start_element(name, _): -Index: Python-3.14.6/Lib/test/test_sax.py +Index: Python-3.14.7/Lib/test/test_sax.py =================================================================== ---- Python-3.14.6.orig/Lib/test/test_sax.py 2026-06-16 10:10:27.552009501 +0200 -+++ Python-3.14.6/Lib/test/test_sax.py 2026-06-16 10:12:18.364564564 +0200 +--- Python-3.14.7.orig/Lib/test/test_sax.py 2026-08-07 19:07:31.324948848 +0200 ++++ Python-3.14.7/Lib/test/test_sax.py 2026-08-07 19:07:56.508907960 +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.14.6/Lib/test/test_xml_etree.py +Index: Python-3.14.7/Lib/test/test_xml_etree.py =================================================================== ---- Python-3.14.6.orig/Lib/test/test_xml_etree.py 2026-06-16 10:10:28.031254289 +0200 -+++ Python-3.14.6/Lib/test/test_xml_etree.py 2026-06-16 10:12:18.365162471 +0200 +--- Python-3.14.7.orig/Lib/test/test_xml_etree.py 2026-08-07 19:07:31.937328731 +0200 ++++ Python-3.14.7/Lib/test/test_xml_etree.py 2026-08-07 19:07:56.509707048 +0200 @@ -138,6 +138,11 @@ return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) ++++++ F00251-change-user-install-location.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.576947879 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.579947985 +0200 @@ -24,14 +24,14 @@ Co-authored-by: Michal Cyprian <[email protected]> Co-authored-by: Lumír Balhar <[email protected]> --- - Lib/sysconfig/__init__.py | 49 ++++++++++++++++++++++++++++++++++++++++++++- + Lib/sysconfig/__init__.py | 51 ++++++++++++++++++++++++++++++++++++++++++++- Lib/test/test_sysconfig.py | 17 +++++++++++++-- - 2 files changed, 63 insertions(+), 3 deletions(-) + 2 files changed, 65 insertions(+), 3 deletions(-) -Index: Python-3.14.0/Lib/sysconfig/__init__.py +Index: Python-3.14.7/Lib/sysconfig/__init__.py =================================================================== ---- Python-3.14.0.orig/Lib/sysconfig/__init__.py 2025-10-08 11:27:28.335887277 +0200 -+++ Python-3.14.0/Lib/sysconfig/__init__.py 2025-10-08 11:28:00.652215416 +0200 +--- Python-3.14.7.orig/Lib/sysconfig/__init__.py 2026-08-07 19:07:28.614805794 +0200 ++++ Python-3.14.7/Lib/sysconfig/__init__.py 2026-08-07 19:07:42.764435345 +0200 @@ -106,6 +106,11 @@ else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -115,10 +115,10 @@ 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.14.0/Lib/test/test_sysconfig.py +Index: Python-3.14.7/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.14.0/Lib/test/test_sysconfig.py 2025-10-08 11:28:00.653226898 +0200 +--- Python-3.14.7.orig/Lib/test/test_sysconfig.py 2026-08-07 19:07:31.527644402 +0200 ++++ Python-3.14.7/Lib/test/test_sysconfig.py 2026-08-07 19:07:42.765345312 +0200 @@ -132,8 +132,19 @@ for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: @@ -140,7 +140,7 @@ os.path.normpath(expected), ) -@@ -395,7 +406,7 @@ +@@ -397,7 +408,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))) -@@ -407,6 +418,8 @@ +@@ -409,6 +420,8 @@ cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" self.assertEqual(py.call_real(*cmd), py.call_link(*cmd)) ++++++ Python-3.14.6.tar.xz -> Python-3.14.7.tar.xz ++++++ /work/SRC/openSUSE:Factory/python314/Python-3.14.6.tar.xz /work/SRC/openSUSE:Factory/.python314.new.1258/Python-3.14.7.tar.xz differ: char 26, line 1 ++++++ Python-3.14.6.tar.xz.sigstore -> Python-3.14.7.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python314/Python-3.14.6.tar.xz.sigstore 2026-07-02 20:07:56.466234596 +0200 +++ /work/SRC/openSUSE:Factory/.python314.new.1258/Python-3.14.7.tar.xz.sigstore 2026-08-25 13:18:10.254901301 +0200 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIIDIjCCAqmgAwIBAgIULkeeHVLebzeKX+03cM5j8kDhiSgwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjEwMTMxMTEyWhcNMjYwNjEwMTMyMTEyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ+TWhqkbMElNdRRWS8DnLzynKtn9tf3UgFD0gf9cSoZDkq/B5tGR/DjiDMrZzh55GRs6bZa/+BYQH8awUAq/W6OCAcgwggHEMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQULkRpDZ2dwvwt+eV0xpF5mrc7ipIwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnrGoh70AAAQDAEgwRgIhAJlet4AMGmjtESDZwbTZP3JxqpkuPNLd2ynKoJSER6PPAiEAvlpy ohxYUFvrgalexO673wDjZDuAp2FgOVQvRrAbdjowCgYIKoZIzj0EAwMDZwAwZAIwMphCvp78RpPcyPuhHqMUNgbYMFHDcY2AB7FWETmVbpwhqaACSICPDkYmDwkH5H4gAjBVcklCSMj5TF8+ezEtsjsWH0ubihdYPmcyZcex3lJ7MHI1jsC00FMpt7ZCuzbKAMU="}, "tlogEntries": [{"logIndex": "1779450776", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1781097073", "inclusionPromise": {"signedEntryTimestamp": "MEQCIC7lJDNXEwW901DTrmqipF8X542vkKWpPrizH113LT30AiAjOXr76ssc7mmuc0tGONUh5NVvzQYZIbmK5hLaF+nQRA=="}, "inclusionProof": {"logIndex": "1657546514", "rootHash": "0m2umLO+lqcF7koOZP+01JIJJldfGMH8cDsdWVt0aMA=", "treeSize": "1657546545", "hashes": ["fX2kxxsiws+tyGDcuhm1Bcc5sA0jYheWqT261AsOFeA=", "rIqkz50Pnn6BtzHFC0HU7qxoXLTqZIT4BjaaacYJzWs=", "GViuZ0wlIU9G6I+yAqAFql5A57pkRWyYBpIXLg/oHLg=", "3rkkmOJp2MaBqtUH7f+1iZehvWIsMScIqgIPgBMVGxc=", "2kA2FuT2Y8ELOJOvDXltrByw483Js1R79fXuIFfVB7k=", "v/zSXPVfubc3/VCAy8CdjknD7ro87A3InMhVXc7Iz6Q=", "lfvD66pLCHkxLvHN AI9NmQlGnF/VuM8rxE4wHlMymtQ=", "YKXYAopRdd7Gaq+8RaEaNzT3lC/XGwrGusuWsPwAyxg=", "uZxh5RpoVTYrvwPqUFfYUd7V3MNDza3o4MCR70SHMDs=", "PUY304hukZpnE6QuNQYojqF3bYfbI29bEcDPo7CAebI=", "g+V3slT2z05RxYCCDoBaY6CX+OmrM/MhEcIrdc9U5cs=", "A4fJfaFHp2z9e1dHp9ADqQU6Lk0K292ifWE1buyw5sg=", "phbrqVrscGmqV5frx3cP3FZg0R9d16flgXnmF8YlBJs=", "JeFJuYar3D4uBzvMd7x3qts+CGhYQOGMaAiiYVFCxto=", "mDCdA8t/LGc+hqiV0SOyqPXlOYPyWpasRaDDvCC8JAE=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n1657546545\n0m2umLO+lqcF7koOZP+01JIJJldfGMH8cDsdWVt0aMA=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAkM2f0vvZfOvp1piRnKN1uUPwdIk7li+MXpcnopKsta4CIQCGS4DDntVzYa0gfFFgZkqW0PWB7SPLRpiGzoe2rpC2CQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxNDNiMWRkZGVmYWVjM2JkMmUyMWUzYjgzOWIzNGEyYjdmYjk4NDIyNzI4ODNjNTc2 NDIwZDYwNWU5ZjMwYzYzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQitJOTY2ZEg2K20zRktNeXdaRU8zaUdZQmFscGN2amJTQ3NEKzFHdTNqSUFpQThrNEZ5UzRxdS9mNTkzOVJwZ3Ayb1RVRlhaM1NSa3M3WGdpZkxqUmNsVUE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpha05EUVhGdFowRjNTVUpCWjBsVlRHdGxaVWhXVEdWaWVtVkxXQ3N3TTJOTk5XbzRhMFJvYVZObmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxUlhkTlZFMTRUVlJGZVZkb1kwNU5hbGwzVG1wRmQwMVVUWGxOVkVWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZLSzFSWGFIRnJZazFGYkU1a1VsSlhVemhFYmt4NmVXNUxkRzQ1ZEdZelZXZEdSREFLWjJZNVkxTnZXa1JyY1M5Q05YUkhVaTlFYW1sRVRYSmFlbWcxTlVkU2N6WmlXbUV2SzBKWlVVZzRZWGRWUVhFdlZ6WlBRMEZqWjNkblowaEZUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZNYTFKd0NrUmFNbVIzZG5kMEsyVldNSGh3UmpWdGNtT TNhWEJKZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhWGRaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamxDU0hOQlpWRkNNMEZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdWNrZHZhRGN3UVVGQlVVUkJSV2QzVW1kSmFFRktiR1VLZERSQlRVZHRhblJGVTBSYWQySlVXbEF6U25oeGNHdDFVRTVNWkRKNWJrdHZTbE5GVWpaUVVFRnBSVUYyYkhCNWIyaDRXVlZHZG5KbllXeGxlRTgyTndvemQwUnFXa1IxUVhBeVJtZFBWbEYyVW5KQlltUnFiM2REWjFsSlMyOWFTWHBxTUVWQmQwMUVXbmRCZDFwQlNYZE5jR2hEZG5BM09GSndVR0 41VUhWb0NraHhUVlZPWjJKWlRVWklSR05aTWtGQ04wWlhSVlJ0Vm1Kd2QyaHhZVUZEVTBsRFVFUnJXVzFFZDJ0SU5VZzBaMEZxUWxaamEyeERVMDFxTlZSR09Dc0taWHBGZEhOcWMxZElNSFZpYVdoa1dWQnRZM2xhWTJWNE0yeEtOMDFJU1RGcWMwTXdNRVpOY0hRM1drTjFlbUpMUVUxVlBRb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "FDsd3e+uw70uIeO4ObNKK3+5hCJyiDxXZCDWBenzDGM="}, "signature": "MEQCIB+I966dH6+m3FKMywZEO3iGYBalpcvjbSCsD+1Gu3jIAiA8k4FyS4qu/f5939Rpgp2oTUFXZ3SRks7XgifLjRclUA=="}} +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIDIjCCAqigAwIBAgIUJwHL/sXPKE0FKGU44o7RbsWWNaUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODA1MTMwNjA0WhcNMjYwODA1MTMxNjA0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETd9SIY+2Qsuh9jnhVD2tMDK1Ku6vjy8zQzKfspSaLuwTh6AVvdOTgb4lWmNuWtu6CzCSb0vG6tP8ShuQRsHwGaOCAccwggHDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU5RbcdwPk2PJ1F5t2kM/K6bMQi3kwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn9IH9O4AAAQDAEcwRQIhAMwPs/tssokDYD7+PHo6jibp/dg7h8LDrztLaLfoZGLUAiACnaZa82AOB K0gsFv3LlAETXoD9Uh3pirSA2orX2Ls4zAKBggqhkjOPQQDAwNoADBlAjAFR8L5tf+XhzkCHB0GXBhrDXVxD4kclB3PHJPevUCS8zg5es37Ybl2K3IV0721+h4CMQDov9tgIASRuZjTV/VxTK4KxyQM5KO+WPfwKaS7UkIIoyY3eBVOhjdKFomni7PBgeg="},"tlogEntries":[{"logIndex":"2345042428","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1785935165","inclusionPromise":{"signedEntryTimestamp":"MEMCH2GAxIMatN1qlhQB5H1qOcak8eXrqoGOwWw/9frSqSICIHlQ85JN734TYruogLQnab06gjGpULFgOrPBAw9y2Z7L"},"inclusionProof":{"logIndex":"2223138166","rootHash":"CxX/4eAnOT03MQIZVGB9RLEU2McdFaThNRM57VU/BqI=","treeSize":"2223138170","hashes":["89xKFo5K9PSjisoQaSLBYx1L8qZKZ8ktD4SUtwrqW98=","0hVXMx9tLmahgA5tomx1+a1QatvycHAdl14/E1cadtY=","DEtmO5PIOSYwu9sr6L72rBykWLgF7XQ72SbJkeh1G5g=","o5NlmTA0tsFyJ5rutoUUPT+xTarB4Yd8rMbEwjbBCgU=","6i2hDZKnGVncEjxVKBWwrbsKPhZ2UDBojVEoUnbWyZc=","UKiAy2s19pRVYsGGRC4jwgJnrtf0Ngjm7RvynrnVb88=","oS6YoqyS4Dzz894+NH02ui0gCvmU+i6nIvdxjdCfxlU=","LRzy82PWA eHovrma2IFEyp5h3kxZN9pnmseqC9s7o9k=","CiBJPCcXkjk5NV6/IoklFfeFA5D5bQ+5coRI3235O8M=","gXeMqd3b2MT1vbOtg8gSlsDzDXIHo3UZq1a6y5pu9kM=","/dkRzCcXQ8FFrhXMX/0eFhUm4McfZz3Y05UWkZKhiwI=","eP9vZN4l1LpRy4jDtU5NyWBNISJEhUysW6rcbcuQnrc=","ScH++eGfXwQDzE/H9Ae7YYnPqN5zAS9Hiq5LGoXV7Hg=","i5Zl8FZrDwxCDv2e2DNO2M8JvpR/c11ElvCZS53/teA=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2223138170\nCxX/4eAnOT03MQIZVGB9RLEU2McdFaThNRM57VU/BqI=\n\n— rekor.sigstore.dev wNI9ajBFAiEAwhVb8c7xoe6bebPMFYeSILeVZYFARU+JiygeZqPTidwCIFaYsuplm/r8ghga5DIBGvRRpMYyxsKQnGINIioslRX/\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzYjQ4ZGFjOGZiNTlmNjJlYWE2N2FjODNjMWViMTJiZGExYjdhMDg0MDZkZDI4NmUyNTJjMTFhNjZiZTI3ZjgxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRS9NY1RST29uaXFBUzFXdGNpRnR0Q3AxTVlPMVBJVFk1UXJqb2QrOU8zVEFpRUFod0ZTWFBzS1JhekdkS1JYNTBNblhS ODVENkpvOTc0bG5ZUkYyeUFJNHZNPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpha05EUVhGcFowRjNTVUpCWjBsVlNuZElUQzl6V0ZCTFJUQkdTMGRWTkRSdk4xSmljMWRYVG1GVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFUVRGTlZFMTNUbXBCTUZkb1kwNU5hbGwzVDBSQk1VMVVUWGhPYWtFd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZVWkRsVFNWa3JNbEZ6ZFdnNWFtNW9Wa1F5ZEUxRVN6RkxkVFoyYW5rNGVsRjZTMllLYzNCVFlVeDFkMVJvTmtGV2RtUlBWR2RpTkd4WGJVNTFWM1IxTmtONlExTmlNSFpITm5SUU9GTm9kVkZTYzBoM1IyRlBRMEZqWTNkblowaEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUxVW1KakNtUjNVR3N5VUVveFJqVjBNbXROTDBzMllrMVJhVE5yZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJe lNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhV2RaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamhDU0c5QlpVRkNNa0ZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdU9VbElPVTgwUVVGQlVVUkJSV04zVWxGSmFFRk5kMUFLY3k5MGMzTnZhMFJaUkRjclVFaHZObXBwWW5BdlpHYzNhRGhNUkhKNmRFeGhUR1p2V2tkTVZVRnBRVU51WVZwaE9ESkJUMEpMTUdkelJuWXpUR3hCUlFwVVdHOUVPVlZvTTNCcGNsTkJNbTl5V0RKTWN6UjZRVXRDWjJkeGFHdHFUMUJSVVVSQmQwNXZRVVJDYkVGcVFVWlNPRXcxZEdZcldHaDZhME5JUWpCSENsaENhSEpFV0ZaNFJEUnJZMnhDTTFCSVNsQmxkbFZEVXpoNlp6Vmxjek0zV1dKc01rc3pTVll3TnpJeEsyZzBRMDFSUkc5Mk9YUm5TVUZUVW5WYWFsUUtWaTlXZUZSTE5FdDRlVkZOTlV0UEsxZF FabmRMWVZNM1ZXdEpTVzk1V1RObFFsWlBhR3BrUzBadmJXNXBOMUJDWjJWblBRb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIIE6jADAgEAMIIE4QYJKoZIhvcNAQcCoIIE0jCCBM4CAQMxDTALBglghkgBZQMEAgEwgcMGCyqGSIb3DQEJEAEEoIGzBIGwMIGtAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg0pReFyoSWLwEwua9gL6kufSx3iX+0PUr3nTQ80v4lycCFQCb3dxATC1+8iEnhHHnc9Whk4WfNhgPMjAyNjA4MDUxMzA2MDRaMAMCAQECCQDjHlvIdcLy5KAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgggIUMIICEDCCAZagAwIBAgIUOhNULwyQYe68wUMvy4qOiyojiwwwCgYIKoZIzj0EAwMwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZDAeFw0yNTA0MDgwNjU5NDNaFw0zNTA0MDYwNjU5NDNaMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE4ra2Z8hKNig2T9kFjCAToGG30jky+WQv3BzL+mKvh1SKNR/UwuwsfNCg4sryoYAd8E6isovVA3M4aoNdm9QDi50Z8nTEyvqgfDPtTIwXItfiW/AFf1V7uwkbkAoj0xxco2owaDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFIn9eUOHz9BlRsMCR scsc1t9tOsDMB8GA1UdIwQYMBaAFJjsAe9/u1H/1JUeb4qImFMHic6/MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMAoGCCqGSM49BAMDA2gAMGUCMDtpsV/6KaO0qyF/UMsX2aSUXKQFdoGTptQGc0ftq1csulHPGG6dsmyMNd3JB+G3EQIxAOajvBcjpJmKb4Nv+2Taoj8Uc5+b6ih6FXCCKraSqupe07zqswMcXJTe1cExvHvvlzGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODA1MTMwNjA0WjAvBgkqhkiG9w0BCQQxIgQg7mO+uWHawutovqca2xJkkGRGxh+5OtWIssyQb8txfUYwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwGXj4AEZVGYpeBu7WKs02mMJTYUITSvliTWDVbz0LALtrQbjkMUUXQLPCK0iAN0ATAjAMYZuyx6bE0AqyktDyFgzHW5q2PXj2qrGwSfYM1vRwzyKWqs/RHazZx/OpY4KxrRE="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"O0jayPtZ9i6qZ6yDwesSvaG3oIQG3ShuJSwRpm vif4E="},"signature":"MEUCIE/McTROoniqAS1WtciFttCp1MYO1PITY5Qrjod+9O3TAiEAhwFSXPsKRazGdKRX50MnXR85D6Jo974lnYRF2yAI4vM="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.688951825 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.691951931 +0200 @@ -1,6 +1,6 @@ -mtime: 1782986586 -commit: a1c64fe7cbc52ac1301387f243433e55c9bbf8797f1b1a1ff9e90094e634812a +mtime: 1786226926 +commit: e06431a9366afc49ed25c82716104f583cc21924c0499233d64bd2860f6ac67d url: https://src.opensuse.org/python-interpreters/python314 -revision: a1c64fe7cbc52ac1301387f243433e55c9bbf8797f1b1a1ff9e90094e634812a +revision: e06431a9366afc49ed25c82716104f583cc21924c0499233d64bd2860f6ac67d projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.717952847 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.720952952 +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.14.6/Doc/library/ensurepip.rst +Index: Python-3.14.7/Doc/library/ensurepip.rst =================================================================== ---- Python-3.14.6.orig/Doc/library/ensurepip.rst 2026-06-10 12:03:53.000000000 +0200 -+++ Python-3.14.6/Doc/library/ensurepip.rst 2026-06-16 10:12:08.808157797 +0200 +--- Python-3.14.7.orig/Doc/library/ensurepip.rst 2026-08-05 12:29:49.000000000 +0200 ++++ Python-3.14.7/Doc/library/ensurepip.rst 2026-08-07 19:07:51.165024311 +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,10 +57,10 @@ .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: -Index: Python-3.14.6/Lib/ensurepip/__init__.py +Index: Python-3.14.7/Lib/ensurepip/__init__.py =================================================================== ---- Python-3.14.6.orig/Lib/ensurepip/__init__.py 2026-06-16 10:10:25.098374643 +0200 -+++ Python-3.14.6/Lib/ensurepip/__init__.py 2026-06-16 10:12:08.808547231 +0200 +--- Python-3.14.7.orig/Lib/ensurepip/__init__.py 2026-08-07 19:07:27.557696407 +0200 ++++ Python-3.14.7/Lib/ensurepip/__init__.py 2026-08-07 19:07:51.165813440 +0200 @@ -107,27 +107,27 @@ os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -123,10 +123,10 @@ upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, -Index: Python-3.14.6/Lib/test/test_ensurepip.py +Index: Python-3.14.7/Lib/test/test_ensurepip.py =================================================================== ---- Python-3.14.6.orig/Lib/test/test_ensurepip.py 2026-06-16 10:10:26.627138884 +0200 -+++ Python-3.14.6/Lib/test/test_ensurepip.py 2026-06-16 10:12:08.808857075 +0200 +--- Python-3.14.7.orig/Lib/test/test_ensurepip.py 2026-08-07 19:07:30.013341441 +0200 ++++ Python-3.14.7/Lib/test/test_ensurepip.py 2026-08-07 19:07:51.166362306 +0200 @@ -110,6 +110,17 @@ unittest.mock.ANY, ) @@ -145,11 +145,11 @@ def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.14.6/Makefile.pre.in +Index: Python-3.14.7/Makefile.pre.in =================================================================== ---- Python-3.14.6.orig/Makefile.pre.in 2026-06-16 10:10:41.827230687 +0200 -+++ Python-3.14.6/Makefile.pre.in 2026-06-16 10:12:08.809364732 +0200 -@@ -2377,7 +2377,7 @@ +--- Python-3.14.7.orig/Makefile.pre.in 2026-08-07 19:07:47.331586072 +0200 ++++ Python-3.14.7/Makefile.pre.in 2026-08-07 19:07:51.166473302 +0200 +@@ -2383,7 +2383,7 @@ install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -158,7 +158,7 @@ fi .PHONY: altinstall -@@ -2388,7 +2388,7 @@ +@@ -2394,7 +2394,7 @@ install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -167,10 +167,10 @@ fi .PHONY: commoninstall -Index: Python-3.14.6/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.14.7/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.14.6/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-06-16 10:12:08.809892476 +0200 ++++ Python-3.14.7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-08-07 19:07:51.168369163 +0200 @@ -0,0 +1 @@ +A directory prefix can now be specified when using :mod:`ensurepip`. ++++++ bsc1260884-llvm21-support.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.736953516 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.740953657 +0200 @@ -47,16 +47,16 @@ 6 files changed, 129 insertions(+), 47 deletions(-) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst -Index: Python-3.14.5/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst +Index: Python-3.14.7/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ Python-3.14.5/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst 2026-06-09 17:46:26.697055741 +0200 ++++ Python-3.14.7/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst 2026-08-07 19:11:47.992178177 +0200 @@ -0,0 +1 @@ +Update JIT compilation to use LLVM 21 at build time. -Index: Python-3.14.5/Python/jit.c +Index: Python-3.14.7/Python/jit.c =================================================================== ---- Python-3.14.5.orig/Python/jit.c 2026-05-10 12:21:34.000000000 +0200 -+++ Python-3.14.5/Python/jit.c 2026-06-09 17:46:26.697445194 +0200 +--- Python-3.14.7.orig/Python/jit.c 2026-08-05 12:29:49.000000000 +0200 ++++ Python-3.14.7/Python/jit.c 2026-08-07 19:11:47.993026779 +0200 @@ -355,15 +355,43 @@ } @@ -198,10 +198,10 @@ if (mark_executable(memory, total_size)) { jit_free(memory, total_size); return -1; -Index: Python-3.14.5/Tools/jit/README.md +Index: Python-3.14.7/Tools/jit/README.md =================================================================== ---- Python-3.14.5.orig/Tools/jit/README.md 2026-05-10 12:21:34.000000000 +0200 -+++ Python-3.14.5/Tools/jit/README.md 2026-06-09 17:46:26.697785736 +0200 +--- Python-3.14.7.orig/Tools/jit/README.md 2026-08-05 12:29:49.000000000 +0200 ++++ Python-3.14.7/Tools/jit/README.md 2026-08-07 19:11:47.993737500 +0200 @@ -9,32 +9,32 @@ The JIT compiler does not require end users to install any third-party dependencies, but part of it must be *built* using LLVM[^why-llvm]. You are *not* required to build the rest of CPython using LLVM, or even the same version of LLVM (in fact, this is uncommon). @@ -263,10 +263,10 @@ ## Building -Index: Python-3.14.5/Tools/jit/_llvm.py +Index: Python-3.14.7/Tools/jit/_llvm.py =================================================================== ---- Python-3.14.5.orig/Tools/jit/_llvm.py 2026-06-09 17:44:38.670623837 +0200 -+++ Python-3.14.5/Tools/jit/_llvm.py 2026-06-09 17:47:08.195123227 +0200 +--- Python-3.14.7.orig/Tools/jit/_llvm.py 2026-08-07 19:07:32.941986588 +0200 ++++ Python-3.14.7/Tools/jit/_llvm.py 2026-08-07 19:11:47.994376125 +0200 @@ -10,11 +10,11 @@ import _targets @@ -334,10 +334,10 @@ # Nothing found: return None -Index: Python-3.14.5/Tools/jit/_stencils.py +Index: Python-3.14.7/Tools/jit/_stencils.py =================================================================== ---- Python-3.14.5.orig/Tools/jit/_stencils.py 2026-06-09 17:44:38.674278273 +0200 -+++ Python-3.14.5/Tools/jit/_stencils.py 2026-06-09 17:46:26.698349709 +0200 +--- Python-3.14.7.orig/Tools/jit/_stencils.py 2026-08-07 19:07:32.947781493 +0200 ++++ Python-3.14.7/Tools/jit/_stencils.py 2026-08-07 19:11:47.994780488 +0200 @@ -274,6 +274,23 @@ self._trampolines.add(ordinal) hole.addend = ordinal @@ -362,10 +362,10 @@ self.code.remove_jump() self.code.add_nops(nop=nop, alignment=alignment) self.data.pad(8) -Index: Python-3.14.5/Tools/jit/_targets.py +Index: Python-3.14.7/Tools/jit/_targets.py =================================================================== ---- Python-3.14.5.orig/Tools/jit/_targets.py 2026-06-09 17:44:38.676793727 +0200 -+++ Python-3.14.5/Tools/jit/_targets.py 2026-06-09 17:46:26.698569463 +0200 +--- Python-3.14.7.orig/Tools/jit/_targets.py 2026-08-07 19:07:32.950821379 +0200 ++++ Python-3.14.7/Tools/jit/_targets.py 2026-08-07 19:11:47.995200170 +0200 @@ -150,10 +150,6 @@ "-fno-asynchronous-unwind-tables", # Don't call built-in functions that we can't find or patch: ++++++ 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-08-09 00:08:46.000000000 +0200 @@ -0,0 +1,5 @@ +.osc +*.obscpio +_build.* +.pbuild +python314-*-build/ ++++++ fix-test-recursion-limit-15.6.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.894959083 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.897959189 +0200 @@ -2,10 +2,10 @@ Lib/test/test_compile.py | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.14.2/Lib/test/test_compile.py +Index: Python-3.14.7/Lib/test/test_compile.py =================================================================== ---- Python-3.14.2.orig/Lib/test/test_compile.py 2025-12-11 18:10:57.011786647 +0100 -+++ Python-3.14.2/Lib/test/test_compile.py 2025-12-11 18:12:09.732814688 +0100 +--- Python-3.14.7.orig/Lib/test/test_compile.py 2026-08-07 19:07:29.577410021 +0200 ++++ Python-3.14.7/Lib/test/test_compile.py 2026-08-07 19:08:56.591253471 +0200 @@ -24,6 +24,9 @@ from test.support.bytecode_helper import instructions_with_positions from test.support.os_helper import FakePath @@ -29,7 +29,7 @@ @support.cpython_only @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") + @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586") + @support.run_with_limited_c_stack( + 100_000 if sys.platform == "android" else 500_000) @support.skip_emscripten_stack_overflow() - def test_compiler_recursion_limit(self): - # Compiler frames are small ++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.962961479 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.965961585 +0200 @@ -2,11 +2,11 @@ Makefile.pre.in | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.14.2/Makefile.pre.in +Index: Python-3.14.7/Makefile.pre.in =================================================================== ---- Python-3.14.2.orig/Makefile.pre.in 2025-12-11 18:11:54.290805770 +0100 -+++ Python-3.14.2/Makefile.pre.in 2025-12-11 18:11:58.776792838 +0100 -@@ -1914,6 +1914,11 @@ +--- Python-3.14.7.orig/Makefile.pre.in 2026-08-05 12:29:49.000000000 +0200 ++++ Python-3.14.7/Makefile.pre.in 2026-08-07 19:07:47.331586072 +0200 +@@ -1922,6 +1922,11 @@ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c ++++++ skip-test_pyobject_freed_is_freed.patch ++++++ --- /var/tmp/diff_new_pack.qBDkgO/_old 2026-08-25 13:18:11.995962641 +0200 +++ /var/tmp/diff_new_pack.qBDkgO/_new 2026-08-25 13:18:11.999962783 +0200 @@ -2,11 +2,11 @@ Lib/test/test_capi/test_mem.py | 1 + 1 file changed, 1 insertion(+) -Index: Python-3.14.0b4/Lib/test/test_capi/test_mem.py +Index: Python-3.14.7/Lib/test/test_capi/test_mem.py =================================================================== ---- Python-3.14.0b4.orig/Lib/test/test_capi/test_mem.py 2025-07-09 07:53:00.072386821 +0200 -+++ Python-3.14.0b4/Lib/test/test_capi/test_mem.py 2025-07-09 07:55:44.206338886 +0200 -@@ -114,6 +114,7 @@ +--- Python-3.14.7.orig/Lib/test/test_capi/test_mem.py 2026-08-07 19:07:29.451027316 +0200 ++++ Python-3.14.7/Lib/test/test_capi/test_mem.py 2026-08-07 19:07:53.946506450 +0200 +@@ -119,6 +119,7 @@ def test_pyobject_forbidden_bytes_is_freed(self): self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed')
