Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python314 for openSUSE:Factory 
checked in at 2026-01-06 17:44:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python314 (Old)
 and      /work/SRC/openSUSE:Factory/.python314.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python314"

Tue Jan  6 17:44:59 2026 rev:30 rq:1325465 version:3.14.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python314/python314.changes      2025-11-19 
15:02:10.209025736 +0100
+++ /work/SRC/openSUSE:Factory/.python314.new.1928/python314.changes    
2026-01-06 17:46:26.158197102 +0100
@@ -1,0 +2,609 @@
+Thu Dec 11 17:37:09 UTC 2025 - Matej Cepl <[email protected]>
+
+* Update to 3.14.2:
+- Security
+  - gh-142145: Remove quadratic behavior in xml.minidom node ID
+    cache clearing (CVE-2025-12084, bsc#1254997).
+  - 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).
+  - gh-142214: Fix two regressions in dataclasses in Python
+    3.14.1 related to annotations. An exception is no longer
+    raised if slots=True is used and the __init__ method does not
+    have an __annotate__ attribute (likely because init=False was
+    used). An exception is no longer raised if annotations are
+    requested on the __init__ method and one of the fields is not
+    present in the class annotations. This can occur in certain
+    dynamic scenarios. Patch by Jelle Zijlstra.
+- Core and Builtins
+  - gh-142218: Fix crash when inserting into a split table
+    dictionary with a non str key that matches an existing key.
+  - gh-116738: Fix cmath data race when initializing
+    trigonometric tables with subinterpreters.
+* Update to 3.14.1:
+- Tools/Demos
+  - gh-141692: Each slice of an iOS XCframework now contains
+    a lib folder that contains a symlink to the libpython dylib.
+    This allows binary modules to be compiled for iOS using
+    dynamic libreary linking, rather than Framework linking.
+  - gh-141442: The iOS testbed now correctly handles test
+    arguments that contain spaces.
+  - gh-140702: The iOS testbed app will now expose the
+    GITHUB_ACTIONS environment variable to iOS apps being tested.
+  - gh-137484: Have Tools/wasm/wasi put the build Python into
+    a directory named after the build triple instead of “build”.
+  - gh-137248: Add a --logdir option to Tools/wasm/wasi for
+    specifying where to write log files.
+  - gh-137243: Have Tools/wasm/wasi detect a WASI SDK install in
+    /opt when it was directly extracted from a release tarball.
+- 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-139208: Fix regrtest --fast-ci --verbose: don’t ignore the
+    --verbose option anymore. Patch by Victor Stinner.
+  - 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-139283: sqlite3: correctly handle maximum number of rows
+    to fetch in Cursor.fetchmany and reject negative values for
+    Cursor.arraysize. Patch by Bénédikt Tran.
+  - 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-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 (CVE-2025-13836, bsc#1254400)
+  - 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-141600: Fix musl version detection on Void Linux.
+  - 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-137969: Fix annotationlib.ForwardRef.evaluate() returning
+    ForwardRef objects which don’t update with new globals.
+  - 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-125115: Refactor the pdb parsing issue so positional
+    arguments can pass through intuitively.
+  - 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-120057: Add os.reload_environ() to os.__all__.
+  - gh-140228: Avoid making unnecessary filesystem calls for
+    frozen modules in linecache when the global module cache is
+    not present.
+  - gh-140590: Fix arguments checking for the
+    functools.partial.__setstate__() that may lead to internal
+    state corruption and crash. Patch by Sergey Miryanov.
+  - gh-125434: Display thread name in faulthandler on Windows.
+    Patch by Victor Stinner.
+  - 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-138774: ast.unparse() now generates full source code when
+    handling ast.Interpolation nodes that do not have a specified
+    source.
+  - gh-140474: Fix memory leak in array.array when creating
+    arrays from an empty str and the u type code.
+  - gh-137530: dataclasses Fix annotations for generated __init__
+    methods by replacing the annotations that were in-line in the
+    generated source code with __annotate__ functions attached to
+    the methods.
+  - gh-140348: Fix regression in Python 3.14.0 where using the
+    | operator on a typing.Union object combined with an object
+    that is not a type would raise an error.
+  - 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-140120: Fixed a memory leak in hmac when it was using the
+    hacl-star backend. Discovered by @ashm-dev using
+    AddressSanitizer.
+  - 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-139894: Fix incorrect sharing of current task with the
+    child process while forking in asyncio. Patch by Kumar
+    Aditya.
+  - 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-139809: Prevent premature colorization of subparser prog
+    in argparse.ArgumentParser.add_subparsers() to respect color
+    environment variable changes after parser creation.
+  - gh-139736: Fix excessive indentation in the default argparse
+    HelpFormatter. Patch by Alexander Edland.
+  - 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-63161: Fix tokenize.detect_encoding(). Support non-UTF-8
+    shebang and comments if non-UTF-8 encoding is specified.
+    Detect decoding error for non-UTF-8 encoding. Detect null
+    bytes in source code.
+  - 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-139289: Do a real lazy-import on rlcompleter in pdb and
+    restore the existing completer after importing rlcompleter.
+  - 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-139210: Fix use-after-free when reporting unknown event in
+    xml.etree.ElementTree.iterparse(). Patch by Ken Jin.
+  - gh-138860: Lazy import rlcompleter in pdb to avoid deadlock
+    in subprocess.
+  - gh-112729: Fix crash when calling
+    concurrent.interpreters.create() when the process is out of
+    memory.
+  - gh-135729: Fix unraisable exception during finalization when
+    using concurrent.interpreters in the REPL.
+  - gh-139076: Fix a bug in the pydoc module that was hiding
+    functions in a Python module if they were implemented in an
+    extension module and the module did not have __all__.
+  - gh-139065: Fix trailing space before a wrapped long word if
+    the line length is exactly width in textwrap.
+  - gh-139001: Fix race condition in pathlib.Path on the internal
+    _raw_paths field.
+  - gh-138813: multiprocessing.BaseProcess defaults kwargs to
+    None instead of a shared dictionary.
+  - gh-138993: Dedent credits text.
+  - gh-138891: Fix SyntaxError when inspect.get_annotations(f,
+    eval_str=True) is called on a function annotated with a PEP
+    646 star_expression
+  - gh-130567: Fix possible crash in locale.strxfrm() due to
+    a platform bug on macOS.
+  - 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-138764: Prevent annotationlib.call_annotate_function()
+    from calling __annotate__ functions that don’t support
+    VALUE_WITH_FAKE_GLOBALS in a fake globals namespace with
+    empty globals. Make FORWARDREF and STRING annotations fall
+    back to using VALUE annotations in the case that neither
+    their own format, nor VALUE_WITH_FAKE_GLOBALS are supported.
+  - gh-138775: Use of python -m with base64 has been fixed to
+    detect input from a terminal so that it properly notices EOF.
+  - gh-138779: Support device numbers larger than 2**63-1 for the
+    st_rdev field of the os.stat_result structure.
+  - gh-137706: Fix the partial evaluation of annotations that use
+    typing.Annotated[T, x] where T is a forward reference.
+  - gh-88375: Fix normalization of the robots.txt rules and URLs
+    in the urllib.robotparser module. No longer ignore trailing
+    ?. Distinguish raw special characters ?, = and & from the
+    percent-encoded ones.
+  - gh-111788: Fix parsing errors in the urllib.robotparser
+    module. Don’t fail trying to parse weird paths. Don’t fail
+    trying to decode non-UTF-8 robots.txt files.
+  - gh-98896: Fix a failure in multiprocessing resource_tracker
+    when SharedMemory names contain colons. Patch by Rani
++++ 312 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python314/python314.changes
++++ and /work/SRC/openSUSE:Factory/.python314.new.1928/python314.changes

Old:
----
  CVE-2025-6075-expandvars-perf-degrad.patch
  CVE-2025-8291-consistency-zip64.patch
  Python-3.14.0.tar.xz
  Python-3.14.0.tar.xz.sigstore

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

----------(Old B)----------
  Old:- Remove upstreamed patches:
  - CVE-2025-6075-expandvars-perf-degrad.patch
  - CVE-2025-8291-consistency-zip64.patch
  Old:  - CVE-2025-6075-expandvars-perf-degrad.patch
  - CVE-2025-8291-consistency-zip64.patch
----------(Old E)----------

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

Other differences:
------------------
++++++ python314.spec ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:27.670259290 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:27.674259455 +0100
@@ -124,7 +124,7 @@
 # %%define tarversion %%{version}
 # %%endif
 # We don't process beta signs well
-%define         folderversion 3.14.0
+%define         folderversion 3.14.2
 %define         sitedir         %{_libdir}/python%{python_version}
 # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
 %define         abi_kind   %{nil}
@@ -162,7 +162,7 @@
 # _md5.cpython-38m-x86_64-linux-gnu.so
 %define dynlib() 
%{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
 Name:           %{python_pkg_name}%{psuffix}
-Version:        3.14.0
+Version:        3.14.2
 %define         tarversion %{version}
 %define         tarname    Python-%{tarversion}
 Release:        0
@@ -224,12 +224,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
 #### Python 3.14 DEVELOPMENT PATCHES
 BuildRequires:  autoconf-archive
 BuildRequires:  automake

++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:27.702260607 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:27.706260771 +0100
@@ -4,11 +4,11 @@
  Lib/test/test_xml_etree.py |   10 ++++++++++
  3 files changed, 17 insertions(+)
 
-Index: Python-3.14.0/Lib/test/test_pyexpat.py
+Index: Python-3.14.2/Lib/test/test_pyexpat.py
 ===================================================================
---- Python-3.14.0.orig/Lib/test/test_pyexpat.py        2025-10-08 
11:27:29.989583305 +0200
-+++ Python-3.14.0/Lib/test/test_pyexpat.py     2025-10-08 11:28:09.418914658 
+0200
-@@ -827,6 +827,10 @@
+--- Python-3.14.2.orig/Lib/test/test_pyexpat.py        2025-12-11 
18:10:58.057084164 +0100
++++ Python-3.14.2/Lib/test/test_pyexpat.py     2025-12-11 18:12:07.480767746 
+0100
+@@ -848,6 +848,10 @@
          self.assertEqual(started, ['doc'])
  
      def test_reparse_deferral_disabled(self):
@@ -19,10 +19,10 @@
          started = []
  
          def start_element(name, _):
-Index: Python-3.14.0/Lib/test/test_sax.py
+Index: Python-3.14.2/Lib/test/test_sax.py
 ===================================================================
---- Python-3.14.0.orig/Lib/test/test_sax.py    2025-10-08 11:27:30.053760879 
+0200
-+++ Python-3.14.0/Lib/test/test_sax.py 2025-10-08 11:28:09.419532320 +0200
+--- Python-3.14.2.orig/Lib/test/test_sax.py    2025-12-11 18:10:58.116419305 
+0100
++++ Python-3.14.2/Lib/test/test_sax.py 2025-12-11 18:12:07.481506046 +0100
 @@ -1241,6 +1241,9 @@
  
          self.assertEqual(result.getvalue(), start + b"<doc></doc>")
@@ -33,10 +33,10 @@
      def test_flush_reparse_deferral_disabled(self):
          result = BytesIO()
          xmlgen = XMLGenerator(result)
-Index: Python-3.14.0/Lib/test/test_xml_etree.py
+Index: Python-3.14.2/Lib/test/test_xml_etree.py
 ===================================================================
---- Python-3.14.0.orig/Lib/test/test_xml_etree.py      2025-10-08 
11:27:30.502943506 +0200
-+++ Python-3.14.0/Lib/test/test_xml_etree.py   2025-10-08 11:28:09.420206077 
+0200
+--- Python-3.14.2.orig/Lib/test/test_xml_etree.py      2025-12-11 
18:10:58.548740381 +0100
++++ Python-3.14.2/Lib/test/test_xml_etree.py   2025-12-11 18:12:07.481767744 
+0100
 @@ -138,6 +138,11 @@
      return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq)
  
@@ -49,7 +49,7 @@
  def checkwarnings(*filters, quiet=False):
      def decorator(test):
          def newtest(*args, **kwargs):
-@@ -1547,9 +1552,11 @@
+@@ -1573,9 +1578,11 @@
          self.assert_event_tags(parser, [('end', 'root')])
          self.assertIsNone(parser.close())
  
@@ -61,7 +61,7 @@
      def test_simple_xml_chunk_5(self):
          self.test_simple_xml(chunk_size=5, flush=True)
  
-@@ -1774,6 +1781,9 @@
+@@ -1802,6 +1809,9 @@
  
          self.assert_event_tags(parser, [('end', 'doc')])
  

++++++ Python-3.14.0.tar.xz -> Python-3.14.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/python314/Python-3.14.0.tar.xz 
/work/SRC/openSUSE:Factory/.python314.new.1928/Python-3.14.2.tar.xz differ: 
char 26, line 1

++++++ Python-3.14.0.tar.xz.sigstore -> Python-3.14.2.tar.xz.sigstore ++++++
--- /work/SRC/openSUSE:Factory/python314/Python-3.14.0.tar.xz.sigstore  
2025-10-10 17:10:03.043015045 +0200
+++ 
/work/SRC/openSUSE:Factory/.python314.new.1928/Python-3.14.2.tar.xz.sigstore    
    2026-01-06 17:46:24.902145444 +0100
@@ -1 +1 @@
-{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIICzjCCAlOgAwIBAgIUaFNOs99+mdUwhWuy93hUKegEDvowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMDA3MTQxNjE4WhcNMjUxMDA3MTQyNjE4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB4Zs7yR5znQ3xOtA7ekHhkbjmt11y4B0kYTAt5K3MmjxgyQ/FOzoGbiNgP1p76I5OFwbECeL6RtxqjSwJPoj9aOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU6Jy2V0oQb2tmHwImrQplvua+1WkwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABmb8HuYwAAAQDAEYwRAIgZd3lZo6EQ8hFKJ1SnKnh/pOXyLVUxesmKPdZLI/IddsCIHbkeFmcOlHbGXvzusuMaF7GDoHgfjCRXvFE1kPVSPdUMAoGCCqGSM49BAMDA2kAMGYCMQCF3LWgo5EPOs6y59yMkN8HDY/PuX+rch7scxcXUR8K+6BNw1dS
 
8i1nGRkIvE/ttF8CMQCG6z4lu2ekjwZBMx69OmDsUlrQjOvrxmWX3pbLh4Aam7sS25DCYvVFul4RmPg/sJg="},
 "tlogEntries": [{"logIndex": "588222392", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1759846578", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEQCIBS/mvM2EUceWygdN+NmnJMehkFY1fRkmVmmDNICfxWVAiAoN7Vofd2SVuJYSxO/onzd87/3bWNogJlDvI7uZSTR1Q=="},
 "inclusionProof": {"logIndex": "466318130", "rootHash": 
"RcerGwX5+QIiZjrznmUlSGFvuGAq3RMLk/7Aj/T6M3I=", "treeSize": "466318146", 
"hashes": ["5uTZFkdYgFmKJJdqzeeKZfjnq5Mx9K0tDsF0fjJzkCk=", 
"RL5Hp6IOaxPi5M/m3s97bDoAnRux0/JBccJ4+/B1vro=", 
"JYAmi+fU2/Su8fHV3tfQcbY//eCoHsfd2H7O1hs6HIQ=", 
"BbdwHf9ld92J1gFR6vWH/Gv+L9YTGwWAQytyDm+6jYc=", 
"J0rXI11jq+mZyPMktZmo2UlHPQw0Wyl70FQBNujJJog=", 
"tcYxYlxPe1g09Dr+wGWIPrCmHuFjjjwqZ4gRokgj4zE=", 
"X0IhqC7U/8YmeUILMTYIvlKoBEAX3aFw3IWHNcfJifc=", 
"kQWzYHtEr0Vhaq6Z6v4TIiuia6GrJLKcYKs25NPvkms=", 
"WjmJ5Vrat53AbuDR9WjO4SQADjlfkyyq+bK
 kkBO984w=", "k9qNU1WjJDQJ+e4prrbcOORJ5aMBlkIBACMsgKoANg0=", 
"Z7pLmTcnciyz67VEWMgPwiokTg9JVUQWrPf+VS85VlA=", 
"y/7hUHbXERsQubPR1m2uvZSz3rFsW3d9dP51hoTyX/U=", 
"19j/ye5CX1xbsCqb7Xkr1O2BXIOAWPwZsn7TDtr6UVc=", 
"JVKPJjj8WVb6G2sYzX+4PL9fC+4qskYANlO6/TIjQsE=", 
"XTHRaE0cHDl9HYIIwtlwjCK2+pmMP8G2rv801RmA0U8=", 
"ujcC9wUGq4yMg4Sr83ZRaheYdJguBWXGhnp101NfbMo=", 
"Kcf5veFWCVXREqqw2Q7rOJD3ttDxBxePywSepmjiSGo=", 
"5J6N5aNEMk6YY8lPNH0zZx95RNICDJ12cMAmpwtvGTo=", 
"/buh7NyeUdCgJPdaMbTAtiQpMkNHhk+xMsI2shkTieM=", 
"1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=", 
"vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n466318146\nRcerGwX5+QIiZjrznmUlSGFvuGAq3RMLk/7Aj/T6M3I=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBFAiEA9LofhlufYOpmdGvOuS7AvxT5koyDoOFWNEhobBt+UgYCICpTORyuqmFZWs8D1FJAry4ohDUWTSw3JegUDlUUtr3z\n"}},
 "canonicalizedBody": 
"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFs
 
dWUiOiIyMjk5ZGFlNTQyZDM5NWNlMzg4M2FjYTAwZDNjOTEwMzA3Y2Q2OGUwYjJmNzMzNjA5OGM4ZTdiN2VlZTlmM2U5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNQWEhJOW9MdVNJL3RoVDg1ZXBkWlVWakh4d1M4OFpTTExLcjFmWnprWGJnSWdTUFY3ZnV1dytISGhCazljNGlBWGlCNVBJRWdMQ1kwTTVVaXNUM3h1QUcwPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4UFowRjNTVUpCWjBsVllVWk9UM001T1N0dFpGVjNhRmQxZVRremFGVkxaV2RGUkhadmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFFUVROTlZGRjRUbXBGTkZkb1kwNU5hbFY0VFVSQk0wMVVVWGxPYWtVMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZDTkZwek4zbFNOWHB1VVRONFQzUkJOMlZyU0doclltcHRkREV4ZVRSQ01HdFpWRUVLZERWTE0wMXRhbmhuZVZFdlJrOTZiMGRpYVU1blVERndOelpKTlU5R2QySkZRMlZNTmxKMGVIRnFVM2RLVUc5cU9XRlBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqU
 
kVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUyU25reUNsWXdiMUZpTW5SdFNIZEpiWEpSY0d4MmRXRXJNVmRyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnRZamhJZFZsM1FRcEJRVkZFUVVWWmQxSkJTV2RhWkROc1dtODJSVkU0YUVaTFNqRlRia3R1YUM5d1QxaDVURlpWZUdWemJVdFFaRnBNU1M5SlpHUnpRMGxJWW10bFJtMWpDazlzU0dKSFdIWjZkWE4xVFdGR04wZEViMGhuWm1wRFVsaDJSa1V4YTFCV1UxQmtWVTFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbXRCVFVkWlEwMVJRMFlLTTB4WFoyODFSVkJQY3paNU5UbDVUV3RPT0VoRVdTOVFkVmdyY21Ob04zTmplR05ZVlZJNFN5czJRazUzTVdSVE9Ha3hia2RTYTBsMlJTOTBkRVk0UXdwTlVVTkhObm8wYkhVeVpXdHFkMXBDVFhnMk
 
9VOXRSSE5WYkhKUmFrOTJjbmh0VjFnemNHSk1hRFJCWVcwM2MxTXlOVVJEV1haV1JuVnNORkp0VUdjdkNuTktaejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]},
 "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": 
"Ipna5ULTlc44g6ygDTyRAwfNaOCy9zNgmMjnt+7p8+k="}, "signature": 
"MEUCIQCPXHI9oLuSI/thT85epdZUVjHxwS88ZSLLKr1fZzkXbgIgSPV7fuuw+HHhBk9c4iAXiB5PIEgLCY0M5UisT3xuAG0="}}
+{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIICzjCCAlSgAwIBAgIUDsC7oWnW0l9pHr41nnkmS1oOYd4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMjA1MjAwMTUzWhcNMjUxMjA1MjAxMTUzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZEAAJg3xeYECyl7becytac2kIE1oFgQuGjrjBzXQG27d8TeQqTZtRdL5oZOCZt1y/DDoBfdbWul1CPovG+7z2aOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUl4K9C9akjTSm/al0xnJmeooQq/kwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABmvAbUOYAAAQDAEcwRQIgRbXsQrWV8kdhD5tMMwX5Iy2LWWHxil6V5J/mXp+/9/gCIQCwBHKBpWN3SR6/TLPr7oZCZYQB+z5q8lVqybvZSaLS4TAKBggqhkjOPQQDAwNoADBlAjBL6XGjsOPP/N74Rcw3v7CCoe23bfyE18w/XdxmJAsj9Xr6pRdp
 
cRuEytFeLdZWIqICMQDJL2czjBTiWUkqrLq31Cvp+fQhuGSp9IZsVbTo+j6tSzfa1dwu0sy2kjBtlcRbYVs="},
 "tlogEntries": [{"logIndex": "743606302", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1764964913", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEQCIFnGvsHdMeYy8nrwtVTdv/PaR1aTDwf9Yrv2GjdsNsw+AiAR2o0BrjcFe8TjxbWreTwZ/Kt3zeGSi15x+znz2Ocr9g=="},
 "inclusionProof": {"logIndex": "621702040", "rootHash": 
"dVHtSx74n1EVKTr8ZkEoUDJHV2piMrM5Jyo3x2f8GEU=", "treeSize": "621702042", 
"hashes": ["Kn+73i6MNIgHE1cdeyArBBdDm+sBwxxKKBO/Y8hPFik=", 
"21huZMFAhYUSB3tH7/d0+H+OjdndnWoE53mHoRBShZo=", 
"t3/3NnomBwpQQ/dit38qL8n8ICrN1dqZtiqcYM17fxU=", 
"e5OOoHIJrUS+lsIZNNLgCqLnU7fsgOINTlSFPPMOK+4=", 
"ETAkx6N//tEwnhFB+hjwavO9F2M4JBBCbK+W/kZLg0Q=", 
"mamQezujujSnmKn/0+ueS2xlFZCYg0G6tTjNZ1ezFH0=", 
"KY+mZ6XMnzG1xo3I/kVu9Uw9DK3UKfa4PXt7i4ElYpQ=", 
"IaVIX1Ns+gb7uyNW1PFOI2Eko8sf6VyOvY+1txNb27I=", 
"NTzWPyfxc1IPzv49Nng3yy1Ri5Y94teOI4R
 QNzzPwik=", "NxaZXwQFBXq44JqVMKZx4KkC0y7CIoG4GsV3H+ntf6w=", 
"YYvp7Leoq6lF3zEs+Bux7BQt/UrxFbOOJAwVroBevek=", 
"pQtmpjszxrel2u+2I5HrLBwlwvhc19nfAUsa5EHZAe4=", 
"0jEq6eagxqoSOor9OR//fY6uOsPzLaE1q1n9tZRzfSc=", 
"ZmUkYkHBy1B723JrEgiKvepTdHYrP6y2a4oODYvi5VY=", 
"T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n621702042\ndVHtSx74n1EVKTr8ZkEoUDJHV2piMrM5Jyo3x2f8GEU=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBEAiBERVmx1IGpoQwrsH/RebrgT8NR5mfKLcAa+Mr2DM8VuwIgYHEm0SHrV47gTZwUWt6Ck5Tk3SR6JNQgUCbIntbUQyc=\n"}},
 "canonicalizedBody": 
"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjZTU0M2FiODU0YmMyNTZiNjFiNzFlOWIyN2Y4MzFmZmQxYmZkNjBhNDc5ZDYzOWY4YmU3Zjk3NTdjZjU3M2U5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNnZFNxNGV0K0J5OTRMS2o1Zyt6MHlTcnlwbW03KzliQlBsVS8vNlVlYmJBSWdZSWFTUG5NSGp2a2wvMFMyTGFJU0lFZmZueVVSKzJsYWRZT21ZdnhNNFVJPSIsInB1YmxpY0tleSI6eyJjb250ZW50
 
IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4VFowRjNTVUpCWjBsVlJITkROMjlYYmxjd2JEbHdTSEkwTVc1dWEyMVRNVzlQV1dRMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFxUVRGTmFrRjNUVlJWZWxkb1kwNU5hbFY0VFdwQk1VMXFRWGhOVkZWNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZhUlVGQlNtY3plR1ZaUlVONWJEZGlaV041ZEdGak1tdEpSVEZ2Um1kUmRVZHFjbW9LUW5wWVVVY3lOMlE0VkdWUmNWUmFkRkprVERWdldrOURXblF4ZVM5RVJHOUNabVJpVjNWc01VTlFiM1pIS3pkNk1tRlBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZzTkVzNUNrTTVZV3RxVkZOdEwyRnNNSGh1U20xbGIyOVJjUzlyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT
 
0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnRka0ZpVlU5WlFRcEJRVkZFUVVWamQxSlJTV2RTWWxoelVYSlhWamhyWkdoRU5YUk5UWGRZTlVsNU1reFhWMGg0YVd3MlZqVktMMjFZY0Nzdk9TOW5RMGxSUTNkQ1NFdENDbkJYVGpOVFVqWXZWRXhRY2pkdldrTmFXVkZDSzNvMWNUaHNWbkY1WW5aYVUyRk1VelJVUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV2UVVSQ2JFRnFRa3dLTmxoSGFuTlBVRkF2VGpjMFVtTjNNM1kzUTBOdlpUSXpZbVo1UlRFNGR5OVlaSGh0U2tGemFqbFljalp3VW1Sd1kxSjFSWGwwUm1WTVpGcFhTWEZKUXdwTlVVUktUREpqZW1wQ1ZHbFhWV3R4Y2t4eE16RkRkbkFyWmxGb2RVZFRjRGxKV25OV1lsUnZLMm8yZEZONlptRXhaSGQxTUhONU1tdHFRblJzWTFKaUNsbFdjejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],
 "timestampVerificationData": {}}, "messageSignature": {"messageDigest": 
{"algorithm": "SHA2_256", "digest": "zlQ6uFS8JWthtx6bJ/gx/9G/1gpH
 nWOfi+f5dXz1c+k="}, "signature": 
"MEUCIQCgdSq4et+By94LKj5g+z0ySrypmm7+9bBPlU//6UebbAIgYIaSPnMHjvkl/0S2LaISIEffnyUR+2ladYOmYvxM4UI="}}

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:27.838266200 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:27.842266364 +0100
@@ -1,6 +1,6 @@
-mtime: 1763502158
-commit: a5bb2062897eab307408f4ab932f2270da844b16094e9ce72c21ac490e47f956
+mtime: 1767634125
+commit: 7cd0446b54d8765415374535482b6d87f0a9a2f43cf2ac303110bc7b64c1cb8d
 url: https://src.opensuse.org/python-interpreters/python314.git
