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}
 

Reply via email to