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-04-15 16:03:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python314 (Old) and /work/SRC/openSUSE:Factory/.python314.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python314" Wed Apr 15 16:03:04 2026 rev:36 rq:1345663 version:3.14.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python314/python314.changes 2026-04-01 19:50:21.296431049 +0200 +++ /work/SRC/openSUSE:Factory/.python314.new.21863/python314.changes 2026-04-15 16:03:14.559723390 +0200 @@ -1,0 +2,406 @@ +Wed Apr 8 08:54:12 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.14.4: + - Security + - gh-145986: xml.parsers.expat: Fixed a crash caused by + unbounded C recursion when converting deeply nested XML + content models with ElementDeclHandler(). This addresses + CVE 2026-4224 (bsc#1259735, CVE-2026-4224). + - gh-145599: Reject control characters in http.cookies.Morsel + update() and js_output(). This addresses CVE 2026-3644 + (bsc#1259734, CVE-2026-3644). + - gh-145506: Fixes CVE 2026-2297 by ensuring that + SourcelessFileLoader uses io.open_code() when opening .pyc + files (bsc#1259240, CVE-2026-2297). + - gh-144370: Disallow usage of control characters in status + in wsgiref.handlers to prevent HTTP header injections. + Patch by Benedikt Johannes. + - gh-143930: Reject leading dashes in URLs passed to + webbrowser.open() (bsc#1260026, CVE-2026-4519). + - Core and Builtins + - gh-148157: Fix an unlikely crash when parsing an invalid + type comments for function parameters. Found by OSS Fuzz in + #492782951. + - gh-148144: Initialize _PyInterpreterFrame.visited when + copying interpreter frames so incremental GC does not read + an uninitialized byte from generator and frame-object + copies. + - gh-146615: Fix a crash in __get__() for METH_METHOD + descriptors when an invalid (non-type) object is passed as + the second argument. Patch by Steven Sun. + - gh-146308: Fixed several error handling issues in the + _remote_debugging module, including safer validation of + remote int objects, clearer asyncio task chain failures, + and cache cleanup fixes that avoid leaking or + double-freeing metadata on allocation failure. Patch by + Pablo Galindo. + - gh-146128: Fix a bug which could cause constant values to + be partially corrupted in AArch64 JIT code. This issue is + theoretical, and hasn’t actually been observed in + unmodified Python interpreters. + - gh-146250: Fixed a memory leak in SyntaxError when + re-initializing it. + - gh-146245: Fixed reference leaks in socket when audit hooks + raise exceptions in socket.getaddrinfo() and + socket.sendto(). + - gh-146196: Fix potential Undefined Behavior in + PyUnicodeWriter_WriteASCII() by adding a zero-length check. + Patch by Shamil Abdulaev. + - gh-146227: Fix wrong type in _Py_atomic_load_uint16 in the + C11 atomics backend (pyatomic_std.h), which used a 32-bit + atomic load instead of 16-bit. Found by Mohammed Zuhaib. + - gh-146056: Fix repr() for lists and tuples containing + NULLs. + - gh-146092: Handle properly memory allocation failures on + str and float opcodes. Patch by Victor Stinner. + - gh-146041: Fix free-threading scaling bottleneck in + sys.intern() and PyObject_SetAttr() by avoiding the + interpreter-wide lock when the string is already interned + and immortalized. + - gh-145990: python --help-env sections are now sorted by + environment variable name. + - gh-145990: python --help-xoptions is now sorted by -X + option name. + - gh-145376: Fix GC tracking in structseq.__replace__(). + - gh-145792: Fix out-of-bounds access when invoking + faulthandler on a CPython build compiled without support + for VLAs. + - gh-142183: Avoid a pathological case where repeated calls + at a specific stack depth could be significantly slower. + - gh-145779: Improve scaling of classmethod() and + staticmethod() calls in the free-threaded build by avoiding + the descriptor __get__ call. + - gh-145783: Fix an unlikely crash in the parser when certain + errors were erroneously not propagated. Found by OSS Fuzz + in #491369109. + - gh-145685: Improve scaling of type attribute lookups in the + free-threaded build by avoiding contention on the internal + type lock. + - gh-145701: Fix SystemError when __classdict__ or + __conditional_annotations__ is in a class-scope inlined + comprehension. Found by OSS Fuzz in #491105000. + - gh-145713: Make bytearray.resize() thread-safe in the + free-threaded build by using a critical section and calling + the lock-held variant of the resize function. + - gh-145615: Fixed a memory leak in the free-threaded build + where mimalloc pages could become permanently unreclaimable + until the owning thread exited. + - gh-145566: In the free threading build, skip the + stop-the-world pause when reassigning __class__ on a newly + created object. + - gh-145335: Fix a crash in os.pathconf() when called with -1 + as the path argument. + - gh-145036: In free-threaded build, fix race condition when + calling __sizeof__() on a list + - 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-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-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-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-144563: Fix interaction of the Tachyon profiler and + ctypes and other modules that load the Python shared + library (if present) in an independent map as this was + causing the mechanism that loads the binary information to + be confused. Patch by Pablo Galindo + - gh-144601: Fix crash when importing a module whose PyInit + function raises an exception from a subinterpreter. + - gh-144438: Align the QSBR thread state array to a 64-byte + cache line boundary to avoid false sharing in the + free-threaded build. + - gh-144513: Fix potential deadlock when using critical + sections during stop-the-world pauses in the free-threaded + build. + - gh-144446: Fix data races in the free-threaded build when + reading frame object attributes while another thread is + executing the frame. + - gh-143636: Fix a crash when calling + SimpleNamespace.__replace__() on non-namespace instances. + Patch by Bénédikt Tran. + - gh-143650: Fix race condition in importlib where a thread + could receive a stale module reference when another + thread’s import fails. + - gh-141732: Ensure the __repr__() for ExceptionGroup and + BaseExceptionGroup does not change when the exception + sequence that was original passed in to its constructor is + subsequently mutated. + - gh-140594: Fix an out of bounds read when a single NUL + character is read from the standard input. Patch by Shamil + Abdulaev. + - gh-91636: While performing garbage collection, clear + weakrefs to unreachable objects that are created during + running of finalizers. If those weakrefs were are not + cleared, they could reveal unreachable objects. + - gh-130327: Fix erroneous clearing of an object’s __dict__ + if overwritten at runtime. + - gh-80667: Literals using the \N{name} escape syntax can now + construct CJK ideographs and Hangul syllables using + case-insensitive names. + - Library + - gh-144503: Fix a regression introduced in 3.14.3 and + 3.13.12 where the multiprocessing forkserver start method + would fail with BrokenPipeError when the parent process had + a very large sys.argv. The argv is now passed to the + forkserver as separate command-line arguments rather than + being embedded in the -c command string, avoiding the + operating system’s per-argument length limit. + - gh-146613: itertools: Fix a crash in itertools.groupby() + when the grouper iterator is concurrently mutated. + - gh-146080: ssl: fix a crash when an SNI callback tries to + use an SSL object that has already been garbage-collected. + Patch by Bénédikt Tran. + - gh-146556: Fix annotationlib.get_annotations() hanging + indefinitely when called with eval_str=True on a callable + that has a circular __wrapped__ chain (e.g. f.__wrapped__ + = f). Cycle detection using an id-based visited set now + stops the traversal and falls back to the globals found so + far, mirroring the approach of inspect.unwrap(). + - gh-146090: sqlite3: fix a crash when + sqlite3.Connection.create_collation() fails with + SQLITE_BUSY. Patch by Bénédikt Tran. + - gh-146090: sqlite3: properly raise MemoryError instead of + SystemError when a context callback fails to be allocated. + Patch by Bénédikt Tran. + - gh-145633: Fix struct.pack('f', float): use PyFloat_Pack4() + to raise OverflowError. Patch by Sergey B Kirpichev and + Victor Stinner. + - gh-146310: The ensurepip module no longer looks for + pip-*.whl wheel packages in the current directory. + - gh-146083: Update bundled libexpat to version 2.7.5. + - gh-146076: zoneinfo: fix crashes when deleting _weak_cache + from a zoneinfo.ZoneInfo subclass. + - gh-146054: Limit the size of encodings.search_function() + cache. Found by OSS Fuzz in #493449985. + - gh-146004: All -X options from the Python command line are + now propagated to child processes spawned by + multiprocessing, not just a hard-coded subset. This makes + the behavior consistent between default “spawn” and + “forkserver” start methods and the old “fork” start method. + The options that were previously not propagated are: + context_aware_warnings, cpu_count, disable-remote-debug, + int_max_str_digits, lazy_imports, no_debug_ranges, + pathconfig_warnings, perf, perf_jit, presite, + pycache_prefix, thread_inherit_context, and + warn_default_encoding. + - gh-145883: zoneinfo: Fix heap buffer overflow reads from + malformed TZif data. Found by OSS Fuzz, issues #492245058 + and #492230068. + - gh-145754: Request signature during mock autospec with + FORWARDREF annotation format. This prevents runtime errors + when an annotation uses a name that is not defined at + runtime. + - gh-145750: Avoid undefined behaviour from signed integer + overflow when parsing format strings in the struct module. + Found by OSS Fuzz in #488466741. + - gh-145492: Fix infinite recursion in + collections.defaultdict __repr__ when a defaultdict + contains itself. Based on analysis by KowalskiThomas in + gh-145492. + - 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-145616: Detect Android sysconfig ABI correctly on 32-bit + ARM Android on 64-bit ARM kernel + - gh-145551: Fix InvalidStateError when cancelling process + created by asyncio.create_subprocess_exec() or + asyncio.create_subprocess_shell(). Patch by Daan De Meyer. + - gh-145446: Now functools is safer in free-threaded build + when using keywords in functools.partial() + - 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-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-145264: Base64 decoder (see binascii.a2b_base64(), + base64.b64decode(), etc) no longer ignores excess data + after the first padded quad in non-strict (default) mode. + Instead, in conformance with RFC 4648, section 3.3, it now + ignores the pad character, “=”, if it is present before the + end of the encoded data. + - gh-145158: Avoid undefined behaviour from signed integer + overflow when parsing format strings in the struct module. + - gh-144984: Fix crash in + xml.parsers.expat.xmlparser.ExternalEntityParserCreate() + when an allocation fails. The error paths could dereference + NULL handlers and double-decrement the parent parser’s + reference count. + - 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-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-144782: Fix argparse.ArgumentParser to be pickleable. + - gh-144259: Fix inconsistent display of long multiline + pasted content in the REPL. + - 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-140814: multiprocessing.freeze_support() no longer sets + the default start method as a side effect, which previously + caused a subsequent multiprocessing.set_start_method() call + to raise RuntimeError. + - 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-144538: Bump the version of pip bundled in ensurepip to + version 26.0.1 + - gh-144494: Fix performance regression in + asyncio.all_tasks() on free-threaded builds. Patch by Kumar + Aditya. + - gh-144316: Fix crash in _remote_debugging that caused + test_external_inspection to intermittently fail. Patch by + Taegyun Kim. + - gh-144363: Update bundled libexpat to 2.7.4 + - gh-143637: Fixed a crash in socket.sendmsg() that could + occur if ancillary data is mutated re-entrantly during ++++ 109 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python314/python314.changes ++++ and /work/SRC/openSUSE:Factory/.python314.new.21863/python314.changes Old: ---- CVE-2025-13462-tarinfo-header-parse.patch CVE-2026-2297-SourcelessFileLoader-io_open_code.patch CVE-2026-3644-cookies-Morsel-update-II.patch CVE-2026-4224-expat-unbound-C-recursion.patch CVE-2026-4519-webbrowser-open-dashes.patch Python-3.14.3.tar.xz Python-3.14.3.tar.xz.sigstore New: ---- Python-3.14.4.tar.xz Python-3.14.4.tar.xz.sigstore ----------(Old B)---------- Old:- Remove upstreamed patches: - CVE-2025-13462-tarinfo-header-parse.patch - CVE-2026-2297-SourcelessFileLoader-io_open_code.patch Old: - CVE-2025-13462-tarinfo-header-parse.patch - CVE-2026-2297-SourcelessFileLoader-io_open_code.patch - CVE-2026-3479-pkgutil_get_data.patch Old: - CVE-2026-3479-pkgutil_get_data.patch - CVE-2026-3644-cookies-Morsel-update-II.patch - CVE-2026-4224-expat-unbound-C-recursion.patch Old: - CVE-2026-3644-cookies-Morsel-update-II.patch - CVE-2026-4224-expat-unbound-C-recursion.patch - CVE-2026-4519-webbrowser-open-dashes.patch Old: - CVE-2026-4224-expat-unbound-C-recursion.patch - CVE-2026-4519-webbrowser-open-dashes.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python314.spec ++++++ --- /var/tmp/diff_new_pack.BWks6V/_old 2026-04-15 16:03:18.111869416 +0200 +++ /var/tmp/diff_new_pack.BWks6V/_new 2026-04-15 16:03:18.111869416 +0200 @@ -124,7 +124,7 @@ # %%define tarversion %%{version} # %%endif # We don't process beta signs well -%define folderversion 3.14.3 +%define folderversion 3.14.4 %define sitedir %{_libdir}/python%{python_version} # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149 %define abi_kind %{nil} @@ -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.3 +Version: 3.14.4 %define tarversion %{version} %define tarname Python-%{tarversion} Release: 0 @@ -238,21 +238,6 @@ # 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 CVE-2026-2297-SourcelessFileLoader-io_open_code.patch bsc#1259240 [email protected] -# Ensure SourcelessFileLoader uses io.open_code -Patch52: CVE-2026-2297-SourcelessFileLoader-io_open_code.patch -# PATCH-FIX-UPSTREAM CVE-2026-3644-cookies-Morsel-update-II.patch bsc#1259734 [email protected] -# Reject control characters in http.cookies.Morsel.update() and http.cookies.BaseCookie.js_output -Patch53: CVE-2026-3644-cookies-Morsel-update-II.patch -# PATCH-FIX-UPSTREAM CVE-2026-4224-expat-unbound-C-recursion.patch bsc#1259735 [email protected] -# Avoid unbound C recursion in conv_content_model -Patch54: CVE-2026-4224-expat-unbound-C-recursion.patch -# PATCH-FIX-UPSTREAM CVE-2025-13462-tarinfo-header-parse.patch bsc#1259611 [email protected] -# Skip TarInfo DIRTYPE normalization during GNU long name handling -Patch55: CVE-2025-13462-tarinfo-header-parse.patch -# PATCH-FIX-UPSTREAM CVE-2026-4519-webbrowser-open-dashes.patch bsc#1260026 [email protected] -# reject leading dashes in webbrowser URLs -Patch56: CVE-2026-4519-webbrowser-open-dashes.patch # PATCH-FIX-OPENSUSE bsc1260884-llvm21-support.patch bsc#1260884 [email protected] # update JIT builds to use LLVM 21 Patch57: bsc1260884-llvm21-support.patch ++++++ Python-3.14.3.tar.xz -> Python-3.14.4.tar.xz ++++++ /work/SRC/openSUSE:Factory/python314/Python-3.14.3.tar.xz /work/SRC/openSUSE:Factory/.python314.new.21863/Python-3.14.4.tar.xz differ: char 26, line 1 ++++++ Python-3.14.3.tar.xz.sigstore -> Python-3.14.4.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python314/Python-3.14.3.tar.xz.sigstore 2026-02-14 21:39:34.718238930 +0100 +++ /work/SRC/openSUSE:Factory/.python314.new.21863/Python-3.14.4.tar.xz.sigstore 2026-04-15 16:03:14.519721746 +0200 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzzCCAlSgAwIBAgIUBx87ORotwES9Tr9/5NZTngeQhtUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwMjAzMTgyOTIwWhcNMjYwMjAzMTgzOTIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEw1f5ikJaSUOwVvytG3fHa2lOz7WjZ19hYmJshJl5Ila9TjVqJCTCJF7KNYRkz9b9N6eZXeukwF8PKBZIS4TzoaOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU20u9xd3ZaH6WWnir8qLg+cbGJNowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnCTEJRMAAAQDAEcwRQIhAJI6KotoJjZIkucqFuGRaEJTgXyeS2lhlXH0gpvbwnA8AiAL5zIOhGAfKfm81Qv7VX6sAILt+RaFQneJNxUYis/zwzAKBggqhkjOPQQDAwNpADBmAjEA1EiYSJkPzBo30auPquS4i4aS28iJQ5ZjMn0MYFswmwoC7Uo9 H3n/c1DcsEnzBzaKAjEA8ySQOh4FRmbxIWYWb5KLlJUplny3HyGYi1URxV7hsa+lNgEaO5o3LV/BbB5lnO4s"}, "tlogEntries": [{"logIndex": "908836744", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1770143360", "inclusionPromise": {"signedEntryTimestamp": "MEYCIQDvK2No1zzRFayBeyzvA42BK6xuXOlV6KMe66YHqPGpyQIhAIgzTnzAjblnl+WzNN7oH2DK/qj4pl9JaBLNHPQrOQrI"}, "inclusionProof": {"logIndex": "786932482", "rootHash": "dGVFvc1oLbLyJiHnFEycV208nQJKUBJwroHzkkEqIIo=", "treeSize": "786932485", "hashes": ["h2AO7cQ01eF2B8CkF2PIO4su+qg6eQB2J/Ig0br85HA=", "O3EIEcvyyn5ZYNiBc8YSrN/mREv4Poj9WCpv8jE/oyI=", "IpLe03oVtHPl1LgYBblTCahhLhs6wFvzdlGZgJzQ1uk=", "go/Nm4TUqqeO6DxsYqK/L32zREpElrXy7C2euZySNzg=", "L2xrC73coSdSyPb0X33W6SDKVMxsk74ZnFRJINpON8I=", "fRNx1tBqRqL5Yibyg7EjJbHuiShPUD+wS5BZPO9nBEM=", "QdVJN4pI2za6IrM4/I4o9aeZMiXnx7faJSZQMhMmtU8=", "sCWg+jViEKkz6QEEx56tYG4vykLu2WiALyfOcM96toQ=", "AAtQsmfrXzumS5rosvNxszWd2XG1lRck4Wt RuwVAiU8=", "bGXXJ36FovKuLHu/UAyDMaXYRCr5fKcrc9rlbjQ7HDs=", "iEKYdHrZdRVr6DbpjA8Lcwmot+QZOoeZ1BAEuu/Bvro=", "RBHg3kfW74vkatMSjoUEMZxs4pXkX6y3f906Fc2Yc0Y=", "YEPMagC4YFWQMmrwdZHLOWJudK6RRRuGHVQ8/uADabI=", "yeCWAa93hha1YBKuFn93zBzKbqQW3tYHrgkSp5U7ndU=", "4O6YxKguFZGEr7Xsa3hqNAN2Qq7uVVat/IV4masT570=", "F9MSQ5SmoFr+hoADclpdFY52/TLfHDnNPYb9ZNYO5gI=", "T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n786932485\ndGVFvc1oLbLyJiHnFEycV208nQJKUBJwroHzkkEqIIo=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiAif/bJOkEHuQeaIivryOmrr7YAKYb3T2xrD88l009VuQIhANUlyrkF5XOL10+83p09JViRO8CzJmGsjKL6OMXbObWE\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhOTdkNTU0OWU5YWQ4MWZlMTcxNTllZDAyYzY4Nzc0YWQ1ZDI2NmM3MmY4ZDlhMGI1YTljMzcxZmU4NWQ5MDJiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRkNjcW9UaGdhUnhWSGpqd3hsaHVxNWJOSTFicHJxRlhwSkM5dGVsNGNH OEFpQkhzQmUzeFhHU0hvbVFrc25FOWVVVSs5bHlQR3lhRUlqcGllaUxVSzVER2c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZla05EUVd4VFowRjNTVUpCWjBsVlFuZzROMDlTYjNSM1JWTTVWSEk1THpWT1dsUnVaMlZSYUhSVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDFxUVhwTlZHZDVUMVJKZDFkb1kwNU5hbGwzVFdwQmVrMVVaM3BQVkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYzTVdZMWFXdEtZVk5WVDNkV2RubDBSek5tU0dFeWJFOTZOMWRxV2pFNWFGbHRTbk1LYUVwc05VbHNZVGxVYWxaeFNrTlVRMHBHTjB0T1dWSnJlamxpT1U0MlpWcFlaWFZyZDBZNFVFdENXa2xUTkZSNmIyRlBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlV5TUhVNUNuaGtNMXBoU0RaWFYyNXBjamh4VEdjclkySkhTazV2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV 1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVRMVJGU2xKTlFRcEJRVkZFUVVWamQxSlJTV2hCU2trMlMyOTBiMHBxV2tscmRXTnhSblZIVW1GRlNsUm5XSGxsVXpKc2FHeFlTREJuY0haaWQyNUJPRUZwUVV3MWVrbFBDbWhIUVdaTFptMDRNVkYyTjFaWU5uTkJTVXgwSzFKaFJsRnVaVXBPZUZWWmFYTXZlbmQ2UVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV3UVVSQ2JVRnFSVUVLTVVWcFdWTkthMUI2UW04ek1HRjFVSEYxVXpScE5HRlRNamhwU2xFMVdtcE5iakJOV1VaemQyMTNiME0zVlc4NVNETnVMMk14UkdOelJXNTZRbnBoU3dwQmFrVkJPSGxUVVU5b05FWlNiV0o0U1ZkWlYySTFTMHhzU2xWd2JHNTVNMGg1UjFscE1WVlNlRlkzYUhOaEsyeE9aMFZoVHpWdk0weFdMMEppUWpWc0NtNVBOSE1LTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messag eSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "qX1VSemtgf4XFZ7QLGh3StXSZscvjZoLWpw3H+hdkCs="}, "signature": "MEQCIFCcqoThgaRxVHjjwxlhuq5bNI1bprqFXpJC9tel4cG8AiBHsBe3xXGSHomQksnE9eUU+9lyPGyaEIjpieiLUK5DGg=="}} +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlSgAwIBAgIUNKmgm8crGeqcaZGe+UcKIkC6eeMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNDA3MTc0ODI3WhcNMjYwNDA3MTc1ODI3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8GWpcLUVObEUDkYGyztWraUKIIh7R/lw+i6Byw6iUgoyO7SeWt/O1Gr4v5bLBvDr9Zf3qH0ZYpPPy7mEWjpX5aOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUsLccaNXB35sDVjPPrG4MSXLmDPAwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnWkPW1IAAAQDAEcwRQIgbfqtlIPOp3dexdPPIw8P2dB7LWUGpwxzlrHeehtcCwICIQDf8s5K9AJQfzX0+PF+/WI/1qiWsJIQP0kmGfZd3t3WsTAKBggqhkjOPQQDAwNnADBkAjAWOvDGxPInHozw71vK+D0hBicVo6EnON/DtyL7ibZFehA/GQT7 4s0vg7BJVxr1v7YCMH4KTfKB5uZKIRJOr5OdHB0c9DYtZb8Rvuag5g4e48GhKVaW1yDsRKhFJ6uevehvbg=="}, "tlogEntries": [{"logIndex": "1247676092", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1775584107", "inclusionPromise": {"signedEntryTimestamp": "MEUCIFF1ZkKHkOfCGGlc25+n2BiMTGlgW4VdLYCZwOZKcGTqAiEA91EgqiYvuRUdudBKpPsVQb/E05TCR993D8kRW6Hk8io="}, "inclusionProof": {"logIndex": "1125771830", "rootHash": "7AwwN9ITapmRRfpMaltblXB/KVxly9DcOGDHeFPjdeo=", "treeSize": "1125771836", "hashes": ["756uhIKcieJ+hbtjS3a1kEODI683klDcC43zOgVG6/0=", "Ct3LP6+4l/UhDNZNhiuC/GcPV0jUDyZVp4HRoj0poaY=", "RXkU0cJhMqEd0Zyy9YeHPH8JHonofzADND438l33X0U=", "6Wg3vEwO12L72STDZN9L79qgdwxsY9zT7hqSb1HXZXA=", "IfRWcPrix0hDOpyycaEQVejN9YyiPN67yhz1YR4NIDY=", "yTa95BXAWI9bH35Oy1diIUgjjJKAec3GLyLfaRrI0Tg=", "dJtu8pJ3yhn0rC0EFdgoebJF3MldcpHMX00y2eHPYDY=", "81dr9W/Ax/UfYIsxNTxjBYK7sYU/az3TPo6rdJosDO0=", "4rt9/yEt1Zy95yQxSCxpoOu6E3CWDDxp Gd37aEEFadg=", "+wrWv/cO9uKKpjC+BMIC/Fv2Ipe50C7wL0wd+YlH5Kw=", "ZxCK8NmXD/qxQEyqBRFYo8WOz/kUHRHA+BXOPC6789o=", "civ0dM20+gns15I1mfWo9Jt0YBzbex5QVYwaGjqgcs4=", "2v7+H4Fejl7qkIhG2G79UQH+wJ0QpPreOZwulFGWzLI=", "vXMaHYsu3vXUFKr78h1vCtaZWhgh1OwZh5O05RGwxkw=", "WbswTMpSfvjDqroD6lDGb2VDeljBPlMsAchJ+0L+3U4=", "psQ1PrYXqFtm6T3uF1q91rl1dhNiykO58GpOdq1ZaKI=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n1125771836\n7AwwN9ITapmRRfpMaltblXB/KVxly9DcOGDHeFPjdeo=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEAhlJOgNDM16Po1F/3oPqb2r4rB3hBUPnExynP522NFOoCIC9OJcZfCU82PD4B55yXArKxDdxHEX56JyNgu8XTcC2y\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkOTIzYzUxMzAzZTM4ZTI0OTEzNmZjMWJkZjM1NjhkNTZlY2IwMzIxNGVmZGVmNDg1MTYxNzZkM2Q3ZmFhZWY4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUM0eDhwYklTeEJta2VoNWxDYjA1aUI1MXRyOHVzVklYL1MyandH VnAxMVJBSWhBT21pR0NndlJISFUrTGVnYWFKSjgzbUNtN0NkclBtM2F3MVNKdnIydGhDKyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4VFowRjNTVUpCWjBsVlRrdHRaMjA0WTNKSFpYRmpZVnBIWlN0VlkwdEphME0yWldWTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVFUVROTlZHTXdUMFJKTTFkb1kwNU5hbGwzVGtSQk0wMVVZekZQUkVrelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVU0UjFkd1kweFZWazlpUlZWRWExbEhlWHAwVjNKaFZVdEpTV2czVWk5c2R5dHBOa0lLZVhjMmFWVm5iM2xQTjFObFYzUXZUekZIY2pSMk5XSk1RblpFY2psYVpqTnhTREJhV1hCUVVIazNiVVZYYW5CWU5XRlBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ6VEdOakNtRk9XRUl6TlhORVZtcFFVSEpITkUxVFdFeHRSRkJCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUW GRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVWMnRRVnpGSlFRcEJRVkZFUVVWamQxSlJTV2RpWm5GMGJFbFFUM0F6WkdWNFpGQlFTWGM0VURKa1FqZE1WMVZIY0hkNGVteHlTR1ZsYUhSalEzZEpRMGxSUkdZNGN6VkxDamxCU2xGbWVsZ3dLMUJHS3k5WFNTOHhjV2xYYzBwSlVWQXdhMjFIWmxwa00zUXpWM05VUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV1UVVSQ2EwRnFRVmNLVDNaRVIzaFFTVzVJYjNwM056RjJTeXRFTUdoQ2FXTldielpGYms5T0wwUjBlVXczYVdKYVJtVm9RUzlIVVZRM05ITXdkbWMzUWtwV2VISXhkamRaUXdwTlNEUkxWR1pMUWpWMVdrdEpVa3BQY2pWUFpFaENNR001UkZsMFdtSTRVbloxWVdjMVp6UmxORGhIYUV0V1lWY3hlVVJ6VWt0b1JrbzJkV1YyWldoMkNtSm5QVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "me ssageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "2SPFEwPjjiSRNvwb3zVo1W7LAyFO/e9IUWF209f6rvg="}, "signature": "MEYCIQC4x8pbISxBmkeh5lCb05iB51tr8usVIX/S2jwGVp11RAIhAOmiGCgvRHHU+LegaaJJ83mCm7CdrPm3aw1SJvr2thC+"}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.BWks6V/_old 2026-04-15 16:03:18.299877145 +0200 +++ /var/tmp/diff_new_pack.BWks6V/_new 2026-04-15 16:03:18.303877309 +0200 @@ -1,6 +1,6 @@ -mtime: 1774721353 -commit: 2f7ec348f127519f8b603c3d5477bd834349369c8a216486a7264a6c493227ed +mtime: 1775642886 +commit: 65ff5d2cbd7dea9ce4f595de9862807ec326e9bf35f8580fb639e571c42b37f5 url: https://src.opensuse.org/python-interpreters/python314.git -revision: 2f7ec348f127519f8b603c3d5477bd834349369c8a216486a7264a6c493227ed +revision: 65ff5d2cbd7dea9ce4f595de9862807ec326e9bf35f8580fb639e571c42b37f5 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bsc1260884-llvm21-support.patch ++++++ --- /var/tmp/diff_new_pack.BWks6V/_old 2026-04-15 16:03:18.347879118 +0200 +++ /var/tmp/diff_new_pack.BWks6V/_new 2026-04-15 16:03:18.355879447 +0200 @@ -47,17 +47,17 @@ 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.3/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst +Index: Python-3.14.4/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.3/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst 2026-03-28 19:07:08.905250841 +0100 ++++ Python-3.14.4/Misc/NEWS.d/next/Core_and_Builtins/2025-10-19-10-32-28.gh-issue-136895.HfsEh0.rst 2026-04-08 11:17:17.883764230 +0200 @@ -0,0 +1 @@ +Update JIT compilation to use LLVM 21 at build time. -Index: Python-3.14.3/Python/jit.c +Index: Python-3.14.4/Python/jit.c =================================================================== ---- Python-3.14.3.orig/Python/jit.c 2026-02-03 16:32:20.000000000 +0100 -+++ Python-3.14.3/Python/jit.c 2026-03-28 19:07:08.905586532 +0100 -@@ -419,15 +419,43 @@ +--- Python-3.14.4.orig/Python/jit.c 2026-04-07 15:13:20.000000000 +0200 ++++ Python-3.14.4/Python/jit.c 2026-04-08 11:17:17.884330327 +0200 +@@ -355,15 +355,43 @@ } void patch_aarch64_trampoline(unsigned char *location, int ordinal, jit_state *state); @@ -101,7 +101,7 @@ // Generate and patch AArch64 trampolines. The symbols to jump to are stored // in the jit_stencils.h in the symbols_map. void -@@ -444,20 +472,8 @@ +@@ -380,20 +408,8 @@ return; } @@ -124,7 +124,7 @@ /* Generate the trampoline -@@ -474,6 +490,37 @@ +@@ -410,6 +426,37 @@ patch_aarch64_26r(location, (uintptr_t)p); } @@ -162,7 +162,7 @@ static void combine_symbol_mask(const symbol_mask src, symbol_mask dest) { -@@ -515,8 +562,13 @@ +@@ -451,8 +498,13 @@ // Round up to the nearest page: size_t page_size = get_page_size(); assert((page_size & (page_size - 1)) == 0); @@ -178,7 +178,7 @@ unsigned char *memory = jit_alloc(total_size); if (memory == NULL) { return -1; -@@ -535,7 +587,7 @@ +@@ -471,7 +523,7 @@ // Loop again to emit the code: unsigned char *code = memory; state.trampolines.mem = memory + code_size; @@ -187,7 +187,7 @@ // Compile the shim, which handles converting between the native // calling convention and the calling convention used by jitted code // (which may be different for efficiency reasons). -@@ -557,7 +609,9 @@ +@@ -493,7 +545,9 @@ code += group->code_size; data += group->data_size; assert(code == memory + code_size); @@ -198,10 +198,10 @@ if (mark_executable(memory, total_size)) { jit_free(memory, total_size); return -1; -Index: Python-3.14.3/Tools/jit/README.md +Index: Python-3.14.4/Tools/jit/README.md =================================================================== ---- Python-3.14.3.orig/Tools/jit/README.md 2026-02-03 16:32:20.000000000 +0100 -+++ Python-3.14.3/Tools/jit/README.md 2026-03-28 19:07:08.905766140 +0100 +--- Python-3.14.4.orig/Tools/jit/README.md 2026-04-07 15:13:20.000000000 +0200 ++++ Python-3.14.4/Tools/jit/README.md 2026-04-08 11:17:17.884838104 +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.3/Tools/jit/_llvm.py +Index: Python-3.14.4/Tools/jit/_llvm.py =================================================================== ---- Python-3.14.3.orig/Tools/jit/_llvm.py 2026-03-28 19:07:01.506684972 +0100 -+++ Python-3.14.3/Tools/jit/_llvm.py 2026-03-28 19:07:08.905859205 +0100 +--- Python-3.14.4.orig/Tools/jit/_llvm.py 2026-04-08 10:56:15.619727417 +0200 ++++ Python-3.14.4/Tools/jit/_llvm.py 2026-04-08 11:17:17.885158548 +0200 @@ -10,9 +10,9 @@ import _targets @@ -332,11 +332,11 @@ # Nothing found: return None -Index: Python-3.14.3/Tools/jit/_stencils.py +Index: Python-3.14.4/Tools/jit/_stencils.py =================================================================== ---- Python-3.14.3.orig/Tools/jit/_stencils.py 2026-03-28 19:07:01.511197803 +0100 -+++ Python-3.14.3/Tools/jit/_stencils.py 2026-03-28 19:07:08.905962259 +0100 -@@ -302,6 +302,23 @@ +--- Python-3.14.4.orig/Tools/jit/_stencils.py 2026-04-08 10:56:15.623184158 +0200 ++++ Python-3.14.4/Tools/jit/_stencils.py 2026-04-08 11:17:17.885412907 +0200 +@@ -274,6 +274,23 @@ self._trampolines.add(ordinal) hole.addend = ordinal hole.symbol = None @@ -360,10 +360,10 @@ self.code.remove_jump() self.code.add_nops(nop=nop, alignment=alignment) self.data.pad(8) -Index: Python-3.14.3/Tools/jit/_targets.py +Index: Python-3.14.4/Tools/jit/_targets.py =================================================================== ---- Python-3.14.3.orig/Tools/jit/_targets.py 2026-03-28 19:07:01.513403213 +0100 -+++ Python-3.14.3/Tools/jit/_targets.py 2026-03-28 19:07:08.906085812 +0100 +--- Python-3.14.4.orig/Tools/jit/_targets.py 2026-04-08 10:56:15.625514156 +0200 ++++ Python-3.14.4/Tools/jit/_targets.py 2026-04-08 11:17:17.885705308 +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-04-08 12:09:00.000000000 +0200 @@ -0,0 +1,5 @@ +.osc +*.obscpio +_build.* +.pbuild +python314-*-build/