-revision: a5bb2062897eab307408f4ab932f2270da844b16094e9ce72c21ac490e47f956
+revision: 7cd0446b54d8765415374535482b6d87f0a9a2f43cf2ac303110bc7b64c1cb8d
 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj
 

++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:27.882268010 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:27.886268174 +0100
@@ -13,11 +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
 
-Index: Python-3.14.0rc1/Doc/library/ensurepip.rst
+Index: Python-3.14.2/Doc/library/ensurepip.rst
 ===================================================================
---- Python-3.14.0rc1.orig/Doc/library/ensurepip.rst    2025-07-22 
18:42:44.000000000 +0200
-+++ Python-3.14.0rc1/Doc/library/ensurepip.rst 2025-07-23 10:10:31.690342385 
+0200
-@@ -61,7 +61,11 @@
+--- Python-3.14.2.orig/Doc/library/ensurepip.rst       2025-12-11 
18:11:54.214805989 +0100
++++ Python-3.14.2/Doc/library/ensurepip.rst    2025-12-11 18:12:02.573781892 
+0100
+@@ -65,7 +65,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
@@ -30,7 +30,7 @@
  
  .. option:: --root <dir>
  
-@@ -102,7 +106,7 @@
+@@ -106,7 +110,7 @@
     Returns a string specifying the available version of pip that will be
     installed when bootstrapping an environment.
  
