Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python313 for openSUSE:Factory checked in at 2025-12-29 15:15:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python313 (Old) and /work/SRC/openSUSE:Factory/.python313.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python313" Mon Dec 29 15:15:46 2025 rev:36 rq:1324012 version:3.13.11 Changes: -------- --- /work/SRC/openSUSE:Factory/python313/python313.changes 2025-11-26 17:14:44.368427068 +0100 +++ /work/SRC/openSUSE:Factory/.python313.new.1928/python313.changes 2025-12-29 15:15:50.712647569 +0100 @@ -1,0 +2,296 @@ +Thu Dec 11 21:36:09 UTC 2025 - Matej Cepl <[email protected]> + +- Update to 3.13.11: + - gh-142145: Remove quadratic behavior in xml.minidom node ID + cache clearing (CVE-2025-12084, bsc#1254997). + - gh-119451: Fix a potential memory denial of service in the + http.client module. When connecting to a malicious server, + it could cause an arbitrary amount of memory to be + allocated. This could have led to symptoms including + a MemoryError, swapping, out of memory (OOM) killed + processes or containers, or even system crashes + (bsc#1254400, CVE-2025-13836). + - gh-119452: Fix a potential memory denial of service in the + http.server module. When a malicious user is connected to + the CGI server on Windows, it could cause an arbitrary + amount of memory to be allocated. This could have led to + symptoms including a MemoryError, swapping, out of memory + (OOM) killed processes or containers, or even system + crashes. +- Library + - gh-140797: Revert changes to the undocumented re.Scanner + class. Capturing groups are still allowed for backward + compatibility, although using them can lead to incorrect + result. They will be forbidden in future Python versions. + - gh-142206: The resource tracker in the multiprocessing + module now uses the original communication protocol, as in + Python 3.14.0 and below, by default. This avoids issues + with upgrading Python while it is running. (Note that such + ‘in-place’ upgrades are not tested.) The tracker remains + compatible with subprocesses that use new protocol (that + is, subprocesses using Python 3.13.10, 3.14.1 and 3.15). +- Core and Builtins + - gh-142218: Fix crash when inserting into a split table + dictionary with a non str key that matches an existing key. +- Update to 3.13.10: +- Tools/Demos + - gh-141442: The iOS testbed now correctly handles test + arguments that contain spaces. +- Tests + - gh-140482: Preserve and restore the state of stty echo as + part of the test environment. + - gh-140082: Update python -m test to set FORCE_COLOR=1 when + being run with color enabled so that unittest which is run + by it with redirected output will output in color. + - gh-136442: Use exitcode 1 instead of 5 if + unittest.TestCase.setUpClass() raises an exception +- Security + - gh-139700: Check consistency of the zip64 end of central + directory record. Support records with “zip64 extensible + data” if there are no bytes prepended to the ZIP file. + (CVE-2025-8291, bsc#1251305) + - gh-137836: Add support of the “plaintext” element, RAWTEXT + elements “xmp”, “iframe”, “noembed” and “noframes”, and + optionally RAWTEXT element “noscript” in + html.parser.HTMLParser. + - gh-136063: email.message: ensure linear complexity for + legacy HTTP parameters parsing. Patch by Bénédikt Tran. + - gh-136065: Fix quadratic complexity in + os.path.expandvars() (CVE-2025-6075, bsc#1252974). + - gh-119342: Fix a potential memory denial of service in the + plistlib module. When reading a Plist file received from + untrusted source, it could cause an arbitrary amount of + memory to be allocated. This could have led to symptoms + including a MemoryError, swapping, out of memory (OOM) + killed processes or containers, or even system crashes + (CVE-2025-13837, bsc#1254401). +- Library + - gh-74389: When the stdin being used by a subprocess.Popen + instance is closed, this is now ignored in + subprocess.Popen.communicate() instead of leaving the class + in an inconsistent state. + - gh-87512: Fix subprocess.Popen.communicate() timeout + handling on Windows when writing large input. Previously, + the timeout was ignored during stdin writing, causing the + method to block indefinitely if the child process did not + consume input quickly. The stdin write is now performed in + a background thread, allowing the timeout to be properly + enforced. + - gh-141473: When subprocess.Popen.communicate() was called + with input and a timeout and is called for a second time + after a TimeoutExpired exception before the process has + died, it should no longer hang. + - gh-59000: Fix pdb breakpoint resolution for class methods + when the module defining the class is not imported. + - gh-141570: Support file-like object raising OSError from + fileno() in color detection (_colorize.can_colorize()). + This can occur when sys.stdout is redirected. + - gh-141659: Fix bad file descriptor errors from + _posixsubprocess on AIX. + - gh-141497: ipaddress: ensure that the methods + IPv4Network.hosts() and IPv6Network.hosts() always return + an iterator. + - gh-140938: The statistics.stdev() and statistics.pstdev() + functions now raise a ValueError when the input contains an + infinity or a NaN. + - gh-124111: Updated Tcl threading configuration in _tkinter + to assume that threads are always available in Tcl 9 and + later. + - gh-137109: The os.fork and related forking APIs will no + longer warn in the common case where Linux or macOS + platform APIs return the number of threads in a process and + find the answer to be 1 even when a os.register_at_fork() + after_in_parent= callback (re)starts a thread. + - gh-141314: Fix assertion failure in io.TextIOWrapper.tell() + when reading files with standalone carriage return (\r) + line endings. + - gh-141311: Fix assertion failure in io.BytesIO.readinto() + and undefined behavior arising when read position is above + capcity in io.BytesIO. + - gh-141141: Fix a thread safety issue with + base64.b85decode(). Contributed by Benel Tayar. + - gh-140911: collections: Ensure that the methods + UserString.rindex() and UserString.index() accept + collections.UserString instances as the sub argument. + - gh-140797: The undocumented re.Scanner class now forbids + regular expressions containing capturing groups in its + lexicon patterns. Patterns using capturing groups could + previously lead to crashes with segmentation fault. Use + non-capturing groups (?:…) instead. + - gh-140815: faulthandler now detects if a frame or a code + object is invalid or freed. Patch by Victor Stinner. + - gh-100218: Correctly set errno when socket.if_nametoindex() + or socket.if_indextoname() raise an OSError. Patch by + Bénédikt Tran. + - gh-140875: Fix handling of unclosed character references + (named and numerical) followed by the end of file in + html.parser.HTMLParser with convert_charrefs=False. + - gh-140734: multiprocessing: fix off-by-one error when + checking the length of a temporary socket file path. Patch + by Bénédikt Tran. + - gh-140874: Bump the version of pip bundled in ensurepip to + version 25.3 + - gh-140691: In urllib.request, when opening a FTP URL fails + because a data connection cannot be made, the control + connection’s socket is now closed to avoid + a ResourceWarning. + - gh-103847: Fix hang when cancelling process created by + asyncio.create_subprocess_exec() or + asyncio.create_subprocess_shell(). Patch by Kumar Aditya. + - gh-140590: Fix arguments checking for the + functools.partial.__setstate__() that may lead to internal + state corruption and crash. Patch by Sergey Miryanov. + - gh-140634: Fix a reference counting bug in + os.sched_param.__reduce__(). + - gh-140633: Ignore AttributeError when setting a module’s + __file__ attribute when loading an extension module + packaged as Apple Framework. + - gh-140593: xml.parsers.expat: Fix a memory leak that could + affect users with ElementDeclHandler() set to a custom + element declaration handler. Patch by Sebastian Pipping. + - gh-140607: Inside io.RawIOBase.read(), validate that the + count of bytes returned by io.RawIOBase.readinto() is valid + (inside the provided buffer). + - gh-138162: Fix logging.LoggerAdapter with merge_extra=True + and without the extra argument. + - gh-140474: Fix memory leak in array.array when creating + arrays from an empty str and the u type code. + - gh-140272: Fix memory leak in the clear() method of the + dbm.gnu database. + - gh-140041: Fix import of ctypes on Android and Cygwin when + ABI flags are present. + - gh-139905: Add suggestion to error message for + typing.Generic subclasses when cls.__parameters__ is + missing due to a parent class failing to call + super().__init_subclass__() in its __init_subclass__. + - gh-139845: Fix to not print KeyboardInterrupt twice in + default asyncio REPL. + - gh-139783: Fix inspect.getsourcelines() for the case when + a decorator is followed by a comment or an empty line. + - gh-70765: http.server: fix default handling of HTTP/0.9 + requests in BaseHTTPRequestHandler. Previously, + BaseHTTPRequestHandler.parse_request() incorrectly waited + for headers in the request although those are not supported + in HTTP/0.9. Patch by Bénédikt Tran. + - gh-139391: Fix an issue when, on non-Windows platforms, it + was not possible to gracefully exit a python -m asyncio + process suspended by Ctrl+Z and later resumed by fg other + than with kill. + - gh-101828: Fix 'shift_jisx0213', 'shift_jis_2004', + 'euc_jisx0213' and 'euc_jis_2004' codecs truncating null + chars as they were treated as part of multi-character + sequences. + - gh-139246: fix: paste zero-width in default repl width is + wrong. + - gh-90949: Add SetAllocTrackerActivationThreshold() and + SetAllocTrackerMaximumAmplification() to xmlparser objects + to prevent use of disproportional amounts of dynamic memory + from within an Expat parser. Patch by Bénédikt Tran. + - gh-139065: Fix trailing space before a wrapped long word if + the line length is exactly width in textwrap. + - gh-138993: Dedent credits text. + - gh-138859: Fix generic type parameterization raising + a TypeError when omitting a ParamSpec that has a default + which is not a list of types. + - gh-138775: Use of python -m with base64 has been fixed to + detect input from a terminal so that it properly notices + EOF. + - gh-98896: Fix a failure in multiprocessing resource_tracker + when SharedMemory names contain colons. Patch by Rani + Pinchuk. + - gh-75989: tarfile.TarFile.extractall() and + tarfile.TarFile.extract() now overwrite symlinks when + extracting hardlinks. (Contributed by Alexander Enrique + Urieles Nieto in gh-75989.) + - gh-83424: Allows creating a ctypes.CDLL without name when + passing a handle as an argument. + - gh-136234: Fix asyncio.WriteTransport.writelines() to be + robust to connection failure, by using the same behavior as + write(). + - gh-136057: Fixed the bug in pdb and bdb where next and step + can’t go over the line if a loop exists in the line. + - gh-135307: email: Fix exception in set_content() when + encoding text and max_line_length is set to 0 or None + (unlimited). + - gh-134453: Fixed subprocess.Popen.communicate() input= + handling of memoryview instances that were non-byte shaped + on POSIX platforms. Those are now properly cast to a byte + shaped view instead of truncating the input. Windows + platforms did not have this bug. + - gh-102431: Clarify constraints for “logical” arguments in + methods of decimal.Context. +- IDLE + - gh-96491: Deduplicate version number in IDLE shell title + bar after saving to a file. +- Documentation + - gh-141994: xml.sax.handler: Make Documentation of + xml.sax.handler.feature_external_ges warn of opening up to + external entity attacks. Patch by Sebastian Pipping. + - gh-140578: Remove outdated sencence in the documentation + for multiprocessing, that implied that + concurrent.futures.ThreadPoolExecutor did not exist. +- Core and Builtins + - gh-142048: Fix quadratically increasing garbage collection + delays in free-threaded build. + - gh-141930: When importing a module, use Python’s regular + file object to ensure that writes to .pyc files are + complete or an appropriate error is raised. + - gh-120158: Fix inconsistent state when enabling or + disabling monitoring events too many times. + - gh-141579: Fix sys.activate_stack_trampoline() to properly + support the perf_jit backend. Patch by Pablo Galindo. + - gh-141312: Fix the assertion failure in the __setstate__ + method of the range iterator when a non-integer argument is + passed. Patch by Sergey Miryanov. + - gh-140939: Fix memory leak when bytearray or bytes is + formated with the + %*b format with a large width that results in + %a MemoryError. + - gh-140530: Fix a reference leak when raise exc from cause + fails. Patch by Bénédikt Tran. + - gh-140576: Fixed crash in tokenize.generate_tokens() in + case of specific incorrect input. Patch by Mikhail Efimov. + - gh-140551: Fixed crash in dict if dict.clear() is called at + the lookup stage. Patch by Mikhail Efimov and Inada Naoki. + - gh-140471: Fix potential buffer overflow in ast.AST node + initialization when encountering malformed _fields + containing non-str. + - gh-140406: Fix memory leak when an object’s __hash__() + method returns an object that isn’t an int. + - gh-140306: Fix memory leaks in cross-interpreter channel + operations and shared namespace handling. + - gh-140301: Fix memory leak of PyConfig in subinterpreters. + - gh-140000: Fix potential memory leak when a reference cycle + exists between an instance of typing.TypeAliasType, + typing.TypeVar, typing.ParamSpec, or typing.TypeVarTuple + and its __name__ attribute. Patch by Mikhail Efimov. + - gh-139748: Fix reference leaks in error branches of + functions accepting path strings or bytes such as compile() + and os.system(). Patch by Bénédikt Tran. + - gh-139516: Fix lambda colon erroneously start format spec + in f-string in tokenizer. + - gh-139640: Fix swallowing some syntax warnings in different + modules if they accidentally have the same message and are + emitted from the same line. Fix duplicated warnings in the + finally block. + - gh-137400: Fix a crash in the free threading build when + disabling profiling or tracing across all threads with + PyEval_SetProfileAllThreads() or + PyEval_SetTraceAllThreads() or their Python equivalents + threading.settrace_all_threads() and + threading.setprofile_all_threads(). + - gh-133400: Fixed Ctrl+D (^D) behavior in _pyrepl module to + match old pre-3.13 REPL behavior. +- C API + - gh-140042: Removed the sqlite3_shutdown call that could + cause closing connections for sqlite when used with + multiple sub interpreters. + - gh-140487: Fix Py_RETURN_NOTIMPLEMENTED in limited C API + 3.11 and older: don’t treat Py_NotImplemented as immortal. + Patch by Victor Stinner. +- Remove upstreamed patches: + - CVE-2025-13836-http-resp-cont-len.patch + - CVE-2025-8291-consistency-zip64.patch + - CVE-2025-6075-expandvars-perf-degrad.patch + +------------------------------------------------------------------- Old: ---- CVE-2025-6075-expandvars-perf-degrad.patch CVE-2025-8291-consistency-zip64.patch Python-3.13.9.tar.xz Python-3.13.9.tar.xz.sigstore New: ---- Python-3.13.11.tar.xz Python-3.13.11.tar.xz.sigstore ----------(Old B)---------- Old: - CVE-2025-8291-consistency-zip64.patch - CVE-2025-6075-expandvars-perf-degrad.patch Old: - CVE-2025-13836-http-resp-cont-len.patch - CVE-2025-8291-consistency-zip64.patch - CVE-2025-6075-expandvars-perf-degrad.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python313.spec ++++++ --- /var/tmp/diff_new_pack.OR4ZN8/_old 2025-12-29 15:15:55.452842270 +0100 +++ /var/tmp/diff_new_pack.OR4ZN8/_new 2025-12-29 15:15:55.488843749 +0100 @@ -167,7 +167,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.13.9 +Version: 3.13.11 %define tarversion %{version} %define tarname Python-%{tarversion} Release: 0 @@ -235,12 +235,6 @@ Patch44: gh138131-exclude-pycache-from-digest.patch # PATCH-FIX-OPENSUSE gh139257-Support-docutils-0.22.patch gh#python/cpython#139257 [email protected] Patch45: gh139257-Support-docutils-0.22.patch -# PATCH-FIX-UPSTREAM CVE-2025-8291-consistency-zip64.patch bsc#1251305 [email protected] -# Check consistency of the zip64 end of central directory record -Patch46: CVE-2025-8291-consistency-zip64.patch -# PATCH-FIX-UPSTREAM CVE-2025-6075-expandvars-perf-degrad.patch bsc#1252974 [email protected] -# Avoid potential quadratic complexity vulnerabilities in path modules -Patch47: CVE-2025-6075-expandvars-perf-degrad.patch # PATCH-FIX-UPSTREAM pass-test_write_read_limited_history.patch bsc#[0-9]+ [email protected] # Fix readline history truncation when length is reduced Patch48: pass-test_write_read_limited_history.patch ++++++ Python-3.13.9.tar.xz -> Python-3.13.11.tar.xz ++++++ /work/SRC/openSUSE:Factory/python313/Python-3.13.9.tar.xz /work/SRC/openSUSE:Factory/.python313.new.1928/Python-3.13.11.tar.xz differ: char 26, line 1 ++++++ Python-3.13.9.tar.xz.sigstore -> Python-3.13.11.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python313/Python-3.13.9.tar.xz.sigstore 2025-10-17 17:25:54.266300738 +0200 +++ /work/SRC/openSUSE:Factory/.python313.new.1928/Python-3.13.11.tar.xz.sigstore 2025-12-29 15:15:50.052620459 +0100 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICyjCCAlCgAwIBAgIUY2me70edxRKEcCCyZ5IxW04GUyowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMDE0MTQzMTMyWhcNMjUxMDE0MTQ0MTMyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELoRO1nGvvt0Re9EEuEURAgbvYfBZGKVeXZJ4TMXRaguoQ234OaePlcAe1i7BwYYC66rIbrcvayVtIGVODpjoKaOCAW8wggFrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUGNf/veOSM+Ff67rmibv6xt8S+oMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHwYDVR0RAQH/BBUwE4ERdGhvbWFzQHB5dGhvbi5vcmcwKQYKKwYBBAGDvzABAQQbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMCsGCisGAQQBg78wAQgEHQwbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGZ4yIw9QAABAMARzBFAiBFhajuKoOCWgsAz1l9RlYS7U6cH/3fY1TxkoG7abKa3QIhAKSeSjaz987c/yCcQhU/Qr7Chi7XmXbfZMp2xAh8yBX+MAoGCCqGSM49BAMDA2gAMGUCMERKd5M3HrGRoWEwZuOc4e26LeQz9PSLU6OdlTwejx6QA1XP/0Xir/W/ x8lMEOFuzAIxANg4WBGY7CPzXhkLWB4Fc6zEEV0fG/hzsMnlXiv8khUnMn+lCPbvRota+OFCYH2qMA=="}, "tlogEntries": [{"logIndex": "605359044", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1760452293", "inclusionPromise": {"signedEntryTimestamp": "MEQCIAaCd+PcR5ygZyPHR1OsuaW+lNBWINYyIlKeGPEcPwepAiBNdcg2JJu+x5se+ceR53vLqLBjva3kQ4IlP9nlhX9Qog=="}, "inclusionProof": {"logIndex": "483454782", "rootHash": "oZMALhkG2Ovf519HU5mhGbEaroNwGUX6BRT0JwDqOBE=", "treeSize": "483454785", "hashes": ["NrDN7yu6uq+l3SddRxs5n9GNxvPxfC5ztPCuaBEuxBE=", "67FUfgzcBEiMHBjMBhIP7z7NP1Y6OtbC48553/VTk7A=", "VIwMTLnjS3Z1W4xcLQrca60FRxxSnqyUAN8dQtvaRdI=", "i8G+g499zPGEcpT54dYVUUmczZRJucNYWmKOrEO004s=", "+wR1k80yWhpO7od/bitq3mkjQF5vuuWhLFeWqUHVfV8=", "uHZHioqKhUEko9UubGg2/N0lkvsPtoAaqr95f03cHYY=", "EiH2b8iGJWXAiLOBI7xekwQSojCUemRypbzmcQo4vaI=", "2aaLDAVeQGJoklTLWwIPILMvGhrc+9mnB2HsRWCldwY=", "wNzqPqvA41e6acbb4z7HxMdHzg9S6jufxg2MVgB 4ykw=", "boLAJ9DO0lKL3HJUTpKJMBhDTVZZCfc/oBPm+gLAx4Q=", "Vxc/L8MXSU0zqWj6P5yi6L02Lc2HxpkHqYzJLcNbzEs=", "PPdBf0yipi+yQC3iEH5JI4MmFnEgb40zV1eCf+8/MOY=", "laQiGsY+h3TioXfWSoLJMMtb2TORNubw90KH+z/fdyw=", "pcc0HeMv4rm7/8RoNMUYk4tbxPt+lc2wMvbSrB3Negw=", "inrOYOb+roitD1EYWHmRPy8aJnjhSAhp5cHXbXVlxU4=", "8nCds1SUzxGg2Xoa+M1tOFTwx+1BGtp8TDMSS4P54xQ=", "V5lOdefY1WOOt4iQp7tZoyj1beBDVi24KsEMcgsqZds=", "2Wv4GiithwNukRKV06clevnQQYCzXmSS/+/OJtXgsXQ=", "1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=", "vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n483454785\noZMALhkG2Ovf519HU5mhGbEaroNwGUX6BRT0JwDqOBE=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEA2g7XsvpZpF/BYV+Jr6KRvdE2kuWjmN7xVyr7HLWRXlECIC0okqz3vQ2B/Bng/2BAQVIIiLMhnrXedUeoygtWn4Kh\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZDVlZjM0Y2RhMzZjZmEyZjNhMzQwZjA3Y2FjN2U3ODE0 ZjkxYzdmM2M0MTFmNmQzNTYyMzIzYTg2NmM1YzY2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNSMlVSSm44Unc3ZnpmbkhjOFpXSmdTVU1tdEl1RFF2dFF2S05VejlmUkpRSWdNRm1UU0dWUXJDeGlheXpwYVUxcmh0d0wyL256elhjNnh0enF0dW5JZUhjPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjVha05EUVd4RFowRjNTVUpCWjBsVldUSnRaVGN3WldSNFVrdEZZME5EZVZvMVNYaFhNRFJIVlhsdmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFFUlRCTlZGRjZUVlJOZVZkb1kwNU5hbFY0VFVSRk1FMVVVVEJOVkUxNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZNYjFKUE1XNUhkblowTUZKbE9VVkZkVVZWVWtGblluWlpaa0phUjB0V1pWaGFTalFLVkUxWVVtRm5kVzlSTWpNMFQyRmxVR3hqUVdVeGFUZENkMWxaUXpZMmNrbGljbU4yWVhsV2RFbEhWazlFY0dwdlMyRlBRMEZYT0hkblowWnlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZIVG1ZdkNuWmxUMU5OSzBab U5qZHliV2xpZGpaNGREaFRLMjlOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoM1dVUldVakJTUVZGSUwwSkNWWGRGTkVWU1pFZG9kbUpYUm5wUlNFSTFaRWRvZG1KcE5YWmpiV04zUzFGWlMwdDNXVUpDUVVkRWRucEJRZ3BCVVZGaVlVaFNNR05JVFRaTWVUbG9XVEpPZG1SWE5UQmplVFZ1WWpJNWJtSkhWWFZaTWpsMFRVTnpSME5wYzBkQlVWRkNaemM0ZDBGUlowVklVWGRpQ21GSVVqQmpTRTAyVEhrNWFGa3lUblprVnpVd1kzazFibUl5T1c1aVIxVjFXVEk1ZEUxSlIwdENaMjl5UW1kRlJVRmtXalZCWjFGRFFraDNSV1ZuUWpRS1FVaFpRVE5VTUhkaGMySklSVlJLYWtkU05HTnRWMk16UVhGS1MxaHlhbVZRU3pNdmFEUndlV2RET0hBM2J6UkJRVUZIV2pSNVNYYzVVVUZCUWtGTlFRcFNla0pHUVdsQ1JtaGhhblZMYjA5RFYyZHpRWG94YkRsU2JGbFROMVUyWTBndk0yWlpNVlI0YTI5SE4yRmlTMkV6VVVsb1FVdFRaVk5xWVhvNU9EZGpDaTk1UTJOUmFGVXZVWEkzUTJocE4xaHRXR0ptV2sxd01uaEJhRGg1UWxnclRVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeVowRk5SMVZEVFVWU1MyUTFUVE1LU0hKSFVtOVhSWGRhZFU5ak5HVXlOa3hsVVhvNVVGTk1WVFpQWkd4VWQyVnFlRFpSUVRGWVVDOHdXR2x5TDFjdmVEaHNUVVZQUm5WNlFVbDRRVTVuTkFwWFFrZFpOME5RZWxob2EweFhRalJHWXpaNlJVVldNR1pITDJoNmMwMXViRmhwZGpocmFGVnVUVzRyYkVOUVluWl NiM1JoSzA5R1ExbElNbkZOUVQwOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "7V7zTNo2z6Lzo0DwfKx+eBT5HH88QR9tNWIyOoZsXGY="}, "signature": "MEUCIQCR2URJn8Rw7fzfnHc8ZWJgSUMmtIuDQvtQvKNUz9fRJQIgMFmTSGVQrCxiayzpaU1rhtwL2/nzzXc6xtzqtunIeHc="}} +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICyTCCAk+gAwIBAgIUMZ9OrU89PmgWXWiYxq/s1e8xVkkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMjA1MTY1NjU1WhcNMjUxMjA1MTcwNjU1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQ3Wq/mhAIwL1ZNOiCgOmVYXqwl8rWBi+hwTYY+NJLvmuRW7wblbWyTJ1RSZrS9dVGhVdWZP7tT2hvkt56ibycaOCAW4wggFqMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUCukYhSJA3LGmELdmyGSLM/sNqPowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHwYDVR0RAQH/BBUwE4ERdGhvbWFzQHB5dGhvbi5vcmcwKQYKKwYBBAGDvzABAQQbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMCsGCisGAQQBg78wAQgEHQwbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGa73H4UAAABAMARjBEAiAoqadI7BCu3G3jmK140KSkRC+uTKIS7K/yAUtT8zfdiwIgV51hPZZYKSjHglktFhqcxzHLdRyb96/caoR4m+DHvT8wCgYIKoZIzj0EAwMDaAAwZQIwSuCW4+VibjHM96ArSncpYew+tvp7bMlc21AHsgr12ZO6p//IiSdjJlqO TpYwCWtFAjEA0BxY6Y7zl4+baG4+BZ+EEiwDwoCOVTR7ORMuDYeZ/Dy6g47hohxRqtssCYdRKRZq"}, "tlogEntries": [{"logIndex": "743450012", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1764953815", "inclusionPromise": {"signedEntryTimestamp": "MEQCIFAmMfakwQScJ3jGB7ufmmWcvXbT/sQYyb/iIbRyJXYmAiB25k62mSSsvteAacdB4SjQJ100UGRI02mHOZykKqirrQ=="}, "inclusionProof": {"logIndex": "621545750", "rootHash": "lTjgILAqSIIoraXAj/bseL/7BMbChIzmHVo5P84pPO8=", "treeSize": "621545755", "hashes": ["FqRC4Ydg7KClKWZIe5BLdSoxPOl3L+wXnnctnBbxa5E=", "hyHMJXZjRrPr7N8JDpms6tqWbIuqgBLKkoDomNSzO8g=", "XV5KmKAmcumiCPrjB89usazCvsWagxoKoI5P3Rn5mDQ=", "FKJNSf/yPWGSGCwEZ4ybeMVy+zECYaK/u2yKEboKDQs=", "4wbyhSYvHHiszMmrsBtjXwOt9um81zByZQLFAXJAu0g=", "q0tC4xtUswgodVV8T7OYpkNlp/XC4qAM541kvTHkq4o=", "se5pDnKcF+idDdO0PdbWjF+rFNUWlCzxj+pSmkASRQU=", "YYvp7Leoq6lF3zEs+Bux7BQt/UrxFbOOJAwVroBevek=", "pQtmpjszxrel2u+2I5HrLBwlwvhc19nfAUsa5EHZAe4 =", "0jEq6eagxqoSOor9OR//fY6uOsPzLaE1q1n9tZRzfSc=", "ZmUkYkHBy1B723JrEgiKvepTdHYrP6y2a4oODYvi5VY=", "T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n621545755\nlTjgILAqSIIoraXAj/bseL/7BMbChIzmHVo5P84pPO8=\n\n\u2014 rekor.sigstore.dev wNI9ajBEAiAS9t8HEV2fPKq2rB20KvscWBUzqlzyZr6asuXxp8whiAIgUxc+PuVjTYduOZ2zKNeaSos22BXxAn7hKgxBroQmIkE=\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxNmVkZTdiYjdjZGJmYTg5NWQxMWIwNjQyZmEwZTUyM2YyOTFlNjQ4NzE5NGQ1M2NmNmQzYjMzOGMzYTE3ZWEyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURENENYVTNMNGlMSkVCb0xFSVlnVU5kTXhjN3VENWdMcUgyeXRFNFQxTnd3SWdKbHBhMHJFbDV0MGdtbTlTYzRoQnpFOG9QK2JLSlVZeExUTmd4dEdnSmo0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjVWRU5EUVdzclowRjNTVUpCWjBsVlRWbzVUM0pWT0RsUWJXZFhXRmRwV1hoeEwzTXhaVGg0Vm10cmQwTm5XVWxMYjFw SmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFxUVRGTlZGa3hUbXBWTVZkb1kwNU5hbFY0VFdwQk1VMVVZM2RPYWxVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZSTTFkeEwyMW9RVWwzVERGYVRrOXBRMmRQYlZaWldIRjNiRGh5VjBKcEsyaDNWRmtLV1N0T1NreDJiWFZTVnpkM1lteGlWM2xVU2pGU1UxcHlVemxrVmtkb1ZtUlhXbEEzZEZReWFIWnJkRFUyYVdKNVkyRlBRMEZYTkhkblowWnhUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZEZFd0WkNtaFRTa0V6VEVkdFJVeGtiWGxIVTB4TkwzTk9jVkJ2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoM1dVUldVakJTUVZGSUwwSkNWWGRGTkVWU1pFZG9kbUpYUm5wUlNFSTFaRWRvZG1KcE5YWmpiV04zUzFGWlMwdDNXVUpDUVVkRWRucEJRZ3BCVVZGaVlVaFNNR05JVFRaTWVUbG9XVEpPZG1SWE5UQmplVFZ1WWpJNWJtSkhWWFZaTWpsMFRVTnpSME5wYzBkQlVWRkNaemM0ZDBGUlowVklVWGRpQ21GSVVqQmpTRTAyVEhrNWFGa3lUblprVnpVd1kzazFibUl5T1c1aVIxV jFXVEk1ZEUxSlIwcENaMjl5UW1kRlJVRmtXalZCWjFGRFFraHpSV1ZSUWpNS1FVaFZRVE5VTUhkaGMySklSVlJLYWtkU05HTnRWMk16UVhGS1MxaHlhbVZRU3pNdmFEUndlV2RET0hBM2J6UkJRVUZIWVRjelNEUlZRVUZCUWtGTlFRcFNha0pGUVdsQmIzRmhaRWszUWtOMU0wY3phbTFMTVRRd1MxTnJVa01yZFZSTFNWTTNTeTk1UVZWMFZEaDZabVJwZDBsblZqVXhhRkJhV2xsTFUycElDbWRzYTNSR2FIRmplSHBJVEdSU2VXSTVOaTlqWVc5U05HMHJSRWgyVkRoM1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGQlFYZGFVVWwzVTNWRFZ6UXJWbWtLWW1wSVRUazJRWEpUYm1Od1dXVjNLM1IyY0RkaVRXeGpNakZCU0hObmNqRXlXazgyY0M4dlNXbFRaR3BLYkhGUFZIQlpkME5YZEVaQmFrVkJNRUo0V1FvMldUZDZiRFFyWW1GSE5DdENXaXRGUldsM1JIZHZRMDlXVkZJM1QxSk5kVVJaWlZvdlJIazJaelEzYUc5b2VGSnhkSE56UTFsa1VrdFNXbkVLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "Fu3nu3zb+oldEbBkL6DlI/KR5khxlNU89tOzOMOhfqI="}, "signature": "MEUCIQDD4CXU3L4iLJEBoLEIYgUNdMxc7uD5gLqH2ytE4T1NwwIgJlpa0rEl5t0gmm9Sc4hBzE8oP+bKJUYxLTNgxtGgJj4="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.OR4ZN8/_old 2025-12-29 15:15:56.212873488 +0100 +++ /var/tmp/diff_new_pack.OR4ZN8/_new 2025-12-29 15:15:56.236874474 +0100 @@ -1,6 +1,6 @@ -mtime: 1763861551 -commit: b020ec1b9b71441baa91d41c16d7a5438484c55751fb2fbbc10a05be1c4e8dda +mtime: 1766169483 +commit: 8b786ccb53d8b84a3f5de332e7818391999f089156311280f94b090fba2bbd19 url: https://src.opensuse.org/python-interpreters/python313.git -revision: b020ec1b9b71441baa91d41c16d7a5438484c55751fb2fbbc10a05be1c4e8dda +revision: 8b786ccb53d8b84a3f5de332e7818391999f089156311280f94b090fba2bbd19 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 2025-12-19 19:39:52.000000000 +0100 @@ -0,0 +1,6 @@ +.osc +*.obscpio +*.osc +_build.* +.pbuild +python313-*-build/ ++++++ doc-py38-to-py36.patch ++++++ --- /var/tmp/diff_new_pack.OR4ZN8/_old 2025-12-29 15:15:57.112910457 +0100 +++ /var/tmp/diff_new_pack.OR4ZN8/_new 2025-12-29 15:15:57.132911278 +0100 @@ -27,10 +27,10 @@ Doc/tools/extensions/pydoc_topics.py | 22 +++++----- 18 files changed, 159 insertions(+), 130 deletions(-) -Index: Python-3.13.9/Doc/Makefile +Index: Python-3.13.11/Doc/Makefile =================================================================== ---- Python-3.13.9.orig/Doc/Makefile 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/Makefile 2025-11-20 01:09:35.814292408 +0100 +--- Python-3.13.11.orig/Doc/Makefile 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/Makefile 2025-12-18 23:36:11.845184450 +0100 @@ -14,15 +14,15 @@ SOURCES = DISTVERSION = $(shell $(PYTHON) tools/extensions/patchlevel.py) @@ -51,10 +51,10 @@ $(PAPEROPT_$(PAPER)) \ $(SPHINXOPTS) $(SPHINXERRORHANDLING) \ . build/$(BUILDER) $(SOURCES) -Index: Python-3.13.9/Doc/c-api/arg.rst +Index: Python-3.13.11/Doc/c-api/arg.rst =================================================================== ---- Python-3.13.9.orig/Doc/c-api/arg.rst 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/c-api/arg.rst 2025-11-20 01:07:59.902914275 +0100 +--- Python-3.13.11.orig/Doc/c-api/arg.rst 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/c-api/arg.rst 2025-12-18 23:36:11.845570257 +0100 @@ -334,7 +334,6 @@ should raise an exception and leave the content of *address* unmodified. @@ -63,10 +63,10 @@ If the *converter* returns :c:macro:`!Py_CLEANUP_SUPPORTED`, it may get called a second time if the argument parsing eventually fails, giving the converter a -Index: Python-3.13.9/Doc/c-api/typeobj.rst +Index: Python-3.13.11/Doc/c-api/typeobj.rst =================================================================== ---- Python-3.13.9.orig/Doc/c-api/typeobj.rst 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/c-api/typeobj.rst 2025-11-20 01:07:59.903382829 +0100 +--- Python-3.13.11.orig/Doc/c-api/typeobj.rst 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/c-api/typeobj.rst 2025-12-18 23:36:11.846211337 +0100 @@ -610,7 +610,7 @@ Functions like :c:func:`PyObject_NewVar` will take the value of N as an argument, and store in the instance's :c:member:`~PyVarObject.ob_size` field. @@ -97,10 +97,10 @@ include :c:type:`PyObject` or :c:type:`PyVarObject` (depending on whether :c:member:`~PyVarObject.ob_size` should be included). These are usually defined by the macro :c:macro:`PyObject_HEAD` or -Index: Python-3.13.9/Doc/conf.py +Index: Python-3.13.11/Doc/conf.py =================================================================== ---- Python-3.13.9.orig/Doc/conf.py 2025-11-20 01:07:14.944126757 +0100 -+++ Python-3.13.9/Doc/conf.py 2025-11-20 01:07:59.903974303 +0100 +--- Python-3.13.11.orig/Doc/conf.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/conf.py 2025-12-18 23:36:11.846742416 +0100 @@ -11,6 +11,8 @@ from importlib import import_module from importlib.util import find_spec @@ -127,7 +127,7 @@ ''' manpages_url = 'https://manpages.debian.org/{path}' -@@ -92,7 +94,7 @@ +@@ -96,7 +98,7 @@ # Minimum version of sphinx required # Keep this version in sync with ``Doc/requirements.txt``. @@ -136,7 +136,7 @@ # Create table of contents entries for domain objects (e.g. functions, classes, # attributes, etc.). Default is True. -@@ -257,6 +259,9 @@ +@@ -246,6 +248,9 @@ # Avoid a warning with Sphinx >= 4.0 root_doc = 'contents' @@ -146,7 +146,7 @@ # Allow translation of index directives gettext_additional_targets = [ 'index', -@@ -296,7 +301,7 @@ +@@ -285,7 +290,7 @@ # (See .readthedocs.yml and https://docs.readthedocs.io/en/stable/reference/environment-variables.html) is_deployment_preview = os.getenv("READTHEDOCS_VERSION_TYPE") == "external" repository_url = os.getenv("READTHEDOCS_GIT_CLONE_URL", "") @@ -155,7 +155,7 @@ html_context = { "is_deployment_preview": is_deployment_preview, "repository_url": repository_url or None, -@@ -607,6 +612,16 @@ +@@ -551,6 +556,16 @@ } extlinks_detect_hardcoded_links = True @@ -172,10 +172,10 @@ # Options for c_annotations extension # ----------------------------------- -Index: Python-3.13.9/Doc/library/doctest.rst +Index: Python-3.13.11/Doc/library/doctest.rst =================================================================== ---- Python-3.13.9.orig/Doc/library/doctest.rst 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/library/doctest.rst 2025-11-20 01:07:59.904511686 +0100 +--- Python-3.13.11.orig/Doc/library/doctest.rst 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/library/doctest.rst 2025-12-18 23:36:11.847131855 +0100 @@ -310,7 +310,6 @@ .. currentmodule:: None @@ -184,10 +184,10 @@ .. currentmodule:: doctest -Index: Python-3.13.9/Doc/library/email.compat32-message.rst +Index: Python-3.13.11/Doc/library/email.compat32-message.rst =================================================================== ---- Python-3.13.9.orig/Doc/library/email.compat32-message.rst 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/library/email.compat32-message.rst 2025-11-20 01:07:59.905009154 +0100 +--- Python-3.13.11.orig/Doc/library/email.compat32-message.rst 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/library/email.compat32-message.rst 2025-12-18 23:36:11.847579332 +0100 @@ -7,7 +7,6 @@ :synopsis: The base class representing email messages in a fashion backward compatible with Python 3.2 @@ -196,10 +196,10 @@ The :class:`Message` class is very similar to the -Index: Python-3.13.9/Doc/library/xml.etree.elementtree.rst +Index: Python-3.13.11/Doc/library/xml.etree.elementtree.rst =================================================================== ---- Python-3.13.9.orig/Doc/library/xml.etree.elementtree.rst 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/library/xml.etree.elementtree.rst 2025-11-20 01:07:59.905273001 +0100 +--- Python-3.13.11.orig/Doc/library/xml.etree.elementtree.rst 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/library/xml.etree.elementtree.rst 2025-12-18 23:36:11.847865126 +0100 @@ -873,7 +873,6 @@ .. module:: xml.etree.ElementTree @@ -208,10 +208,10 @@ .. class:: Element(tag, attrib={}, **extra) -Index: Python-3.13.9/Doc/tools/check-warnings.py +Index: Python-3.13.11/Doc/tools/check-warnings.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/check-warnings.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/check-warnings.py 2025-11-20 01:07:59.905613002 +0100 +--- Python-3.13.11.orig/Doc/tools/check-warnings.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/check-warnings.py 2025-12-18 23:36:11.848175434 +0100 @@ -228,7 +228,8 @@ print(filename) for warning in warnings: @@ -231,10 +231,10 @@ for warning in warnings if "Doc/" in warning } -Index: Python-3.13.9/Doc/tools/extensions/audit_events.py +Index: Python-3.13.11/Doc/tools/extensions/audit_events.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/audit_events.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/audit_events.py 2025-11-20 01:08:35.819222654 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/audit_events.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/audit_events.py 2025-12-18 23:36:11.848442160 +0100 @@ -1,9 +1,6 @@ """Support for documenting audit events.""" @@ -370,10 +370,10 @@ ) -> nodes.row: row = nodes.row() name_node = nodes.paragraph("", nodes.Text(name)) -Index: Python-3.13.9/Doc/tools/extensions/availability.py +Index: Python-3.13.11/Doc/tools/extensions/availability.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/availability.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/availability.py 2025-11-20 01:07:59.906156697 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/availability.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/availability.py 2025-12-18 23:36:11.848697922 +0100 @@ -1,8 +1,6 @@ """Support for documenting platform availability""" @@ -427,10 +427,10 @@ app.add_directive("availability", Availability) return { -Index: Python-3.13.9/Doc/tools/extensions/c_annotations.py +Index: Python-3.13.11/Doc/tools/extensions/c_annotations.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/c_annotations.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/c_annotations.py 2025-11-20 01:07:59.906354780 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/c_annotations.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/c_annotations.py 2025-12-18 23:37:01.590377119 +0100 @@ -9,22 +9,26 @@ * Set ``stable_abi_file`` to the path to stable ABI list. """ @@ -525,7 +525,7 @@ if ROLE_TO_OBJECT_TYPE[record.role] != objtype: msg = ( f"Object type mismatch in limited API annotation for {name}: " -@@ -234,7 +241,7 @@ +@@ -256,7 +263,7 @@ ) @@ -534,7 +534,7 @@ classes = ["refcount"] if result_refs is None: rc = sphinx_gettext("Return value: Always NULL.") -@@ -254,7 +261,7 @@ +@@ -276,7 +283,7 @@ optional_arguments = 0 final_argument_whitespace = True @@ -543,7 +543,7 @@ state = self.env.domaindata["c_annotations"] content = [ f"* :c:{record.role}:`{record.name}`" -@@ -277,13 +284,23 @@ +@@ -344,7 +351,7 @@ ) @@ -552,6 +552,7 @@ app.add_config_value("refcount_file", "", "env", types={str}) app.add_config_value("stable_abi_file", "", "env", types={str}) app.add_directive("limited-api-list", LimitedAPIList) +@@ -352,6 +359,16 @@ app.connect("builder-inited", init_annotations) app.connect("doctree-read", add_annotations) @@ -568,10 +569,10 @@ return { "version": "1.0", "parallel_read_safe": True, -Index: Python-3.13.9/Doc/tools/extensions/changes.py +Index: Python-3.13.11/Doc/tools/extensions/changes.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/changes.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/changes.py 2025-11-20 01:07:59.906539198 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/changes.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/changes.py 2025-12-18 23:36:11.849240594 +0100 @@ -1,7 +1,5 @@ """Support for documenting version of changes, additions, deprecations.""" @@ -607,10 +608,10 @@ # Override Sphinx's directives with support for 'next' app.add_directive("versionadded", PyVersionChange, override=True) app.add_directive("versionchanged", PyVersionChange, override=True) -Index: Python-3.13.9/Doc/tools/extensions/glossary_search.py +Index: Python-3.13.11/Doc/tools/extensions/glossary_search.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/glossary_search.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/glossary_search.py 2025-11-20 01:07:59.906696224 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/glossary_search.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/glossary_search.py 2025-12-18 23:36:11.849448932 +0100 @@ -1,21 +1,27 @@ """Feature search results for glossary items prominently.""" @@ -654,10 +655,10 @@ app.connect('doctree-resolved', process_glossary_nodes) app.connect('build-finished', write_glossary_json) -Index: Python-3.13.9/Doc/tools/extensions/implementation_detail.py +Index: Python-3.13.11/Doc/tools/extensions/implementation_detail.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/implementation_detail.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/implementation_detail.py 2025-11-20 01:07:59.906853200 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/implementation_detail.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/implementation_detail.py 2025-12-18 23:36:11.849650427 +0100 @@ -1,17 +1,10 @@ """Support for marking up implementation details.""" @@ -708,10 +709,10 @@ app.add_directive("impl-detail", ImplementationDetail) return { -Index: Python-3.13.9/Doc/tools/extensions/issue_role.py +Index: Python-3.13.11/Doc/tools/extensions/issue_role.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/issue_role.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/issue_role.py 2025-11-20 01:07:59.907010386 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/issue_role.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/issue_role.py 2025-12-18 23:36:11.849838302 +0100 @@ -1,22 +1,18 @@ """Support for referencing issues in the tracker.""" @@ -757,10 +758,10 @@ app.add_role("issue", BPOIssue()) app.add_role("gh", GitHubIssue()) -Index: Python-3.13.9/Doc/tools/extensions/misc_news.py +Index: Python-3.13.11/Doc/tools/extensions/misc_news.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/misc_news.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/misc_news.py 2025-11-20 01:07:59.907170899 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/misc_news.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/misc_news.py 2025-12-18 23:36:11.850033510 +0100 @@ -1,7 +1,5 @@ """Support for including Misc/NEWS.""" @@ -813,10 +814,10 @@ app.add_directive("miscnews", MiscNews) return { -Index: Python-3.13.9/Doc/tools/extensions/patchlevel.py +Index: Python-3.13.11/Doc/tools/extensions/patchlevel.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/patchlevel.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/patchlevel.py 2025-11-20 01:07:59.907494228 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/patchlevel.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/patchlevel.py 2025-12-18 23:36:11.850217264 +0100 @@ -3,7 +3,7 @@ import re import sys @@ -854,10 +855,10 @@ version = f"{info.major}.{info.minor}" release = f"{info.major}.{info.minor}.{info.micro}" if info.releaselevel != "final": -Index: Python-3.13.9/Doc/tools/extensions/pydoc_topics.py +Index: Python-3.13.11/Doc/tools/extensions/pydoc_topics.py =================================================================== ---- Python-3.13.9.orig/Doc/tools/extensions/pydoc_topics.py 2025-10-14 15:52:31.000000000 +0200 -+++ Python-3.13.9/Doc/tools/extensions/pydoc_topics.py 2025-11-20 01:07:59.907684617 +0100 +--- Python-3.13.11.orig/Doc/tools/extensions/pydoc_topics.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/pydoc_topics.py 2025-12-18 23:36:11.850437755 +0100 @@ -1,21 +1,23 @@ """Support for building "topic help" for pydoc.""" ++++++ gh139257-Support-docutils-0.22.patch ++++++ --- /var/tmp/diff_new_pack.OR4ZN8/_old 2025-12-29 15:15:57.252916208 +0100 +++ /var/tmp/diff_new_pack.OR4ZN8/_new 2025-12-29 15:15:57.260916536 +0100 @@ -4,34 +4,146 @@ Subject: [PATCH 1/2] gh-139257: Support docutils >= 0.22 --- - Doc/tools/extensions/pyspecific.py | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) + Doc/tools/extensions/pyspecific.py | 69 +++++++++++++++++++++++++------------ + 1 file changed, 47 insertions(+), 22 deletions(-) -Index: Python-3.13.7/Doc/tools/extensions/pyspecific.py +Index: Python-3.13.11/Doc/tools/extensions/pyspecific.py =================================================================== ---- Python-3.13.7.orig/Doc/tools/extensions/pyspecific.py -+++ Python-3.13.7/Doc/tools/extensions/pyspecific.py -@@ -25,11 +25,21 @@ from sphinx.util.docutils import SphinxD - SOURCE_URI = 'https://github.com/python/cpython/tree/3.13/%s' +--- Python-3.13.11.orig/Doc/tools/extensions/pyspecific.py 2025-12-05 17:06:33.000000000 +0100 ++++ Python-3.13.11/Doc/tools/extensions/pyspecific.py 2025-12-18 23:38:44.804668556 +0100 +@@ -1,12 +1,12 @@ + # -*- coding: utf-8 -*- + """ +- pyspecific.py +- ~~~~~~~~~~~~~ ++pyspecific.py ++~~~~~~~~~~~~~ - # monkey-patch reST parser to disable alphabetic and roman enumerated lists +- Sphinx extension with Python doc-specific markup. ++Sphinx extension with Python doc-specific markup. + +- :copyright: 2008-2014 by Georg Brandl. +- :license: Python license. ++:copyright: 2008-2014 by Georg Brandl. ++:license: Python license. + """ + + import re +@@ -22,30 +22,50 @@ + from sphinx.util.docutils import SphinxDirective + + # Used in conf.py and updated here by python/release-tools/run_release.py +-SOURCE_URI = 'https://github.com/python/cpython/tree/3.13/%s' ++SOURCE_URI = "https://github.com/python/cpython/tree/3.13/%s" ++ ++ ++# monkey-patch reST parser to disable alphabetic and roman enumerated lists +def _disable_alphabetic_and_roman(text): + try: + # docutils >= 0.22 + from docutils.parsers.rst.states import InvalidRomanNumeralError ++ + raise InvalidRomanNumeralError(text) + except ImportError: + # docutils < 0.22 + return None + + - from docutils.parsers.rst.states import Body - Body.enum.converters['loweralpha'] = \ - Body.enum.converters['upperalpha'] = \ - Body.enum.converters['lowerroman'] = \ -- Body.enum.converters['upperroman'] = lambda x: None -+ Body.enum.converters['upperroman'] = _disable_alphabetic_and_roman - ++from docutils.parsers.rst.states import Body ++ ++Body.enum.converters["loweralpha"] = Body.enum.converters["upperalpha"] = ( ++ Body.enum.converters["lowerroman"] ++) = Body.enum.converters["upperroman"] = _disable_alphabetic_and_roman ++ class PyAwaitableMixin(object): + def handle_signature(self, sig, signode): + ret = super(PyAwaitableMixin, self).handle_signature(sig, signode) +- signode.insert(0, addnodes.desc_annotation('awaitable ', 'awaitable ')) ++ signode.insert(0, addnodes.desc_annotation("awaitable ", "awaitable ")) + return ret + + + class PyAwaitableFunction(PyAwaitableMixin, PyFunction): + def run(self): +- self.name = 'py:function' ++ self.name = "py:function" + return PyFunction.run(self) + + + class PyAwaitableMethod(PyAwaitableMixin, PyMethod): + def run(self): +- self.name = 'py:method' ++ self.name = "py:method" + return PyMethod.run(self) + + + # Support for documenting Opcodes + +-opcode_sig_re = re.compile(r'(\w+(?:\+\d)?)(?:\s*\((.*)\))?') ++opcode_sig_re = re.compile(r"(\w+(?:\+\d)?)(?:\s*\((.*)\))?") + + + def parse_opcode_signature(env, sig, signode): +@@ -64,7 +84,7 @@ + + # Support for documenting pdb commands + +-pdbcmd_sig_re = re.compile(r'([a-z()!]+)\s*(.*)') ++pdbcmd_sig_re = re.compile(r"([a-z()!]+)\s*(.*)") + + # later... + # pdbargs_tokens_re = re.compile(r'''[a-zA-Z]+ | # identifiers +@@ -80,16 +100,16 @@ + if m is None: + raise ValueError + name, args = m.groups() +- fullname = name.replace('(', '').replace(')', '') ++ fullname = name.replace("(", "").replace(")", "") + signode += addnodes.desc_name(name, name) + if args: +- signode += addnodes.desc_addname(' '+args, ' '+args) ++ signode += addnodes.desc_addname(" " + args, " " + args) + return fullname + + + def parse_monitoring_event(env, sig, signode): + """Transform a monitoring event signature into RST nodes.""" +- signode += addnodes.desc_addname('sys.monitoring.events.', 'sys.monitoring.events.') ++ signode += addnodes.desc_addname("sys.monitoring.events.", "sys.monitoring.events.") + signode += addnodes.desc_name(sig, sig) + return sig + +@@ -102,7 +122,7 @@ + As such, we link this to ``env-check-consistency``, even though it has + nothing to do with the environment consistency check. + """ +- if app.builder.name != 'gettext': ++ if app.builder.name != "gettext": + return + + # allow translating deprecated index entries +@@ -119,10 +139,15 @@ + + + def setup(app): +- app.add_object_type('opcode', 'opcode', '%s (opcode)', parse_opcode_signature) +- app.add_object_type('pdbcommand', 'pdbcmd', '%s (pdb command)', parse_pdb_command) +- app.add_object_type('monitoring-event', 'monitoring-event', '%s (monitoring event)', parse_monitoring_event) +- app.add_directive_to_domain('py', 'awaitablefunction', PyAwaitableFunction) +- app.add_directive_to_domain('py', 'awaitablemethod', PyAwaitableMethod) +- app.connect('env-check-consistency', patch_pairindextypes) +- return {'version': '1.0', 'parallel_read_safe': True} ++ app.add_object_type("opcode", "opcode", "%s (opcode)", parse_opcode_signature) ++ app.add_object_type("pdbcommand", "pdbcmd", "%s (pdb command)", parse_pdb_command) ++ app.add_object_type( ++ "monitoring-event", ++ "monitoring-event", ++ "%s (monitoring event)", ++ parse_monitoring_event, ++ ) ++ app.add_directive_to_domain("py", "awaitablefunction", PyAwaitableFunction) ++ app.add_directive_to_domain("py", "awaitablemethod", PyAwaitableMethod) ++ app.connect("env-check-consistency", patch_pairindextypes) ++ return {"version": "1.0", "parallel_read_safe": True}
