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-10-13 17:43:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python314 (Old) and /work/SRC/openSUSE:Factory/.python314.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python314" Tue Oct 13 17:43:20 2026 rev:41 rq:1382826 version:3.14.8 Changes: -------- --- /work/SRC/openSUSE:Factory/python314/python314.changes 2026-09-23 14:32:51.302080728 +0200 +++ /work/SRC/openSUSE:Factory/.python314.new.3698736/python314.changes 2026-10-13 17:43:33.448819845 +0200 @@ -1,0 +2,641 @@ +Fri Oct 2 21:57:55 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.14.8: + - Security + - gh-158446: Fix a crash or incorrect output that could occur + when formatting a float or complex with a precision close + to the platform’s INT_MAX. PyOS_double_to_string() now + raises ValueError for any precision of that magnitude, + regardless of presentation type or value, as the format + string parsers already did for precisions above INT_MAX. + - gh-156793: asyncio: loop.start_tls() and + loop.create_connection() now validate the server_hostname + argument if an ssl.SSLContext is passed with check_hostname + set to True. (bsc#1283826, CVE-2026-19553) + - gh-156793: ssl.SSLContext.wrap_bio() now validates its + server_side, server_hostname and session arguments similar + to ssl.SSLContext.wrap_socket(). + - In particular, a context with check_hostname enabled and no + server_hostname passed to wrap_bio() now raises ValueError + instead of completing a handshake that verified the + certificate chain without verifying the peer’s identity, + with no indication that the check had been skipped. + - gh-157953: Update bundled libexpat to version 2.8.5. + - gh-156002: Bound the amount of data zipfile decompresses + per read for members compressed with bzip2, LZMA, or + Zstandard, matching the existing limit for deflate. A small + archive member could previously expand into an unbounded + allocation even when read in small chunks. (bsc#1277111, + CVE-2026-15310) + - gh-155999: Fix the tarfile tar and data extraction filters + creating directories outside the destination for members + whose name leaves the destination and returns to it, such + as ../evil/../dest/sub/file. The containment check used the + resolved path, but intermediate directories were created + from the name as given. (bsc#1276227, CVE-2026-19672) + - gh-156293: Fix a crash in ssl when an sni_callback switches + a connection to another SSLContext and the context that + carries the callback is no longer referenced by the + application. Servers that keep their sni_callback context + alive (the usual case when it wraps the listening socket or + is stored on the server object) were not affected. This + addresses CVE 2026-19445. (bsc#1283969, CVE-2026-19445) + - gh-155292: Change the stringprep module and encodings.idna + codec to not consider Unicode codepoint attributes beyond + those defined in RFC 3454. (bsc#1276226, CVE-2026-17084) + - gh-155694: Fix CVE 2026-15806 by scoping HTTPPasswordMgr + credentials to the URL scheme, preventing credentials + stored for an HTTPS URL from being used for a matching HTTP + URL, while URIs without a scheme continue to match any + scheme. (bsc#1276223, CVE-2026-15806) + - Core and Builtins + - gh-158364: Fix crash when sys._current_frames() or + sys._current_exceptions() is called while another + interpreter is running. + - gh-158254: Reverse iterators over a dict and its views now + raise RuntimeError if the dictionary’s keys change during + iteration, like forward iterators, instead of yielding + entries for the new keys. + - gh-157838: Merge biased reference counts on behalf of + threads that are detached instead of waiting for them to + attach again, in the free-threaded build. + - gh-157378: Fix SyntaxError.offset and + SyntaxError.end_offset for the “Non-UTF-8 code starting + with …” error when a non-ASCII character precedes the + invalid byte on the same line. Patch by Shamil Abdulaev. + - gh-156762: Fix undefined behaviour in + operator.methodcaller: its tp_clear slot function returned + void instead of int, so the garbage collector called it + through an incompatible function type. Patched by Shamil + Abdulaev. + - gh-157377: Fix gc.get_count() on the free-threaded build + resetting the thread-local allocation counter that + schedules automatic garbage collection. A thread that + called it while allocating could prevent cyclic garbage + from ever being collected. + - gh-156091: Fix a crash when compiling deeply nested inlined + list, set, or dict comprehensions. A SyntaxError is now + raised when the nesting exceeds the compiler’s static + block limit. + - gh-156894: Fix the position of syntax errors which cover a + range if the line contains non-ASCII characters before the + error. + - gh-155525: Fix quadratic-time tokenization of modules + containing many f-strings or t-strings. + - gh-156689: Fix an out-of-bounds read in compile() and + ast.parse() when an AST object is passed with + mode='func_type'. + - gh-156371: Fix missing PyRefTracer_DESTROY events for + trashcan deferred objects. Patch by Donghee Na. + - gh-156114: Fix a crash in the perf trampoline when a code + object has a name or filename that cannot be encoded to + UTF-8. Patched by Shamil Abdulaev. + - gh-156126: Fix a crash when importing a module whose name + contains characters that cannot be encoded to UTF-8 (such + as lone surrogates) while -X importtime is enabled. + - gh-155752: Fix a crash when a types.GenericAlias argument + gains a __typing_subst__ hook after the alias parameters + have been cached. + - gh-155504: Fix a crash when thread state creation fails + before the thread state is fully initialized. + - gh-155526: Fix spurious OverflowError for abs(nanj) in case + errno was previously set to ERANGE by some library call. + Patch by Sergey B Kirpichev. + - gh-129752: Don’t update adaptive counters in the + free-threaded build when thread-local bytecode is disabled + (-X tlbc=0). Patch by Donghee Na. + - gh-155515: Track the internal HAMT iterators, which back + iteration over a contextvars.Context, with the garbage + collector. A reference cycle running through such an + iterator was never collected, leaking the whole context it + iterated over. + - gh-154937: Fix a data race on thread handle identifiers + when _thread._shutdown() runs concurrently with the startup + of non-daemon threads in the free-threaded build. + - gh-154902: Fix a crash when __conditional_annotations__ is + rebound to a non-set object. + - gh-151464: Exclude invalid token <> from tokenize output. + SyntaxError for <> now suggests !=. + - gh-154719: Trailing whitespace in a t-string interpolation + expression is now preserved in + string.templatelib.Interpolation.expression, up to the + closing } or the conversion (!), format (:), or debug (=) + delimiter. Explicit line continuations following a debug = + remain part of the debug text and are excluded from + expression. Escaped quotes are now preserved while + reconstructing t-string interpolation metadata and f-string + debug text containing comments. + - gh-153578: Fix an out-of-bounds write in bytearray.extend() + when the bytearray is resized while the argument’s + __buffer__() is being acquired, for example by another + thread. Patch by tonghuaroot. + - gh-148817: Fold large constant list and set literals used + as the iterable of a for loop or in/not in test into a + constant tuple or frozenset, restoring an optimization + previously done by the AST optimizer that was lost when + constant folding moved to the CFG. + - gh-146096: Fixed segmentation fault when called repr for + BaseExceptionGroup with empty or 1-size tuple args. + - gh-85260: compile() now raises ValueError instead of + crashing on a debug build if an identifier field of an AST + node (such as the name of a function, a class, an imported + module or a caught exception) is "None", "True" or "False". + - Library + - gh-158169: Fix zlib.Decompress.unconsumed_tail duplicating + unused_data after end of stream when max_length was used. + - gh-157788: Fix python -m asyncio ps failing on a process + that has a task with a name longer than 255 characters. + - gh-157660: Fix _remote_debugging reporting errors or + incorrect line numbers in free-threaded builds when a + thread-local bytecode array grows or gains entries after + being cached. + - gh-157672: Fix tkinter on macOS: creating a Tk instance no + longer replaces the Python handlers of SIGINT, SIGHUP and + SIGTERM with Tk’s handler which exits the process, so + Ctrl-C raises KeyboardInterrupt again. + - gh-157639: Fix a crash in cProfile when an external timer + re-enters the profiler. Profiling events raised while the + external timer runs are now ignored. + - gh-69919: code.InteractiveInterpreter.runsource() and the + REPL now report any exception raised by compiling the + source, such as MemoryError or RecursionError for too + deeply nested source, instead of propagating it or printing + a traceback of the REPL internals. + - gh-157451: Fix gettext plural form selection when the + Plural-Forms expression combines the unary ! operator with + a binary operator, for example !n + 1 or 2 * !n. The latter + raised SyntaxError. + - gh-157335: Fix out-of-bounds write in mmap.mmap.__setitem__ + that could occur when converting the index or the assigned + value (via __index__() for a single item, or via the buffer + protocol for a slice) resized or closed the mmap object + during the assignment. + - gh-157406: Fix the Python implementation of + xml.etree.ElementTree.XMLParser: the doctype() method of + the target is now called for a document type declaration + without an external identifier, like <!DOCTYPE html>, as in + the C implementation. + - gh-128509: marshal.load() and marshal.loads() can now get + 1-byte string singletons. Patch by Victor Stinner. + - gh-157325: Fix an out-of-bounds read in the hz incremental + decoder when the input ends with ~. + - gh-157213: Fix asyncio.gather() leaving stale await-graph + edges on children that outlive it. + - gh-156002: zipfile again reads members through a + third-party decompressor installed by monkey-patching the + private _get_decompressor() to return an object that only + implements old BZ2Decompressor API from Python 3.3. Note + that decompressors without needs_input and two-argument + decompress() are vulnerable to CVE 2026-15310. + (bsc#1277111, CVE-2026-15310) + - gh-157159: The usage message printed by python -m tabnanny + when no arguments are given now suggests python -m instead + of the source file. + - gh-123018: Fix readline.write_history_file() and + readline.append_history_file() producing a history file + that readline.read_history_file() could not load when a + limit was set with readline.set_history_length() and Python + was built against libedit. This works around NetBSD PR + 60322. + - gh-157058: asyncio.wait_for() with a non-positive timeout + now records the waiter in the call graph. + - gh-156933: Fix incorrect integer return values from ctypes + callbacks on some platforms, such as s390x. + - gh-157048: Preserve the position and contents of io.BytesIO + when BytesIO.__init__() fails because a buffer is exported. + - gh-156961: Fix tkinter.font.nametofont() and the + tkinter.font.Font constructor for a font name returned by + Tk as a Tcl object, for example by ttk.Style.lookup(). + - gh-156988: asyncio.print_call_graph() no longer truncates + the call stack at a synchronous generator. + - gh-156970: Set the docstring of + unittest.mock.Mock.return_value. + - gh-156946: Fix a crash in curses.panel when the finalizer + of a panel’s user pointer runs while the panel is being + deallocated. The panel is now taken off the panel stack + before its user pointer is dropped. + - gh-156797: Fix xml.sax.saxutils.XMLGenerator: the namespace + URI is now escaped in the namespace declaration. Previously + a URI containing &, < or a quote character produced a + document which cannot be parsed. + - gh-83895: xml.etree.ElementTree now accepts input larger + than 2 GiB in the C implementation. The data is fed to + Expat in chunks, as xml.parsers.expat already did, instead + of raising OverflowError. + - gh-99064: Fix xml.etree.ElementTree.parse() with a text + file or other source of str data in the C implementation. + The encoding declared in the document was applied to the + already decoded text, which produced mojibake. It is now + ignored, as when parsing with XMLParser.feed() or + fromstring(). + - gh-156713: Fix nturl2path.pathname2url() and + nturl2path.url2pathname(): the filesystem encoding and + error handler are now used for percent-encoding and + decoding, as in urllib.request. Previously paths containing + surrogate characters raised UnicodeEncodeError. + - gh-127057: Fix asyncio.ProactorEventLoop UDP transports so + that a ConnectionResetError raised by WSARecvFrom no longer + stops the read loop. + - gh-156658: xml.dom and xml.etree.ElementTree no longer + treat characters which are not white space in XML (such as + U+00A0) as white space. Previously they could be lost in + indent(), canonicalize() with strip_text=True, and when + parsing with the whitespace-in-element-content feature + turned off. + - gh-156512: Fix asyncio losing a connection twice when + resume_writing() closes the transport. + - gh-156523: Fix asyncio.as_completed() not recording the + awaiting task in the call graph. + - gh-156476: The pure Python implementation of + queue.SimpleQueue.get() now ignores timeout when block is + false, matching the documented behavior and the C + implementation. It previously raised ValueError. + - gh-156444: Fix matching of a negated character set in a + bytes pattern compiled with both re.IGNORECASE and + re.LOCALE. The case closure is now applied to the members + of the set, so that [^bc] no longer matches b'B'. + - gh-156408: Fix asyncio.print_call_graph() raising + AttributeError when called on a task that has already + finished. + - gh-156353: Fix configparser parsing when using whitespace + in delimiters. + - gh-156166: ssl: A failed assignment or deletion of the + _msg_callback attribute of ssl.SSLContext no longer removes + the current callback. Deleting it now raises AttributeError + instead of TypeError. + - gh-156173: Calling zlib.Decompress.flush() on invalid + compressed data now raises zlib.error instead of being + silently ignored. + - gh-152817: sqlite3: Disallow removing the row_factory + attribute of a cursor to prevent a crash on a query. + - gh-156124: Fix a crash in the free-threaded build when + deleting the contents attribute of a ctypes pointer. + - gh-156112: _ios_support no longer fails to import when + ctypes.util.find_library() cannot resolve the ObjC runtime + through the dyld shared cache, as is the case on iOS 13. + The runtime is now loaded by name, which dyld resolves + against the cache directly. + - gh-156101: Fix sqlite3.Cursor.arraysize being set to 0 if + the assigned value is too large. The attribute is now left + unchanged if the assignment fails. + - gh-156100: Fix crashes in sqlite3.Connection when deleting + the autocommit attribute or setting it to an integer which + does not fit in C long. Both now raise an exception. + - gh-156099: Fix a crash when deleting the keylog_filename + attribute of ssl.SSLContext. It now raises AttributeError. + - gh-156067: Fix error handling in the zoneinfo accelerator + module when a transition index is -1 or a TZ string’s + __bool__ raises. + - gh-155997: Fix concurrent.interpreters.list_all(). It + failed if an interpreter was destroyed during the call, in + particular by a garbage collection which finalized the + object owning the last reference to it. + - gh-155941: Fix asyncio.start_server() when a plain-function + client_connected_cb raises: the error is now reported like + the coroutine case and the transport is closed, instead of + leaving the connection open forever (which also made + asyncio.Server.wait_closed() hang). ++++ 344 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python314/python314.changes ++++ and /work/SRC/openSUSE:Factory/.python314.new.3698736/python314.changes Old: ---- CVE-2026-15310-bound-zipfile-decompression.patch CVE-2026-15310-keep-through-3rd-party-decomp.patch CVE-2026-17084-stringprep-rfc3454.patch CVE-2026-19672-tarfile-outside-dirs.patch Python-3.14.7.tar.xz Python-3.14.7.tar.xz.sigstore New: ---- Python-3.14.8.tar.xz Python-3.14.8.tar.xz.sigstore ----------(Old B)---------- Old: * CVE-2026-19672-tarfile-outside-dirs.patch * CVE-2026-15310-bound-zipfile-decompression.patch * CVE-2026-15310-keep-through-3rd-party-decomp.patch Old: * CVE-2026-15310-bound-zipfile-decompression.patch * CVE-2026-15310-keep-through-3rd-party-decomp.patch Old:- Removed upstreamed patches: * CVE-2026-17084-stringprep-rfc3454.patch * CVE-2026-19672-tarfile-outside-dirs.patch Old: * CVE-2026-17084-stringprep-rfc3454.patch * CVE-2026-19672-tarfile-outside-dirs.patch * CVE-2026-15310-bound-zipfile-decompression.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python314.spec ++++++ --- /var/tmp/diff_new_pack.COtQrs/_old 2026-10-13 17:43:35.103889204 +0200 +++ /var/tmp/diff_new_pack.COtQrs/_new 2026-10-13 17:43:35.106889330 +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.7 +Version: 3.14.8 %define tarversion %{version} %define tarname Python-%{tarversion} Release: 0 @@ -237,17 +237,6 @@ # 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-17084-stringprep-rfc3454.patch bsc#1276226 Matej Cepl <[email protected]> -# Don't consider Unicode codepoint attributes outside RFC 3454 -Patch58: CVE-2026-17084-stringprep-rfc3454.patch -# PATCH-FIX-UPSTREAM CVE-2026-19672-tarfile-outside-dirs.patch bsc#1276227 [email protected] -# in tarfile, handle a member that leaves the destination and comes back -Patch59: CVE-2026-19672-tarfile-outside-dirs.patch -# PATCH-FIX-UPSTREAM CVE-2026-15310-bound-zipfile-decompression.patch bsc#1277111 [email protected] -# Bound zipfile decompression for bzip2/LZMA/Zstandard (gh#python/cpython!156003) -Patch60: CVE-2026-15310-bound-zipfile-decompression.patch -# Keep reading through third-party zipfile decompressors (gh#python/cpython!157180) -Patch61: CVE-2026-15310-keep-through-3rd-party-decomp.patch #### Python 3.14 END OF PATCHES BuildRequires: autoconf-archive BuildRequires: automake ++++++ Python-3.14.7.tar.xz -> Python-3.14.8.tar.xz ++++++ /work/SRC/openSUSE:Factory/python314/Python-3.14.7.tar.xz /work/SRC/openSUSE:Factory/.python314.new.3698736/Python-3.14.8.tar.xz differ: char 26, line 1 ++++++ Python-3.14.7.tar.xz.sigstore -> Python-3.14.8.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python314/Python-3.14.7.tar.xz.sigstore 2026-08-25 13:18:10.254901301 +0200 +++ /work/SRC/openSUSE:Factory/.python314.new.3698736/Python-3.14.8.tar.xz.sigstore 2026-10-13 17:43:33.412818337 +0200 @@ -1 +1 @@ -{"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="}} +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIDIzCCAqmgAwIBAgIUXX9vTdbytXGl+K/hplj6ltJC4GkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTMwMjE0MTQxWhcNMjYwOTMwMjE1MTQxWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEA2q3DfAFEC8H7lDswZRA6iqAydHRF/JRKBsNVhyMf4e9CJC2zInHzhonlJ4GIZNw7ZZD2zRt/nI/P9T03wqhI6OCAcgwggHEMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUm9RLBT0mszyf5nhywbcHQpq5LqcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoPREJWgAAAQDAEgwRgIhALfTT37Ct8Dvi5fX1YV6IVbBY9akAoRtkozWgkdcsZM4AiEAulVhuNRDg tFgdiBoy/HO6pSZJl3CLBaZKsc9OuDsgqowCgYIKoZIzj0EAwMDaAAwZQIwcG8B26ugTW5u8JTyF4kzOzy02i3mz89QAaAioOsOTJB9WyL9VCJOq6e48XVN8BzKAjEAzSkEnJefy/RcNTdASe96rmrTj6uz8wjuIjyXcL2B86L7ZRhNuI/x/xheq7xBW7Bb"},"tlogEntries":[{"logIndex":"3025656141","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1790804503","inclusionPromise":{"signedEntryTimestamp":"MEQCID/vNNVU82a8FyqhqCDC7Xex49S2y3JFtchrwAGbJASNAiBJ4mxl9wIF635Qlc27gMS0us8cZ8WI73qfGsuS72kUdg=="},"inclusionProof":{"logIndex":"2903751879","rootHash":"xWX3rqpbKVsCXdX0Y07X+VofUdgW3lWsuV9qRtMqr7A=","treeSize":"2903752325","hashes":["pOerDpVX0uD8aqRM9OK9PRtX8TztpojPcGVCesBp09w=","cJ1jqLVNgOIh+uTHgrvauQIm+dSFtET3dzam3NsZB9E=","2soBq++VUbrV87RpC14Jl9R54PqVvE4iZlFLMAYbgSU=","QyndA8LW13kdxY4Z8RCMLPQCNcjW+alz3eeIACWnFWU=","ceJBQlKKYyz6HXYcLlqOSwpNGHGgDmJQvRDCQEBLn40=","ia3D5AIPQ/BTbvWbGo+hh/2fz8oDhY1qnVXxbqrDcTo=","oJGMIUl71mDWJKqmZUxV0CXnMjxwZAT8VtRmL0LH0mo=","CRzQ1 jYFDEvGX8t8h2stTcOk7cPTLfo+ok9Su4ghEkE=","d1DGxrLlhy/zktZHOgP+HjuAzjOO5GW1AA/8Y+5vCws=","tlCbfVcfxeWorEFRbBh5ENfQ2Lb7oAjmJJ+IrlwwCC8=","LyrQ/DwuTf0ptP2dIKDQY3WIlk7EnrYrgUDz0j/wocI=","TORIaLCaXdLffOeX5dOBeaWmBSKujT8N8XuWqsO4dZE=","1RZ4LXP3kcUcz9OFgD9jiDGuKl47szEZIT/X7H30PVw=","Mcy3vj5SBbTnbY/VvBC1QNcG245whRck98dg5KXMqAI=","3VG5L7XFABFbkeVYBK9keJ2VwiENK/IbzcIYFLVs+ug=","+hYmNr7OpCvyrD0bGDu4qfSIAfl0HSyQmRH0ntaYgAQ=","iHYTNMK1bm+YyTTISnpIO6Z8vyDmDYV7Ch2F9uHBsDw=","q/pQ6S7fW7v/MxJNKfeQEMe8YsVBYpZ0/cZuDXVb3Zk=","cIz1OY2tO8cVEgp0TmAffPApps2hJuAcAN+pESrpHHY=","4lYk7cX8PszZLoyQMWjMDB1BOBn4f7hehtFiHo92e5Y=","ttpxd0TJprOUtb/8Wf5DeIzwNtUw72Q0YnXE2LFMIZo=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2903752325\nxWX3rqpbKVsCXdX0Y07X+VofUdgW3lWsuV9qRtMqr7A=\n\n— rekor.sigstore.dev wNI9ajBGAiEAm8o3UHmHTp6NEuZZvmgRurczlKXySx9pBKtRoxsHxQECIQD3F9Sx8+AlwOuLS3cnX+31x2lYPy508OXgHF7VKk2 6Ew==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjMjIxNTkwNGYwMmIxNzU1OTZkYzQ5MzUxNTg1MTA0ZjRiYzIwMzQxZTFjNDczNzhiMjZhMmMyNzQzNjBjZTczIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRmhVY1RrT2E4MzROY3ZvdVJJTnpIdndLQjl4Qjh6dDFkdlhSWGU4UU9NUEFpRUEzOHV2dXh4ZVhqSEw1M1pZUVEwZFZRQ2lVNWhZblhSd1d5MUJwNVhpNHFvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpla05EUVhGdFowRjNTVUpCWjBsVldGZzVkbFJrWW5sMFdFZHNLMHN2YUhCc2FqWnNkRXBETkVkcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVVFhkTmFrVXdUVlJSZUZkb1kwNU5hbGwzVDFSTmQwMXFSVEZOVkZGNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZCTW5FelJHWkJSa1ZET0VnM2JFUnpkMXBTUVRacGNVRjVaRWhTUmk5S1VrdENjMDRLVm1oNVRXWTBaVGxEU2tNeWVrbHVTSHBvYjI1c 1NqUkhTVnBPZHpkYVdrUXllbEowTDI1SkwxQTVWREF6ZDNGb1NUWlBRMEZqWjNkblowaEZUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ0T1ZKTUNrSlVNRzF6ZW5sbU5XNW9lWGRpWTBoUmNIRTFUSEZqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhWGRaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamxDU0hOQlpWRkNNMEZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdlVGSkZTbGRuUVVGQlVVUkJSV2QzVW1kSmFFRk 1abFFLVkRNM1EzUTRSSFpwTldaWU1WbFdOa2xXWWtKWk9XRnJRVzlTZEd0dmVsZG5hMlJqYzFwTk5FRnBSVUYxYkZab2RVNVNSR2QwUm1ka2FVSnZlUzlJVHdvMmNGTmFTbXd6UTB4Q1lWcExjMk01VDNWRWMyZHhiM2REWjFsSlMyOWFTWHBxTUVWQmQwMUVZVUZCZDFwUlNYZGpSemhDTWpaMVoxUlhOWFU0U2xSNUNrWTBhM3BQZW5rd01ta3piWG80T1ZGQllVRnBiMDl6VDFSS1FqbFhlVXc1VmtOS1QzRTJaVFE0V0ZaT09FSjZTMEZxUlVGNlUydEZia3BsWm5rdlVtTUtUbFJrUVZObE9UWnliWEpVYWpaMWVqaDNhblZKYW5sWVkwd3lRamcyVERkYVVtaE9kVWt2ZUM5NGFHVnhOM2hDVnpkQ1lnb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIIE7DADAgEAMIIE4wYJKoZIhvcNAQcCoIIE1DCCBNACAQMxDTALBglghkgBZQMEAgEwgcMGCyqGSIb3DQEJEAEEoIGzBIGwMIGtAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgPRGrqpf3JaN8ImVG7+0VRMjtO/rdhqSGt1ys5GfA0pgCFQC/FTsGY7ZEcyT7ouoZ2VEGe25MPxgPMjAyNjA5MzAyMTQxNDJaMAMCAQECCQCkVmie3RhsGKAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgggIUMIICEDCCAZagAwIBAgIUOhNULwyQYe68wUMvy4qOiyojiwwwCgYIKoZIzj0EAwMwOTEVMBMGA1UEChMMc 2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZDAeFw0yNTA0MDgwNjU5NDNaFw0zNTA0MDYwNjU5NDNaMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE4ra2Z8hKNig2T9kFjCAToGG30jky+WQv3BzL+mKvh1SKNR/UwuwsfNCg4sryoYAd8E6isovVA3M4aoNdm9QDi50Z8nTEyvqgfDPtTIwXItfiW/AFf1V7uwkbkAoj0xxco2owaDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFIn9eUOHz9BlRsMCRscsc1t9tOsDMB8GA1UdIwQYMBaAFJjsAe9/u1H/1JUeb4qImFMHic6/MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMAoGCCqGSM49BAMDA2gAMGUCMDtpsV/6KaO0qyF/UMsX2aSUXKQFdoGTptQGc0ftq1csulHPGG6dsmyMNd3JB+G3EQIxAOajvBcjpJmKb4Nv+2Taoj8Uc5+b6ih6FXCCKraSqupe07zqswMcXJTe1cExvHvvlzGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwOTMwMjE0MTQyWjAvBgkqhkiG9w0BCQQxIgQgHc5XzMSBvQ3AhpHcIKc9ZEIhQ27HX+lk1H9mpZof1tkwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MF UwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAPxr/CsNZHNlqtec+rSxuh1FZiruhfLXSTgy5Vxkgcj9J0vStEF77HGSiw1jcInQRAIxAIutFr5IQF59MO+p3BzJetheUU5xg2ZoP+YHRkUKgZRCglTWZnFu+WHPpwzeOuuizw=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"wiFZBPArF1WW3Ek1FYUQT0vCA0HhxHN4smosJ0NgznM="},"signature":"MEUCIFhUcTkOa834NcvouRINzHvwKB9xB8zt1dvXRXe8QOMPAiEA38uvuxxeXjHL53ZYQQ0dVQCiU5hYnXRwWy1Bp5Xi4qo="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.COtQrs/_old 2026-10-13 17:43:35.240894945 +0200 +++ /var/tmp/diff_new_pack.COtQrs/_new 2026-10-13 17:43:35.243895071 +0200 @@ -1,6 +1,6 @@ -mtime: 1789682398 -commit: 5c3c1c4d192713ec808c89ec22e988bdd9bf76267d1bf400a41516d3d8c761d7 +mtime: 1791058858 +commit: 27931098647ca75bf5f790c387cd833937582ee6be0d3daa47a1ad95d48846dc url: https://src.opensuse.org/python-interpreters/python314 -revision: 5c3c1c4d192713ec808c89ec22e988bdd9bf76267d1bf400a41516d3d8c761d7 +revision: 27931098647ca75bf5f790c387cd833937582ee6be0d3daa47a1ad95d48846dc projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ 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-10-03 22:20:58.000000000 +0200 @@ -0,0 +1,5 @@ +.osc +*.obscpio +_build.* +.pbuild +python314-*-build/ ++++++ gh139257-Support-docutils-0.22.patch ++++++ --- /var/tmp/diff_new_pack.COtQrs/_old 2026-10-13 17:43:35.416902322 +0200 +++ /var/tmp/diff_new_pack.COtQrs/_new 2026-10-13 17:43:35.418902405 +0200 @@ -9,10 +9,10 @@ Doc/tools/extensions/pyspecific.py | 56 +++++++++++++++++++++++++------------ 3 files changed, 43 insertions(+), 18 deletions(-) -Index: Python-3.14.6/Doc/Makefile +Index: Python-3.14.8/Doc/Makefile =================================================================== ---- Python-3.14.6.orig/Doc/Makefile 2026-06-10 12:03:53.000000000 +0200 -+++ Python-3.14.6/Doc/Makefile 2026-06-16 10:12:27.727028281 +0200 +--- Python-3.14.8.orig/Doc/Makefile 2026-09-30 19:55:09.000000000 +0200 ++++ Python-3.14.8/Doc/Makefile 2026-10-02 23:47:15.154269697 +0200 @@ -14,7 +14,7 @@ SOURCES = DISTVERSION = $(shell $(PYTHON) tools/extensions/patchlevel.py) @@ -22,21 +22,24 @@ # Internal variables. PAPEROPT_a4 = --define latex_elements.papersize=a4paper -Index: Python-3.14.6/Doc/conf.py +Index: Python-3.14.8/Doc/conf.py =================================================================== ---- Python-3.14.6.orig/Doc/conf.py 2026-06-10 12:03:53.000000000 +0200 -+++ Python-3.14.6/Doc/conf.py 2026-06-16 10:12:27.727305694 +0200 -@@ -606,3 +606,6 @@ - '<meta property="og:image:width" content="200">', +--- Python-3.14.8.orig/Doc/conf.py 2026-09-30 19:55:09.000000000 +0200 ++++ Python-3.14.8/Doc/conf.py 2026-10-02 23:47:59.659689388 +0200 +@@ -628,6 +628,9 @@ '<meta property="og:image:height" content="200">', ) -+ + +# Fix devhelp doc build gh#python/cpython#120150 +master_doc = 'contents' -Index: Python-3.14.6/Doc/tools/extensions/pyspecific.py ++ + # Options for sphinxext-rediraffe + # ------------------------------- + +Index: Python-3.14.8/Doc/tools/extensions/pyspecific.py =================================================================== ---- Python-3.14.6.orig/Doc/tools/extensions/pyspecific.py 2026-06-10 12:03:53.000000000 +0200 -+++ Python-3.14.6/Doc/tools/extensions/pyspecific.py 2026-06-16 10:19:55.558368946 +0200 +--- Python-3.14.8.orig/Doc/tools/extensions/pyspecific.py 2026-09-30 19:55:09.000000000 +0200 ++++ Python-3.14.8/Doc/tools/extensions/pyspecific.py 2026-10-02 23:47:15.154959136 +0200 @@ -1,20 +1,37 @@ # -*- coding: utf-8 -*- """