@@ -39,7 +39,7 @@
                          altinstall=False, default_pip=False, \
                          verbosity=0)
  
-@@ -112,6 +116,8 @@
+@@ -116,6 +120,8 @@
     If *root* is ``None``, then installation uses the default install location
     for the current environment.
  
@@ -48,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 @@
+@@ -136,6 +142,8 @@
     *verbosity* controls the level of output to :data:`sys.stdout` from the
     bootstrapping operation.
  
@@ -57,10 +57,10 @@
     .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
  
     .. note::
-Index: Python-3.14.0rc1/Lib/ensurepip/__init__.py
+Index: Python-3.14.2/Lib/ensurepip/__init__.py
 ===================================================================
---- Python-3.14.0rc1.orig/Lib/ensurepip/__init__.py    2025-07-23 
10:10:18.541751619 +0200
-+++ Python-3.14.0rc1/Lib/ensurepip/__init__.py 2025-07-23 10:10:31.690818287 
+0200
+--- Python-3.14.2.orig/Lib/ensurepip/__init__.py       2025-12-11 
18:11:54.214805989 +0100
++++ Python-3.14.2/Lib/ensurepip/__init__.py    2025-12-11 18:12:02.574381834 
+0100
 @@ -106,27 +106,27 @@
      os.environ['PIP_CONFIG_FILE'] = os.devnull
  
