Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python313 for openSUSE:Factory 
checked in at 2026-02-18 17:04:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python313 (Old)
 and      /work/SRC/openSUSE:Factory/.python313.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python313"

Wed Feb 18 17:04:24 2026 rev:37 rq:1332992 version:3.13.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/python313/python313.changes      2025-12-29 
15:15:50.712647569 +0100
+++ /work/SRC/openSUSE:Factory/.python313.new.1977/python313.changes    
2026-02-18 17:04:31.011443815 +0100
@@ -1,0 +2,320 @@
+Fri Feb  6 10:28:12 UTC 2026 - Matej Cepl <[email protected]>
+
+- Update to 3.13.12: Python 3.13.12 final Release date:
+  2026-02-03
+  - Tools/Demos
+    - gh-142095: Make gdb ‘py-bt’ command use frame from thread
+      local state when available. Patch by Sam Gross and Victor
+      Stinner.
+  - Tests
+    - gh-144415: The Android testbed now distinguishes between
+      stdout/stderr messages which were triggered by a newline,
+      and those triggered by a manual call to flush. This fixes
+      logging of progress indicators and similar content.
+    - gh-65784: Add support for parametrized resource wantobjects
+      in regrtests, which allows to run Tkinter tests with the
+      specified value of tkinter.wantobjects, for example -u
+      wantobjects=0.
+    - gh-143553: Add support for parametrized resources, such as
+      -u xpickle=2.7.
+    - gh-142836: Accommodated Solaris in
+      test_pdb.test_script_target_anonymous_pipe.
+    - gh-129401: Fix a flaky test in test_repr_rlock that checks
+      the representation of multiprocessing.RLock.
+    - bpo-31391: Forward-port test_xpickle from Python 2 to
+      Python 3 and add the resource back to test’s command line.
+  - Security
+    - gh-144125: BytesGenerator will now refuse to serialize
+      (write) headers that are unsafely folded or delimited; see
+      verify_generated_headers. (Contributed by Bas Bloemsaat and
+      Petr Viktorin in gh-121650).
+    - gh-143935: Fixed a bug in the folding of comments when
+      flattening an email message using a modern email policy.
+      Comments consisting of a very long sequence of non-foldable
+      characters could trigger a forced line wrap that omitted
+      the required leading space on the continuation line,
+      causing the remainder of the comment to be interpreted as
+      a new header field. This enabled header injection with
+      carefully crafted inputs (bsc#1257029, CVE-2025-11468).
+    - gh-143925: Reject control characters in data: URL media
+      types (bsc#1257046, CVE-2025-15282).
+    - gh-143919: Reject control characters in http.cookies.Morsel
+      fields and values (bsc#1257031, CVE-2026-0672).
+    - gh-143916: Reject C0 control characters within
+      wsgiref.headers.Headers fields, values, and parameters
+      (bsc#1257042, CVE-2026-0865).
+  - Library
+    - gh-144380: Improve performance of io.BufferedReader line
+      iteration by ~49%.
+    - gh-144169: Fix three crashes when non-string keyword
+      arguments are supplied to objects in the ast module.
+    - gh-144100: Fixed a crash in ctypes when using a deprecated
+      POINTER(str) type in argtypes. Instead of aborting, ctypes
+      now raises a proper Python exception when the pointer
+      target type is unresolved.
+    - gh-144050: Fix stat.filemode() in the pure-Python
+      implementation to avoid misclassifying invalid mode values
+      as block devices.
+    - gh-144023: Fixed validation of file descriptor 0 in posix
+      functions when used with follow_symlinks parameter.
+    - gh-143999: Fix an issue where inspect.getgeneratorstate()
+      and inspect.getcoroutinestate() could fail for generators
+      wrapped by types.coroutine() in the suspended state.
+    - gh-143706: Fix multiprocessing forkserver so that sys.argv
+      is correctly set before __main__ is preloaded. Previously,
+      sys.argv was empty during main module import in forkserver
+      child processes. This fixes a regression introduced in
+      3.13.8 and 3.14.1. Root caused by Aaron Wieczorek, test
+      provided by Thomas Watson, thanks!
+    - gh-143638: Forbid reentrant calls of the pickle.Pickler and
+      pickle.Unpickler methods for the C implementation.
+      Previously, this could cause crash or data corruption, now
+      concurrent calls of methods of the same object raise
+      RuntimeError.
+    - gh-78724: Raise RuntimeError’s when user attempts to call
+      methods on half-initialized Struct objects, For example,
+      created by Struct.__new__(Struct). Patch by Sergey
+      B Kirpichev.
+    - gh-143602: Fix a inconsistency issue in write() that leads
+      to unexpected buffer overwrite by deduplicating the buffer
+      exports.
+    - gh-143547: Fix sys.unraisablehook() when the hook raises an
+      exception and changes sys.unraisablehook(): hold a strong
+      reference to the old hook. Patch by Victor Stinner.
+    - gh-143378: Fix use-after-free crashes when a BytesIO object
+      is concurrently mutated during write() or writelines().
+    - gh-143346: Fix incorrect wrapping of the Base64 data in
+      plistlib._PlistWriter when the indent contains a mix of
+      tabs and spaces.
+    - gh-143310: tkinter: fix a crash when a Python list is
+      mutated during the conversion to a Tcl object (e.g., when
+      setting a Tcl variable). Patch by Bénédikt Tran.
+    - gh-143309: Fix a crash in os.execve() on non-Windows
+      platforms when given a custom environment mapping which is
+      then mutated during parsing. Patch by Bénédikt Tran.
+    - gh-143308: pickle: fix use-after-free crashes when
+      a PickleBuffer is concurrently mutated by a custom buffer
+      callback during pickling. Patch by Bénédikt Tran and Aaron
+      Wieczorek.
+    - gh-143237: Fix support of named pipes in the rotating
+      logging handlers.
+    - gh-143249: Fix possible buffer leaks in Windows overlapped
+      I/O on error handling.
+    - gh-143241: zoneinfo: fix infinite loop in
+      ZoneInfo.from_file when parsing a malformed TZif file.
+      Patch by Fatih Celik.
+    - gh-142830: sqlite3: fix use-after-free crashes when the
+      connection’s callbacks are mutated during a callback
+      execution. Patch by Bénédikt Tran.
+    - gh-143200: xml.etree.ElementTree: fix use-after-free
+      crashes in __getitem__() and __setitem__() methods of
+      Element when the element is concurrently mutated. Patch by
+      Bénédikt Tran.
+    - gh-142195: Updated timeout evaluation logic in subprocess
+      to be compatible with deterministic environments like
+      Shadow where time moves exactly as requested.
+    - gh-143145: Fixed a possible reference leak in ctypes when
+      constructing results with multiple output parameters on
+      error.
+    - gh-122431: Corrected the error message in
+      readline.append_history_file() to state that nelements must
+      be non-negative instead of positive.
+    - gh-143004: Fix a potential use-after-free in
+      collections.Counter.update() when user code mutates the
+      Counter during an update.
+    - gh-143046: The asyncio REPL no longer prints copyright and
+      version messages in the quiet mode (-q). Patch by Bartosz
+      Sławecki.
+    - gh-140648: The asyncio REPL now respects the -I flag
+      (isolated mode). Previously, it would load and execute
+      PYTHONSTARTUP even if the flag was set. Contributed by
+      Bartosz Sławecki.
+    - gh-142991: Fixed socket operations such as recvfrom() and
+      sendto() for FreeBSD divert(4) socket.
+    - gh-143010: Fixed a bug in mailbox where the precise timing
+      of an external event could result in the library opening an
+      existing file instead of a file it expected to create.
+    - gh-142881: Fix concurrent and reentrant call of
+      atexit.unregister().
+    - gh-112127: Fix possible use-after-free in
+      atexit.unregister() when the callback is unregistered
+      during comparison.
+    - gh-142783: Fix zoneinfo use-after-free with descriptor
+      _weak_cache. a descriptor as _weak_cache could cause
+      crashes during object creation. The fix ensures proper
+      reference counting for descriptor-provided objects.
+    - gh-142754: Add the ownerDocument attribute to
+      xml.dom.minidom elements and attributes created by directly
+      instantiating the Element or Attr class. Note that this way
+      of creating nodes is not supported; creator functions like
+      xml.dom.Document.documentElement() should be used instead.
+    - gh-142784: The asyncio REPL now properly closes the loop
+      upon the end of interactive session. Previously, it could
+      cause surprising warnings. Contributed by Bartosz Sławecki.
+    - gh-142555: array: fix a crash in a[i] = v when converting
+      i to an index via i.__index__ or i.__float__ mutates the
+      array.
+    - gh-142594: Fix crash in TextIOWrapper.close() when the
+      underlying buffer’s closed property calls detach().
+    - gh-142451: hmac: Ensure that the HMAC.block_size attribute
+      is correctly copied by HMAC.copy. Patch by Bénédikt Tran.
+    - gh-142495: collections.defaultdict now prioritizes
+      __setitem__() when inserting default values from
+      default_factory. This prevents race conditions where
+      a default value would overwrite a value set before
+      default_factory returns.
+    - gh-142651: unittest.mock: fix a thread safety issue where
+      Mock.call_count may return inaccurate values when the mock
+      is called concurrently from multiple threads.
+    - gh-142595: Added type check during initialization of the
+      decimal module to prevent a crash in case of broken stdlib.
+      Patch by Sergey B Kirpichev.
+    - gh-142517: The non-compat32 email policies now correctly
+      handle refolding encoded words that contain bytes that can
+      not be decoded in their specified character set. Previously
+      this resulted in an encoding exception during folding.
+    - gh-112527: The help text for required options in argparse
+      no longer extended with “ (default: None)”.
+    - gh-142315: Pdb can now run scripts from anonymous pipes
+      used in process substitution. Patch by Bartosz Sławecki.
+    - gh-142282: Fix winreg.QueryValueEx() to not accidentally
+      read garbage buffer under race condition.
+    - gh-75949: Fix argparse to preserve | separators in mutually
+      exclusive groups when the usage line wraps due to length.
+    - gh-68552: MisplacedEnvelopeHeaderDefect and Missing header
+      name defects are now correctly passed to the handle_defect
+      method of policy in FeedParser.
+    - gh-142006: Fix a bug in the email.policy.default folding
+      algorithm which incorrectly resulted in a doubled newline
+      when a line ending at exactly max_line_length was followed
+      by an unfoldable token.
+    - gh-105836: Fix asyncio.run_coroutine_threadsafe() leaving
+      underlying cancelled asyncio task running.
+    - gh-139971: pydoc: Ensure that the link to the online
+      documentation of a stdlib module is correct.
+    - gh-139262: Some keystrokes can be swallowed in the new
+      PyREPL on Windows, especially when used together with the
+      ALT key. Fix by Chris Eibl.
+    - gh-138897: Improved license/copyright/credits display in
+      the REPL: now uses a pager.
+    - gh-79986: Add parsing for References and In-Reply-To
+      headers to the email library that parses the header content
+      as lists of message id tokens. This prevents them from
+      being folded incorrectly.
+    - gh-109263: Starting a process from spawn context in
+      multiprocessing no longer sets the start method globally.
+    - gh-90871: Fixed an off by one error concerning the backlog
+      parameter in create_unix_server(). Contributed by Christian
+      Harries.
+    - gh-133253: Fix thread-safety issues in linecache.
+    - gh-132715: Skip writing objects during marshalling once
+      a failure has occurred.
+    - gh-127529: Correct behavior of
+      asyncio.selector_events.BaseSelectorEventLoop._accept_connection()
+      in handling ConnectionAbortedError in a loop. This improves
+      performance on OpenBSD.
+  - IDLE
+    - gh-143774: Better explain the operation of Format / Format
+      Paragraph.
+  - Documentation
+    - gh-140806: Add documentation for enum.bin().
+  - Core and Builtins
+    - gh-144307: Prevent a reference leak in module teardown at
+      interpreter finalization.
+    - gh-144194: Fix error handling in perf jitdump
+      initialization on memory allocation failure.
+    - gh-141805: Fix crash in set when objects with the same hash
+      are concurrently added to the set after removing an element
+      with the same hash while the set still contains elements
+      with the same hash.
+    - gh-143670: Fixes a crash in ga_repr_items_list function.
+    - gh-143377: Fix a crash in _interpreters.capture_exception()
+      when the exception is incorrectly formatted. Patch by
+      Bénédikt Tran.
+    - gh-143189: Fix crash when inserting a non-str key into
+      a split table dictionary when the key matches an existing
+      key in the split table but has no corresponding value in
+      the dict.
+    - gh-143228: Fix use-after-free in perf trampoline when
+      toggling profiling while threads are running or during
+      interpreter finalization with daemon threads active. The
+      fix uses reference counting to ensure trampolines are not
+      freed while any code object could still reference them.
+      Pach by Pablo Galindo
+    - gh-142664: Fix a use-after-free crash in
+      memoryview.__hash__ when the __hash__ method of the
+      referenced object mutates that object or the view. Patch by
+      Bénédikt Tran.
+    - gh-142557: Fix a use-after-free crash in bytearray.__mod__
+      when the bytearray is mutated while formatting the %-style
+      arguments. Patch by Bénédikt Tran.
+    - gh-143195: Fix use-after-free crashes in bytearray.hex()
+      and memoryview.hex() when the separator’s __len__() mutates
+      the original object. Patch by Bénédikt Tran.
+    - gh-143135: Set sys.flags.inspect to 1 when PYTHONINSPECT is
+      0. Previously, it was set to 0 in this case.
+    - gh-143003: Fix an overflow of the shared empty buffer in
+      bytearray.extend() when __length_hint__() returns 0 for
+      non-empty iterator.
+    - gh-143006: Fix a possible assertion error when comparing
+      negative non-integer float and int with the same number of
+      bits in the integer part.
+    - gh-142776: Fix a file descriptor leak in import.c
+    - gh-142829: Fix a use-after-free crash in
+      contextvars.Context comparison when a custom __eq__ method
+      modifies the context via set().
+    - gh-142766: Clear the frame of a generator when
+      generator.close() is called.
+    - gh-142737: Tracebacks will be displayed in fallback mode
+      even if io.open() is lost. Previously, this would crash the
+      interpreter. Patch by Bartosz Sławecki.
+    - gh-142554: Fix a crash in divmod() when
+      _pylong.int_divmod() does not return a tuple of length two
+      exactly. Patch by Bénédikt Tran.
+    - gh-142560: Fix use-after-free in bytearray search-like
+      methods (find(), count(), index(), rindex(), and rfind())
+      by marking the storage as exported which causes
+      reallocation attempts to raise BufferError. For contains(),
+      split(), and rsplit() the buffer protocol is used for this.
+    - gh-142343: Fix SIGILL crash on m68k due to incorrect
+      assembly constraint.
+    - gh-141732: Ensure the __repr__() for ExceptionGroup and
+      BaseExceptionGroup does not change when the exception
+      sequence that was original passed in to its constructor is
+      subsequently mutated.
+    - gh-100964: Fix reference cycle in exhausted generator
+      frames. Patch by Savannah Ostrowski.
+    - gh-140373: Correctly emit PY_UNWIND event when generator
+      object is closed. Patch by Mikhail Efimov.
+    - gh-138568: Adjusted the built-in help() function so that
+      empty inputs are ignored in interactive mode.
+    - gh-127773: Do not use the type attribute cache for types
+      with incompatible MRO.
+  - C API
+    - gh-142571: PyUnstable_CopyPerfMapFile() now checks that
+      opening the file succeeded before flushing.
+  - Build
+    - gh-142454: When calculating the digest of the JIT stencils
++++ 27 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python313/python313.changes
++++ and /work/SRC/openSUSE:Factory/.python313.new.1977/python313.changes

Old:
----
  Python-3.13.11.tar.xz
  Python-3.13.11.tar.xz.sigstore
  gh138131-exclude-pycache-from-digest.patch

New:
----
  Python-3.13.12.tar.xz
  Python-3.13.12.tar.xz.sigstore

----------(Old B)----------
  Old:  - CVE-2024-6923-follow-up-EOL-email-headers.patch
  - gh138131-exclude-pycache-from-digest.patch
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python313.spec ++++++
--- /var/tmp/diff_new_pack.E1h6U1/_old  2026-02-18 17:04:33.407543542 +0100
+++ /var/tmp/diff_new_pack.E1h6U1/_new  2026-02-18 17:04:33.407543542 +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.11
+Version:        3.13.12
 %define         tarversion %{version}
 %define         tarname    Python-%{tarversion}
 Release:        0
@@ -231,13 +231,12 @@
 # PATCH-FIX-UPSTREAM bsc1243155-sphinx-non-determinism.patch bsc#1243155 
[email protected]
 # Doc: Generate ids for audit_events using docname
 Patch43:        bsc1243155-sphinx-non-determinism.patch
-# PATCH-FIX-UPSTREAM gh138131-exclude-pycache-from-digest.patch bsc#1244680 
[email protected]
-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 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
+#### END OF PATCHES
 BuildRequires:  autoconf-archive
 BuildRequires:  automake
 BuildRequires:  fdupes

++++++ Python-3.13.11.tar.xz -> Python-3.13.12.tar.xz ++++++
/work/SRC/openSUSE:Factory/python313/Python-3.13.11.tar.xz 
/work/SRC/openSUSE:Factory/.python313.new.1977/Python-3.13.12.tar.xz differ: 
char 26, line 1

++++++ Python-3.13.11.tar.xz.sigstore -> Python-3.13.12.tar.xz.sigstore ++++++
--- /work/SRC/openSUSE:Factory/python313/Python-3.13.11.tar.xz.sigstore 
2025-12-29 15:15:50.052620459 +0100
+++ 
/work/SRC/openSUSE:Factory/.python313.new.1977/Python-3.13.12.tar.xz.sigstore   
    2026-02-18 17:04:28.847353743 +0100
@@ -1 +1 @@
-{"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="}}
+{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIICyjCCAlCgAwIBAgIUd3BGt1gyhZ7BYbeseXA8c2DdibQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwMjAzMTg0NjE3WhcNMjYwMjAzMTg1NjE3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhYYPicRn+qIiC5+ir76HQcoQUTnX3KLGAgxVNTF5qRezq3JVyV0AeF353c+3WeEFB7GhcjofduneHxMs2p21A6OCAW8wggFrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG3GWlZLEo5y8PJOC6U6XWWbXq8cwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHwYDVR0RAQH/BBUwE4ERdGhvbWFzQHB5dGhvbi5vcmcwKQYKKwYBBAGDvzABAQQbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMCsGCisGAQQBg78wAQgEHQwbaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGcJNOo+wAABAMARzBFAiEApD1YZUZXVCGknmq657Zse2+YPJ/iZc2Pph8/wslkS7QCIB5mRDcUKHCP4TLuyjgHeDVI+A3qPbVma4+hhb6mQjIsMAoGCCqGSM49BAMDA2gAMGUCMQClqgtzmDVKL5zwgGROBysRopsp0461OQHyxhASnDJQG/tY0PveEuPb
 
btU+TQINZaICMFqsBkwPD1Tgi9j/0k13uWkwL0IzBlQYTE/uDGDgGNWuLMGCBrQxmCX0Xf3DcXiSjQ=="},
 "tlogEntries": [{"logIndex": "908847189", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1770144377", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEUCIGNrL5qqFLzEyrVZqoLqGeluJyDcBiUW+xH2EhahmcsTAiEAm4PesuuW6wzQPbJ9nA2D3mBWVrjAWHkMzCPt3835QRs="},
 "inclusionProof": {"logIndex": "786942927", "rootHash": 
"EgpCmVjI8oTeCJcLVThE/0oBJ+O3miuDi5862MoSKg4=", "treeSize": "786942929", 
"hashes": ["vDGmESfo+3WREhBX+C0JPCLCXw3NB5qxd5BNDVzbsY8=", 
"gh3YBupXIi36VWGWTVXREyz/aHq+ahuNYDvqZC5wvEU=", 
"mv7ccIGFOs2AwaHEU4thGs4NKJLDldENwpQ/I3ti4OY=", 
"kJutZiX5uChzl1jeE/mTtjkUPgMp1oyjS7NGcv8xdYM=", 
"+rsRdjiDSje1c9hKWpmUkBTK/nm+MBvFrl5DYf4aU8Y=", 
"5LuuvmQFM1Ryxvv0Lh7dEFIzxoQoQRnH7N6lRjJcCN4=", 
"II44u3SxcMKISKszNmAuwI0KJZIa6Un71DErWqv92N8=", 
"vj08yXl/3gdj1DXG6BkZp92sZ/er/vWcoo0pzk1YCLs=", 
"jzkc9wE6zVpNiJNdF2fSmIBYCVZtZfNfFENtxUj
 ZK5Q=", "ViaaI9ll2bJAEESz+ovl9K0tZOH1M6bjnFvwAKo5wj8=", 
"C8IdXG4/BpM/0SMt4jgVtVXsHbREYrssK0MuEKWpuhg=", 
"QdVJN4pI2za6IrM4/I4o9aeZMiXnx7faJSZQMhMmtU8=", 
"sCWg+jViEKkz6QEEx56tYG4vykLu2WiALyfOcM96toQ=", 
"AAtQsmfrXzumS5rosvNxszWd2XG1lRck4WtRuwVAiU8=", 
"bGXXJ36FovKuLHu/UAyDMaXYRCr5fKcrc9rlbjQ7HDs=", 
"iEKYdHrZdRVr6DbpjA8Lcwmot+QZOoeZ1BAEuu/Bvro=", 
"RBHg3kfW74vkatMSjoUEMZxs4pXkX6y3f906Fc2Yc0Y=", 
"YEPMagC4YFWQMmrwdZHLOWJudK6RRRuGHVQ8/uADabI=", 
"yeCWAa93hha1YBKuFn93zBzKbqQW3tYHrgkSp5U7ndU=", 
"4O6YxKguFZGEr7Xsa3hqNAN2Qq7uVVat/IV4masT570=", 
"F9MSQ5SmoFr+hoADclpdFY52/TLfHDnNPYb9ZNYO5gI=", 
"T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n786942929\nEgpCmVjI8oTeCJcLVThE/0oBJ+O3miuDi5862MoSKg4=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBFAiEAinMhjfRYpijs93FgPot0PIVfGyDAV8ku7dd/XeHM9HQCIEuCtFplaxKCpc0DDbSve4E43M7ldHHk4Yo+Cp2rgcAe\n"}},
 "canonicalizedBody": 
"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7
 
Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyYTg0Y2QzMWRkOGQ4ZWE4YWFmZjc1ZGU2NmZjMWI0YjAxMjdkZDU3OTlhYTUwYTY0YWU5YTMxMzg4NWI0NTkzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNCM3U2MzF0Rk9vV1A5QzA3UEMyWG5HTEd2UllFSGJPZ1ZYVW5OUGxvYnV3SWdaVGxxR2dMYjJ0Wi9XSWp6bEE3RXFQR01LNE10Q3h4RFpvdnVYcUJLditvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjVha05EUVd4RFowRjNTVUpCWjBsVlpETkNSM1F4WjNsb1dqZENXV0psYzJWWVFUaGpNa1JrYVdKUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDFxUVhwTlZHY3dUbXBGTTFkb1kwNU5hbGwzVFdwQmVrMVVaekZPYWtVelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZvV1ZsUWFXTlNiaXR4U1dsRE5TdHBjamMyU0ZGamIxRlZWRzVZTTB0TVIwRm5lRllLVGxSR05YRlNaWHB4TTBwV2VWWXdRV1ZHTXpVell5c3pWMlZGUmtJM1IyaGphbTltWkhWdVpVaDRUWE15Y0RJeFFUWlBRMEZYT0hkblowWnlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQ
 
lZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZITTBkWENteGFURVZ2TlhrNFVFcFBRelpWTmxoWFYySlljVGhqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoM1dVUldVakJTUVZGSUwwSkNWWGRGTkVWU1pFZG9kbUpYUm5wUlNFSTFaRWRvZG1KcE5YWmpiV04zUzFGWlMwdDNXVUpDUVVkRWRucEJRZ3BCVVZGaVlVaFNNR05JVFRaTWVUbG9XVEpPZG1SWE5UQmplVFZ1WWpJNWJtSkhWWFZaTWpsMFRVTnpSME5wYzBkQlVWRkNaemM0ZDBGUlowVklVWGRpQ21GSVVqQmpTRTAyVEhrNWFGa3lUblprVnpVd1kzazFibUl5T1c1aVIxVjFXVEk1ZEUxSlIwdENaMjl5UW1kRlJVRmtXalZCWjFGRFFraDNSV1ZuUWpRS1FVaFpRVE5VTUhkaGMySklSVlJLYWtkU05HTnRWMk16UVhGS1MxaHlhbVZRU3pNdmFEUndlV2RET0hBM2J6UkJRVUZIWTBwT1QyOHJkMEZCUWtGTlFRcFNla0pHUVdsRlFYQkVNVmxhVlZwWVZrTkhhMjV0Y1RZMU4xcHpaVElyV1ZCS0wybGFZekpRY0dnNEwzZHpiR3RUTjFGRFNVSTFiVkpFWTFWTFNFTlFDalJVVEhWNWFtZElaVVJXU1N0Qk0zRlFZbFp0WVRRcmFHaGlObTFSYWtselRVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeVowRk5SMVZEVFZGRGJIRm5kSG9LYlVSV1MwdzFlbmRuUjFKUFFubHpVbTl3YzNBd05EWXhUMUZJZVhob1FWTnVSRXBSUnk5MFdUQlFkbVZGZFZCaVluUlZLMVJSU1U1YVlVbE
 
RUVVp4Y3dwQ2EzZFFSREZVWjJrNWFpOHdhekV6ZFZkcmQwd3dTWHBDYkZGWlZFVXZkVVJIUkdkSFRsZDFURTFIUTBKeVVYaHRRMWd3V0dZelJHTllhVk5xVVQwOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],
 "timestampVerificationData": {}}, "messageSignature": {"messageDigest": 
{"algorithm": "SHA2_256", "digest": 
"KoTNMd2Njqiq/3XeZvwbSwEn3VeZqlCmSumjE4hbRZM="}, "signature": 
"MEUCIQCB3u631tFOoWP9C07PC2XnGLGvRYEHbOgVXUnNPlobuwIgZTlqGgLb2tZ/WIjzlA7EqPGMK4MtCxxDZovuXqBKv+o="}}

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.E1h6U1/_old  2026-02-18 17:04:33.583550868 +0100
+++ /var/tmp/diff_new_pack.E1h6U1/_new  2026-02-18 17:04:33.587551035 +0100
@@ -1,6 +1,6 @@
-mtime: 1766169483
-commit: 8b786ccb53d8b84a3f5de332e7818391999f089156311280f94b090fba2bbd19
+mtime: 1770676664
+commit: 7116a8594aadbb43353fee937141f07960ec75f85aaa9960c5f92011cb4e42a7
 url: https://src.opensuse.org/python-interpreters/python313.git
-revision: 8b786ccb53d8b84a3f5de332e7818391999f089156311280f94b090fba2bbd19
+revision: 7116a8594aadbb43353fee937141f07960ec75f85aaa9960c5f92011cb4e42a7
 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj
 

++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++
--- /var/tmp/diff_new_pack.E1h6U1/_old  2026-02-18 17:04:33.623552533 +0100
+++ /var/tmp/diff_new_pack.E1h6U1/_new  2026-02-18 17:04:33.627552700 +0100
@@ -13,9 +13,11 @@
  5 files changed, 37 insertions(+), 9 deletions(-)
  create mode 100644 
Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
 
---- a/Doc/library/ensurepip.rst
-+++ b/Doc/library/ensurepip.rst
-@@ -61,7 +61,11 @@ is at least as recent as the one availab
+Index: Python-3.13.12/Doc/library/ensurepip.rst
+===================================================================
+--- Python-3.13.12.orig/Doc/library/ensurepip.rst      2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/library/ensurepip.rst   2026-02-06 11:32:33.737805498 
+0100
+@@ -63,7 +63,11 @@
  By default, ``pip`` is installed into the current virtual environment
  (if one is active) or into the system site packages (if there is no
  active virtual environment). The installation location can be controlled
@@ -28,7 +30,7 @@
  
  .. option:: --root <dir>
  
-@@ -102,7 +106,7 @@ Module API
+@@ -104,7 +108,7 @@
     Returns a string specifying the available version of pip that will be
     installed when bootstrapping an environment.
  
@@ -37,7 +39,7 @@
                          altinstall=False, default_pip=False, \
                          verbosity=0)
  
-@@ -112,6 +116,8 @@ Module API
+@@ -114,6 +118,8 @@
     If *root* is ``None``, then installation uses the default install location
     for the current environment.
  
@@ -46,7 +48,7 @@
     *upgrade* indicates whether or not to upgrade an existing installation
     of an earlier version of ``pip`` to the available version.
  
-@@ -132,6 +138,8 @@ Module API
+@@ -134,6 +140,8 @@
     *verbosity* controls the level of output to :data:`sys.stdout` from the
     bootstrapping operation.
  
@@ -55,9 +57,11 @@
     .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
  
     .. note::
---- a/Lib/ensurepip/__init__.py
-+++ b/Lib/ensurepip/__init__.py
-@@ -106,27 +106,27 @@ def _disable_pip_configuration_settings(
+Index: Python-3.13.12/Lib/ensurepip/__init__.py
+===================================================================
+--- Python-3.13.12.orig/Lib/ensurepip/__init__.py      2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Lib/ensurepip/__init__.py   2026-02-06 11:32:33.738107656 
+0100
+@@ -106,27 +106,27 @@
      os.environ['PIP_CONFIG_FILE'] = os.devnull
  
  
@@ -90,7 +94,7 @@
  
      Note that calling this function will alter both sys.path and os.environ.
      """
-@@ -162,6 +162,8 @@ def _bootstrap(*, root=None, upgrade=Fal
+@@ -162,6 +162,8 @@
          args = ["install", "--no-cache-dir", "--no-index", "--find-links", 
tmpdir]
          if root:
              args += ["--root", root]
@@ -99,7 +103,7 @@
          if upgrade:
              args += ["--upgrade"]
          if user:
-@@ -238,6 +240,11 @@ def _main(argv=None):
+@@ -238,6 +240,11 @@
          help="Install everything relative to this alternate root directory.",
      )
      parser.add_argument(
@@ -111,7 +115,7 @@
          "--altinstall",
          action="store_true",
          default=False,
-@@ -256,6 +263,7 @@ def _main(argv=None):
+@@ -256,6 +263,7 @@
  
      return _bootstrap(
          root=args.root,
@@ -119,9 +123,11 @@
          upgrade=args.upgrade,
          user=args.user,
          verbosity=args.verbosity,
---- a/Lib/test/test_ensurepip.py
-+++ b/Lib/test/test_ensurepip.py
-@@ -101,6 +101,17 @@ class TestBootstrap(EnsurepipMixin, unit
+Index: Python-3.13.12/Lib/test/test_ensurepip.py
+===================================================================
+--- Python-3.13.12.orig/Lib/test/test_ensurepip.py     2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Lib/test/test_ensurepip.py  2026-02-06 11:32:33.738349331 
+0100
+@@ -101,6 +101,17 @@
              unittest.mock.ANY,
          )
  
@@ -139,9 +145,11 @@
      def test_bootstrapping_with_user(self):
          ensurepip.bootstrap(user=True)
  
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -2145,7 +2145,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
+Index: Python-3.13.12/Makefile.pre.in
+===================================================================
+--- Python-3.13.12.orig/Makefile.pre.in        2026-02-06 11:32:32.095115787 
+0100
++++ Python-3.13.12/Makefile.pre.in     2026-02-06 11:32:33.738723445 +0100
+@@ -2145,7 +2145,7 @@
                        install|*) ensurepip="" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -150,7 +158,7 @@
        fi
  
  .PHONY: altinstall
-@@ -2156,7 +2156,7 @@ altinstall: commoninstall
+@@ -2156,7 +2156,7 @@
                        install|*) ensurepip="--altinstall" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -159,8 +167,10 @@
        fi
  
  .PHONY: commoninstall
---- /dev/null
-+++ b/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+Index: 
Python-3.13.12/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ 
Python-3.13.12/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst  
   2026-02-06 11:32:33.739181056 +0100
 @@ -0,0 +1 @@
 +A directory prefix can now be specified when using :mod:`ensurepip`.
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-02-10 11:41:39.000000000 +0100
@@ -0,0 +1,6 @@
+.osc
+*.obscpio
+*.osc
+_build.*
+.pbuild
+python313-*-build/

++++++ doc-py38-to-py36.patch ++++++
--- /var/tmp/diff_new_pack.E1h6U1/_old  2026-02-18 17:04:33.843561690 +0100
+++ /var/tmp/diff_new_pack.E1h6U1/_new  2026-02-18 17:04:33.851562023 +0100
@@ -27,10 +27,10 @@
  Doc/tools/extensions/pydoc_topics.py          |   22 +++++-----
  18 files changed, 159 insertions(+), 130 deletions(-)
 
-Index: Python-3.13.11/Doc/Makefile
+Index: Python-3.13.12/Doc/Makefile
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/Makefile   2026-02-03 18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/Makefile        2026-02-06 11:32:43.257524049 +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.11/Doc/c-api/arg.rst
+Index: Python-3.13.12/Doc/c-api/arg.rst
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/c-api/arg.rst      2026-02-03 18:53:27.000000000 
+0100
++++ Python-3.13.12/Doc/c-api/arg.rst   2026-02-06 11:32:43.257960130 +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.11/Doc/c-api/typeobj.rst
+Index: Python-3.13.12/Doc/c-api/typeobj.rst
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/c-api/typeobj.rst  2026-02-03 18:53:27.000000000 
+0100
++++ Python-3.13.12/Doc/c-api/typeobj.rst       2026-02-06 11:32:43.258653093 
+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.11/Doc/conf.py
+Index: Python-3.13.12/Doc/conf.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/conf.py    2026-02-06 11:32:20.252483695 +0100
++++ Python-3.13.12/Doc/conf.py 2026-02-06 11:32:43.259159426 +0100
 @@ -11,6 +11,8 @@
  from importlib import import_module
  from importlib.util import find_spec
@@ -172,10 +172,10 @@
  # Options for c_annotations extension
  # -----------------------------------
  
-Index: Python-3.13.11/Doc/library/doctest.rst
+Index: Python-3.13.12/Doc/library/doctest.rst
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/library/doctest.rst        2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/library/doctest.rst     2026-02-06 11:32:43.259497242 
+0100
 @@ -310,7 +310,6 @@
  .. currentmodule:: None
  
@@ -184,10 +184,10 @@
  
  .. currentmodule:: doctest
  
-Index: Python-3.13.11/Doc/library/email.compat32-message.rst
+Index: Python-3.13.12/Doc/library/email.compat32-message.rst
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/library/email.compat32-message.rst 2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/library/email.compat32-message.rst      2026-02-06 
11:32:43.259906983 +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.11/Doc/library/xml.etree.elementtree.rst
+Index: Python-3.13.12/Doc/library/xml.etree.elementtree.rst
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/library/xml.etree.elementtree.rst  2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/library/xml.etree.elementtree.rst       2026-02-06 
11:32:43.260169777 +0100
 @@ -873,7 +873,6 @@
  
  .. module:: xml.etree.ElementTree
@@ -208,10 +208,10 @@
  
  .. class:: Element(tag, attrib={}, **extra)
  
-Index: Python-3.13.11/Doc/tools/check-warnings.py
+Index: Python-3.13.12/Doc/tools/check-warnings.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/check-warnings.py    2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/check-warnings.py 2026-02-06 11:32:43.260451727 
+0100
 @@ -228,7 +228,8 @@
              print(filename)
              for warning in warnings:
@@ -222,7 +222,7 @@
                          print("  {line}: {msg}".format_map(match))
          return -1
      return 0
-@@ -316,7 +317,7 @@
+@@ -319,7 +320,7 @@
  
      cwd = str(Path.cwd()) + os.path.sep
      files_with_nits = {
@@ -231,10 +231,10 @@
          for warning in warnings
          if "Doc/" in warning
      }
-Index: Python-3.13.11/Doc/tools/extensions/audit_events.py
+Index: Python-3.13.12/Doc/tools/extensions/audit_events.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/audit_events.py   2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/audit_events.py        2026-02-06 
11:32:43.260742655 +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.11/Doc/tools/extensions/availability.py
+Index: Python-3.13.12/Doc/tools/extensions/availability.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/availability.py   2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/availability.py        2026-02-06 
11:32:43.260981454 +0100
 @@ -1,8 +1,6 @@
  """Support for documenting platform availability"""
  
@@ -427,10 +427,10 @@
      app.add_directive("availability", Availability)
  
      return {
-Index: Python-3.13.11/Doc/tools/extensions/c_annotations.py
+Index: Python-3.13.12/Doc/tools/extensions/c_annotations.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/c_annotations.py  2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/c_annotations.py       2026-02-06 
11:32:43.261164228 +0100
 @@ -9,22 +9,26 @@
  * Set ``stable_abi_file`` to the path to stable ABI list.
  """
@@ -569,10 +569,10 @@
      return {
          "version": "1.0",
          "parallel_read_safe": True,
-Index: Python-3.13.11/Doc/tools/extensions/changes.py
+Index: Python-3.13.12/Doc/tools/extensions/changes.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/changes.py        2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/changes.py     2026-02-06 
11:32:43.261401915 +0100
 @@ -1,7 +1,5 @@
  """Support for documenting version of changes, additions, deprecations."""
  
@@ -608,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.11/Doc/tools/extensions/glossary_search.py
+Index: Python-3.13.12/Doc/tools/extensions/glossary_search.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/glossary_search.py        
2026-02-03 18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/glossary_search.py     2026-02-06 
11:32:43.261561375 +0100
 @@ -1,21 +1,27 @@
  """Feature search results for glossary items prominently."""
  
@@ -655,10 +655,10 @@
      app.connect('doctree-resolved', process_glossary_nodes)
      app.connect('build-finished', write_glossary_json)
  
-Index: Python-3.13.11/Doc/tools/extensions/implementation_detail.py
+Index: Python-3.13.12/Doc/tools/extensions/implementation_detail.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/implementation_detail.py  
2026-02-03 18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/implementation_detail.py       
2026-02-06 11:32:43.261759899 +0100
 @@ -1,17 +1,10 @@
  """Support for marking up implementation details."""
  
@@ -709,10 +709,10 @@
      app.add_directive("impl-detail", ImplementationDetail)
  
      return {
-Index: Python-3.13.11/Doc/tools/extensions/issue_role.py
+Index: Python-3.13.12/Doc/tools/extensions/issue_role.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/issue_role.py     2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/issue_role.py  2026-02-06 
11:32:43.261920641 +0100
 @@ -1,22 +1,18 @@
  """Support for referencing issues in the tracker."""
  
@@ -758,10 +758,10 @@
      app.add_role("issue", BPOIssue())
      app.add_role("gh", GitHubIssue())
  
-Index: Python-3.13.11/Doc/tools/extensions/misc_news.py
+Index: Python-3.13.12/Doc/tools/extensions/misc_news.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/misc_news.py      2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/misc_news.py   2026-02-06 
11:32:43.262085421 +0100
 @@ -1,7 +1,5 @@
  """Support for including Misc/NEWS."""
  
@@ -814,10 +814,10 @@
      app.add_directive("miscnews", MiscNews)
  
      return {
-Index: Python-3.13.11/Doc/tools/extensions/patchlevel.py
+Index: Python-3.13.12/Doc/tools/extensions/patchlevel.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/patchlevel.py     2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/patchlevel.py  2026-02-06 
11:32:43.262245612 +0100
 @@ -3,7 +3,7 @@
  import re
  import sys
@@ -855,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.11/Doc/tools/extensions/pydoc_topics.py
+Index: Python-3.13.12/Doc/tools/extensions/pydoc_topics.py
 ===================================================================
---- 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
+--- Python-3.13.12.orig/Doc/tools/extensions/pydoc_topics.py   2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Doc/tools/extensions/pydoc_topics.py        2026-02-06 
11:32:43.262420171 +0100
 @@ -1,21 +1,23 @@
  """Support for building "topic help" for pydoc."""
  
@@ -890,8 +890,8 @@
  
  logger = logging.getLogger(__name__)
  
-@@ -162,7 +164,7 @@
-         self.outdir.joinpath("topics.py").write_text(topics, encoding="utf-8")
+@@ -188,7 +190,7 @@
+         )
  
  
 -def _display_labels(item: tuple[str, Sequence[tuple[str, str]]]) -> str:
@@ -899,7 +899,7 @@
      _docname, label_ids = item
      labels = [name for name, _id in label_ids]
      if len(labels) > 4:
-@@ -170,7 +172,7 @@
+@@ -196,7 +198,7 @@
      return ", ".join(labels)
  
  
@@ -908,7 +908,7 @@
      """Return a triple-single-quoted representation of text."""
      if "'''" not in text:
          return f"r'''{text}'''"
-@@ -178,7 +180,7 @@
+@@ -204,7 +206,7 @@
      return f"'''{text}'''"
  
  

++++++ fix-test-recursion-limit-15.6.patch ++++++
--- /var/tmp/diff_new_pack.E1h6U1/_old  2026-02-18 17:04:33.883563355 +0100
+++ /var/tmp/diff_new_pack.E1h6U1/_new  2026-02-18 17:04:33.887563521 +0100
@@ -2,9 +2,11 @@
  Lib/test/test_compile.py |    5 +++++
  1 file changed, 5 insertions(+)
 
---- a/Lib/test/test_compile.py
-+++ b/Lib/test/test_compile.py
-@@ -21,6 +21,9 @@ from test.support import (script_helper,
+Index: Python-3.13.12/Lib/test/test_compile.py
+===================================================================
+--- Python-3.13.12.orig/Lib/test/test_compile.py       2026-02-03 
18:53:27.000000000 +0100
++++ Python-3.13.12/Lib/test/test_compile.py    2026-02-06 11:32:39.221208472 
+0100
+@@ -21,6 +21,9 @@
  from test.support.bytecode_helper import instructions_with_positions
  from test.support.os_helper import FakePath
  
@@ -14,7 +16,7 @@
  class TestSpecifics(unittest.TestCase):
  
      def compile_single(self, source):
-@@ -117,6 +120,7 @@ class TestSpecifics(unittest.TestCase):
+@@ -117,6 +120,7 @@
          self.assertEqual(d['z'], 12)
  
      @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
@@ -22,7 +24,7 @@
      def test_extended_arg(self):
          repeat = int(get_c_recursion_limit() * 0.9)
          longexpr = 'x = x or ' + '-x' * repeat
-@@ -701,6 +705,7 @@ class TestSpecifics(unittest.TestCase):
+@@ -716,6 +720,7 @@
  
      @support.cpython_only
      @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")

Reply via email to