@@ -123,10 +123,10 @@
          upgrade=args.upgrade,
          user=args.user,
          verbosity=args.verbosity,
-Index: Python-3.14.0rc1/Lib/test/test_ensurepip.py
+Index: Python-3.14.2/Lib/test/test_ensurepip.py
 ===================================================================
---- Python-3.14.0rc1.orig/Lib/test/test_ensurepip.py   2025-07-23 
10:10:19.969641992 +0200
-+++ Python-3.14.0rc1/Lib/test/test_ensurepip.py        2025-07-23 
10:10:31.691217643 +0200
+--- Python-3.14.2.orig/Lib/test/test_ensurepip.py      2025-12-11 
18:11:54.214805989 +0100
++++ Python-3.14.2/Lib/test/test_ensurepip.py   2025-12-11 18:12:02.574698987 
+0100
 @@ -100,6 +100,17 @@
              unittest.mock.ANY,
          )
@@ -145,11 +145,11 @@
      def test_bootstrapping_with_user(self):
          ensurepip.bootstrap(user=True)
  
-Index: Python-3.14.0rc1/Makefile.pre.in
+Index: Python-3.14.2/Makefile.pre.in
 ===================================================================
---- Python-3.14.0rc1.orig/Makefile.pre.in      2025-07-23 10:10:27.325708066 
+0200
-+++ Python-3.14.0rc1/Makefile.pre.in   2025-07-23 10:10:31.691716104 +0200
-@@ -2371,7 +2371,7 @@
+--- Python-3.14.2.orig/Makefile.pre.in 2025-12-11 18:11:58.776792838 +0100
++++ Python-3.14.2/Makefile.pre.in      2025-12-11 18:12:02.575189138 +0100
+@@ -2375,7 +2375,7 @@
                        install|*) ensurepip="" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -158,7 +158,7 @@
        fi
  
  .PHONY: altinstall
-@@ -2382,7 +2382,7 @@
+@@ -2386,7 +2386,7 @@
                        install|*) ensurepip="--altinstall" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -167,10 +167,10 @@
        fi
  
  .PHONY: commoninstall
-Index: 
Python-3.14.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+Index: 
Python-3.14.2/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.14.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
   2025-07-23 10:10:31.692253536 +0200
++++ 
Python-3.14.2/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst   
   2025-12-11 18:12:02.575697168 +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-01-05 18:29:53.000000000 +0100
@@ -0,0 +1,5 @@
+.osc
+*.obscpio
+_build.*
+.pbuild
+python314-*-build/

++++++ fix-test-recursion-limit-15.6.patch ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:28.082276236 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:28.086276400 +0100
@@ -2,10 +2,10 @@
  Lib/test/test_compile.py |    5 +++++
  1 file changed, 5 insertions(+)
 
-Index: Python-3.14.0/Lib/test/test_compile.py
+Index: Python-3.14.2/Lib/test/test_compile.py
 ===================================================================
---- Python-3.14.0.orig/Lib/test/test_compile.py        2025-11-06 
23:19:11.681015028 +0100
-+++ Python-3.14.0/Lib/test/test_compile.py     2025-11-06 23:22:47.971267371 
+0100
+--- Python-3.14.2.orig/Lib/test/test_compile.py        2025-12-11 
18:10:57.011786647 +0100
++++ Python-3.14.2/Lib/test/test_compile.py     2025-12-11 18:12:09.732814688 
+0100
 @@ -24,6 +24,9 @@
  from test.support.bytecode_helper import instructions_with_positions
  from test.support.os_helper import FakePath
@@ -24,7 +24,7 @@
      @support.skip_emscripten_stack_overflow()
      def test_extended_arg(self):
          repeat = 100
-@@ -709,6 +713,7 @@
+@@ -724,6 +728,7 @@
  
      @support.cpython_only
      @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")

++++++ gh139257-Support-docutils-0.22.patch ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:28.106277223 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:28.110277387 +0100
@@ -4,34 +4,152 @@
 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 |   68 
+++++++++++++++++++++++++------------
+ 1 file changed, 46 insertions(+), 22 deletions(-)
 
-Index: Python-3.14.0/Doc/tools/extensions/pyspecific.py
+Index: Python-3.14.2/Doc/tools/extensions/pyspecific.py
 ===================================================================
---- Python-3.14.0.orig/Doc/tools/extensions/pyspecific.py
-+++ Python-3.14.0/Doc/tools/extensions/pyspecific.py
-@@ -25,11 +25,21 @@ from sphinx.util.docutils import SphinxD
- SOURCE_URI = 'https://github.com/python/cpython/tree/3.14/%s'
+--- Python-3.14.2.orig/Doc/tools/extensions/pyspecific.py      2025-12-05 
17:49:16.000000000 +0100
++++ Python-3.14.2/Doc/tools/extensions/pyspecific.py   2025-12-11 
18:15:44.936875242 +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
+@@ -15,6 +15,7 @@
+ 
+ from docutils import nodes
+ from docutils.parsers.rst import directives
++from docutils.parsers.rst.states import Body
+ from docutils.utils import unescape
+ from sphinx import addnodes
+ from sphinx.domains.python import PyFunction, PyMethod, PyModule
+@@ -22,30 +23,48 @@
+ 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.14/%s'
++SOURCE_URI = "https://github.com/python/cpython/tree/3.14/%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
- 
++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 +83,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 +99,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 +121,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 +138,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}
 

++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:28.190280678 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:28.202281171 +0100
@@ -2,11 +2,11 @@
  Makefile.pre.in |    5 +++++
  1 file changed, 5 insertions(+)
 
-Index: Python-3.14.0/Makefile.pre.in
+Index: Python-3.14.2/Makefile.pre.in
 ===================================================================
---- Python-3.14.0.orig/Makefile.pre.in 2025-10-07 11:34:52.000000000 +0200
-+++ Python-3.14.0/Makefile.pre.in      2025-11-06 23:19:25.434995608 +0100
-@@ -1910,6 +1910,11 @@
+--- Python-3.14.2.orig/Makefile.pre.in 2025-12-11 18:11:54.290805770 +0100
++++ Python-3.14.2/Makefile.pre.in      2025-12-11 18:11:58.776792838 +0100
+@@ -1914,6 +1914,11 @@
              -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
              -o $@ $(srcdir)/Modules/getbuildinfo.c
  

++++++ python314-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.yQfumG/_old  2026-01-06 17:46:28.230282323 +0100
+++ /var/tmp/diff_new_pack.yQfumG/_new  2026-01-06 17:46:28.234282487 +0100
@@ -1,4 +1,5 @@
 addFilter("pem-certificate.*/usr/lib.*/python.*/test/*.pem")
 addFilter("devel-file-in-non-devel-package.*/usr/lib.*/python.*/tests/*.c")
 addFilter("devel-file-in-non-devel-package.*/usr/lib.*/python.*/test/*.cpp")
+addFilter("python-bytecode-inconsistent-mtime.*/usr/lib.*/python.*/*.pyc")
 

Reply via email to