Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python315 for openSUSE:Factory 
checked in at 2026-04-09 16:08:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python315 (Old)
 and      /work/SRC/openSUSE:Factory/.python315.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python315"

Thu Apr  9 16:08:50 2026 rev:10 rq:1345197 version:3.15.0~a8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python315/python315.changes      2026-03-31 
15:23:44.759961580 +0200
+++ /work/SRC/openSUSE:Factory/.python315.new.21863/python315.changes   
2026-04-09 16:21:36.718787488 +0200
@@ -1,0 +2,509 @@
+Wed Apr  8 07:34:18 UTC 2026 - Matej Cepl <[email protected]>
+
+- Update to 3.15.0~a8 (the last alpha release):
+  - Security
+    - gh-145986: xml.parsers.expat: Fixed a crash caused by
+      unbounded C recursion when converting deeply nested XML
+      content models with ElementDeclHandler(). This addresses
+      CVE 2026-4224 (bsc#1259735, CVE-2026-4224).
+    - gh-145599: Reject control characters in http.cookies.Morsel
+      update() and js_output(). This addresses CVE 2026-3644
+      (bsc#1259734, CVE-2026-3644).
+    - gh-143930: Reject leading dashes in URLs passed to
+      webbrowser.open() (bsc#1260026, CVE-2026-4519).
+  - Core and Builtins
+    - gh-148157: Fix an unlikely crash when parsing an invalid
+      type comments for function parameters. Found by OSS Fuzz in
+      #492782951.
+    - gh-100239: Propagate result type and uniqueness information
+      through _BINARY_OP_EXTEND in the tier 2 optimizer, enabling
+      elimination of downstream type guards and selection of
+      inplace float operations.
+    - gh-148144: Initialize _PyInterpreterFrame.visited when
+      copying interpreter frames so incremental GC does not read
+      an uninitialized byte from generator and frame-object
+      copies.
+    - gh-148072: Cache pickle.dumps and pickle.loads per
+      interpreter in the XIData framework, avoiding repeated
+      module lookups on every cross-interpreter data transfer.
+      This speeds up InterpreterPoolExecutor for mutable types
+      (list, dict) by 1.7x–3.3x.
+    - gh-148110: Fix sys.set_lazy_imports_filter() so relative
+      lazy imports pass the resolved imported module name to the
+      filter callback. Patch by Pablo Galindo.
+    - gh-148083: Constant-fold _CONTAINS_OP_SET for frozenset.
+      Patch by Donghee Na.
+    - gh-144319: Fix a bug that could cause applications with
+      specific allocation patterns to leak memory via Huge Pages
+      if compiled with Huge Page support. Patch by Pablo Galindo
+    - gh-147985: Make PySet_Contains() attempt a lock-free
+      lookup, similar to set.__contains__(). This avoids
+      acquiring the set object mutex in the normal case.
+    - gh-147856: Allow the count argument of bytes.replace() to
+      be a keyword.
+    - gh-146615: Fix a crash in __get__() for METH_METHOD
+      descriptors when an invalid (non-type) object is passed as
+      the second argument. Patch by Steven Sun.
+    - gh-146306: Optimize compact integer arithmetic in the JIT
+      by mutating uniquely-referenced operands in place, avoiding
+      allocation of a new int object. Speeds up the pyperformance
+      spectral_norm benchmark by ~10%.
+    - gh-146587: Fix type slot assignment incase of multiple
+      slots for same name in type object implementation. Patch by
+      Kumar Aditya.
+    - gh-126910: Set frame pointers in aarch64-unknown-linux-gnu
+      JIT code, allowing most native profilers and debuggers to
+      unwind through them. Patch by Diego Russo (possibly
+      a duplicate gh#python/cpython#144741 ?)
+    - gh-146388: Adds a null check to handle when the JIT
+      optimizer runs out of space when dealing with
+      contradictions in make_bottom.
+    - gh-146369: Ensure -X lazy_imports=none` and
+      PYTHON_LAZY_IMPORTS=none` override __lazy_modules__. Patch
+      by Hugo van Kemenade.
+    - gh-146308: Fixed multiple error handling issues in the
+      _remote_debugging module including a double-free in code
+      object caching, memory leaks on allocation failure, missing
+      exception checks in binary format varint decoding,
+      reference leaks on error paths in frame chain processing,
+      and inconsistent thread status error reporting across
+      platforms. Patch by Pablo Galindo.
+    - gh-146306: Optimize float arithmetic in the JIT by mutating
+      uniquely-referenced operands in place, avoiding allocation
+      of a new float object. Speeds up the pyperformance nbody
+      benchmark by ~19%.
+    - gh-146128: Fix a bug which could cause constant values to
+      be partially corrupted in AArch64 JIT code. This issue is
+      theoretical, and hasn’t actually been observed in
+      unmodified Python interpreters.
+    - gh-146250: Fixed a memory leak in SyntaxError when
+      re-initializing it.
+    - gh-146245: Fixed reference leaks in socket when audit hooks
+      raise exceptions in socket.getaddrinfo() and
+      socket.sendto().
+    - gh-146151: memoryview now supports the float complex and
+      double complex C types: formatting characters 'F' and 'D'
+      respectively. Patch by Sergey B Kirpichev.
+    - gh-146196: Fix potential Undefined Behavior in
+      PyUnicodeWriter_WriteASCII() by adding a zero-length check.
+      Patch by Shamil Abdulaev.
+    - gh-146227: Fix wrong type in _Py_atomic_load_uint16 in the
+      C11 atomics backend (pyatomic_std.h), which used a 32-bit
+      atomic load instead of 16-bit. Found by Mohammed Zuhaib.
+    - gh-146205: Fixed a bug where select.epoll.close(),
+      select.kqueue.close(), and select.devpoll.close() silently
+      ignored errors.
+    - gh-146199: Comparison of code objects now handles errors
+      correctly.
+    - gh-145667: Remove the GET_ITER_YIELD_FROM instruction,
+      modifying SEND to pair with GET_ITER when compiling yield
+      from expressions.
+    - gh-146192: Add Base32 support to binascii and improve the
+      performance of the Base32 converters in base64. Patch by
+      James Seo.
+    - gh-135871: Improve multithreaded scaling of PyMutex in
+      low-contention scenarios by reloading the lock’s internal
+      state, without slowing down high-contention scenarios.
+    - gh-146096: Fixed segmentation fault when called repr for
+      BaseExceptionGroup with empty or 1-size tuple args.
+    - gh-146056: Fix repr() for lists and tuples containing
+      NULLs.
+    - gh-145059: Fixed sys.lazy_modules to include lazy modules
+      without submodules. Patch by Bartosz Sławecki.
+    - gh-146041: Fix free-threading scaling bottleneck in
+      sys.intern() and PyObject_SetAttr() by avoiding the
+      interpreter-wide lock when the string is already interned
+      and immortalized.
+    - gh-145990: python --help-env sections are now sorted by
+      environment variable name.
+    - gh-145990: python --help-xoptions is now sorted by -X
+      option name.
+    - gh-145876: AttributeErrors and KeyErrors raised in keys()
+      or __getitem__() during dictionary unpacking ({**mymapping}
+      or func(**mymapping)) are no longer masked by TypeError.
+    - gh-127958: Support tracing from function entrypoints in the
+      JIT. Patch by Ken Jin.
+    - gh-145376: Fix GC tracking in structseq.__replace__().
+    - gh-145792: Fix out-of-bounds access when invoking
+      faulthandler on a CPython build compiled without support
+      for VLAs.
+    - gh-142183: Avoid a pathological case where repeated calls
+      at a specific stack depth could be significantly slower.
+    - gh-145779: Improve scaling of classmethod() and
+      staticmethod() calls in the free-threaded build by avoiding
+      the descriptor __get__ call.
+    - gh-145783: Fix an unlikely crash in the parser when certain
+      errors were erroneously not propagated. Found by OSS Fuzz
+      in #491369109.
+    - gh-145685: Improve scaling of type attribute lookups in the
+      free-threaded build by avoiding contention on the internal
+      type lock.
+    - gh-145713: Make bytearray.resize() thread-safe in the
+      free-threaded build by using a critical section and calling
+      the lock-held variant of the resize function.
+    - gh-145036: In free-threaded build, fix race condition when
+      calling __sizeof__() on a list
+    - gh-134584: Eliminate redundant refcounting for MATCH_CLASS
+      in the JIT.
+    - gh-69605: Add math.integer to REPL auto-completion of
+      imports.
+    - gh-131798: Optimize _ITER_CHECK_RANGE and _ITER_CHECK_LIST
+      in the JIT
+    - gh-143414: Add tracking to the JIT optimizer to determine
+      whether a reference is uniquely owned or shared
+    - gh-143636: Fix a crash when calling
+      SimpleNamespace.__replace__() on non-namespace instances.
+      Patch by Bénédikt Tran.
+    - gh-126910: Set frame pointers in x86_64-unknown-linux-gnu
+      JIT code, allowing most native profilers and debuggers to
+      unwind through them.
+    - gh-140594: Fix an out of bounds read when a single NUL
+      character is read from the standard input. Patch by Shamil
+      Abdulaev.
+    - gh-140870: Add support for module attributes in the REPL
+      auto-completion of imports.
+  - Library
+    - gh-144503: Fix a regression introduced in 3.14.3 and
+      3.13.12 where the multiprocessing forkserver start method
+      would fail with BrokenPipeError when the parent process had
+      a very large sys.argv. The argv is now passed to the
+      forkserver as separate command-line arguments rather than
+      being embedded in the -c command string, avoiding the
+      operating system’s per-argument length limit.
+    - gh-148153: base64.b32encode() now always raises ValueError
+      instead of AssertionError for the value of map01 with
+      invalid length.
+    - gh-73613: Add the padded parameter in functions related to
+      Base32 and Base64 codecs in the binascii and base64
+      modules. In the encoding functions it controls whether the
+      pad character can be added in the output, in the decoding
+      functions it controls whether padding is required in input.
+      Padding of input no longer required in
+      base64.urlsafe_b64decode() by default.
+    - gh-146613: itertools: Fix a crash in itertools.groupby()
+      when the grouper iterator is concurrently mutated.
+    - gh-147944: Accepted range for the bytes_per_sep argument of
+      bytes.hex(), bytearray.hex(), memoryview.hex(), and
+      binascii.b2a_hex() is now increased, so passing sys.maxsize
+      and -sys.maxsize is now valid.
+    - gh-146080: ssl: fix a crash when an SNI callback tries to
+      use an SSL object that has already been garbage-collected.
+      Patch by Bénédikt Tran.
+    - gh-146556: Fix annotationlib.get_annotations() hanging
+      indefinitely when called with eval_str=True on a callable
+      that has a circular __wrapped__ chain (e.g. f.__wrapped__
+      = f). Cycle detection using an id-based visited set now
+      stops the traversal and falls back to the globals found so
+      far, mirroring the approach of inspect.unwrap().
+    - gh-146090: sqlite3: fix a crash when
+      sqlite3.Connection.create_collation() fails with
+      SQLITE_BUSY. Patch by Bénédikt Tran.
+    - gh-146090: sqlite3: properly raise MemoryError instead of
+      SystemError when a context callback fails to be allocated.
+      Patch by Bénédikt Tran.
+    - gh-146507: Make asyncio.SelectorEventLoop() stream
+      transport’s get_write_buffer_size() O(1) by maintaining
+      a running byte counter instead of iterating the buffer on
+      every call.
+    - gh-145056: Fix merging of collections.OrderedDict and
+      frozendict.
+    - gh-145056: Add support for merging collections.UserDict and
+      frozendict.
+    - gh-145633: Fix struct.pack('f', float): use PyFloat_Pack4()
+      to raise OverflowError. Patch by Sergey B Kirpichev and
+      Victor Stinner.
+    - gh-146440: json: Add the array_hook parameter to load() and
+      loads() functions: allow a callback for JSON literal array
+      types to customize Python lists in the resulting decoded
+      object. Passing combined frozendict to object_pairs_hook
+      param and tuple to array_hook will yield a deeply nested
+      immutable Python structure representing the JSON data.
+    - gh-146431: Add the wrapcol parameter to base64 functions
+      b16encode(), b32encode(), b32hexencode(), b85encode() and
+      z85encode(), and binascii functions b2a_base32() and
+      b2a_base85(). Add the ignorechars parameter to base64
+      functions b16decode(), b32decode(), b32hexdecode(),
+      b85decode() and z85decode(), and binascii functions
+      a2b_hex(), unhexlify(), a2b_base32() and a2b_base85().
+    - gh-146310: The ensurepip module no longer looks for
+      pip-*.whl wheel packages in the current directory.
+    - gh-141510: Support frozendict in plistlib, for
+      serialization only. Patch by Hugo van Kemenade.
+    - gh-146238: Support half-floats (type code 'e' of the struct
+      module) in the array module. Patch by Sergey B Kirpichev.
+    - gh-140947: Fix incorrect contextvars handling in server
+      tasks created by asyncio. Patch by Kumar Aditya.
+    - gh-146151: Support the float complex and double complex
+      C types in the array module: formatting characters 'F' and
+      'D' respectively. Patch by Sergey B Kirpichev.
+    - gh-143387: In importlib.metadata, when a distribution file
+      is corrupt and there is no metadata file, calls to
+      Distribution.metadata() (including implicit calls from
+      other properties like .name and .requires) will now raise
+      a MetadataNotFound Exception. This allows callers to
+      distinguish between missing metadata and a degenerate
+      (empty) metadata. Previously, if the file was missing, an
+      empty PackageMetadata would be returned and would be
+      indistinguishable from the presence of an empty file.
+    - gh-146228: Cached FastPath objects in importlib.metadata
+      are now cleared on fork, avoiding broken references to zip
+      files during fork.
+    - gh-146171: Nested AttributeError suggestions now include
+      property-backed attributes on nested objects without
+      executing the property getter.
+    - gh-145410: On Windows, sysconfig.get_platform() now gets
+      the platform from the _sysconfig module instead of parsing
+      sys.version string. Patch by Victor Stinner.
+    - gh-146091: Fix a bug in termios.tcsetwinsize() where
+      passing a sequence that raises an exception in __getitem__
+      would cause a SystemError instead of propagating the
+      original exception.
+    - gh-146083: Update bundled libexpat to version 2.7.5.
+    - gh-146076: zoneinfo: fix crashes when deleting _weak_cache
+      from a zoneinfo.ZoneInfo subclass.
+    - gh-123471: Make concurrent iteration over
+      itertools.zip_longest safe under free-threading.
+    - gh-146075: Errors when calling functools.partial() with
+      a malformed keyword will no longer crash the interpreter.
+    - gh-146054: Limit the size of encodings.search_function()
+      cache. Found by OSS Fuzz in #493449985.
+    - gh-146004: All -X options from the Python command line are
+      now propagated to child processes spawned by
+      multiprocessing, not just a hard-coded subset. This makes
+      the behavior consistent between default “spawn” and
+      “forkserver” start methods and the old “fork” start method.
+      The options that were previously not propagated are:
+      context_aware_warnings, cpu_count, disable-remote-debug,
+      int_max_str_digits, lazy_imports, no_debug_ranges,
+      pathconfig_warnings, perf, perf_jit, presite,
+      pycache_prefix, thread_inherit_context, and
+      warn_default_encoding.
+    - gh-145980: Added the alphabet parameter in b2a_base64(),
+      a2b_base64(), b2a_base85() and a2b_base85() and a number of
+      *_ALPHABET constants in the binascii module. Removed
+      b2a_z85() and a2b_z85().
+    - gh-145968: Fix translation in base64.b64decode() when
+      altchars overlaps with the standard ones.
+    - gh-145966: Non-AttributeError exceptions raised during
+      dialect attribute lookup in csv are no longer silently
+      suppressed.
+    - gh-145883: zoneinfo: Fix heap buffer overflow reads from
+      malformed TZif data. Found by OSS Fuzz, issues #492245058
+      and #492230068.
+    - gh-145850: Changed some implementation details in
+      struct.Struct: calling it with non-ASCII string format will
+      now raise a ValueError instead of UnicodeEncodeError,
+      calling it with non-ASCII bytes format will now raise
+      a ValueError instead of struct.error, getting the format
++++ 215 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python315/python315.changes
++++ and /work/SRC/openSUSE:Factory/.python315.new.21863/python315.changes

Old:
----
  CVE-2025-13462-tarinfo-header-parse.patch
  CVE-2026-3644-cookies-Morsel-update-II.patch
  CVE-2026-4224-expat-unbound-C-recursion.patch
  CVE-2026-4519-webbrowser-open-dashes.patch
  Python-3.15.0a7.tar.xz
  Python-3.15.0a7.tar.xz.sigstore
  gh-144741-frame_pointer_unwind.patch
  gh-145802-atomic-profile-update-for-PGO.patch
  test_ci_fuzz_stdlib-failure.patch

New:
----
  Python-3.15.0a8.tar.xz
  Python-3.15.0a8.tar.xz.sigstore

----------(Old B)----------
  Old:- Remove upstreamed patches:
  - CVE-2025-13462-tarinfo-header-parse.patch
  - CVE-2026-3479-pkgutil_get_data.patch
  Old:  - CVE-2026-3479-pkgutil_get_data.patch
  - CVE-2026-3644-cookies-Morsel-update-II.patch
  - CVE-2026-4224-expat-unbound-C-recursion.patch
  Old:  - CVE-2026-3644-cookies-Morsel-update-II.patch
  - CVE-2026-4224-expat-unbound-C-recursion.patch
  - CVE-2026-4519-webbrowser-open-dashes.patch
  Old:  - CVE-2026-4224-expat-unbound-C-recursion.patch
  - CVE-2026-4519-webbrowser-open-dashes.patch
  - gh-144741-frame_pointer_unwind.patch
  Old:  - CVE-2026-4519-webbrowser-open-dashes.patch
  - gh-144741-frame_pointer_unwind.patch
  - gh-145802-atomic-profile-update-for-PGO.patch
  Old:  - gh-144741-frame_pointer_unwind.patch
  - gh-145802-atomic-profile-update-for-PGO.patch
  - test_ci_fuzz_stdlib-failure.patch
  Old:  - gh-145802-atomic-profile-update-for-PGO.patch
  - test_ci_fuzz_stdlib-failure.patch
----------(Old E)----------

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

Other differences:
------------------
++++++ python315.spec ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:37.814832461 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:37.818832625 +0200
@@ -162,8 +162,8 @@
 # _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.15.0~a7
-%define         tarversion 3.15.0a7
+Version:        3.15.0~a8
+%define         tarversion 3.15.0a8
 %define         tarname    Python-%{tarversion}
 Release:        0
 Summary:        Python 3 Interpreter
@@ -228,27 +228,6 @@
 # PATCH-FIX-UPSTREAM skip-test_array_alignment.patch gh#python/cpython#144725 
[email protected]
 # skip failing test
 Patch43:        skip-test_array_alignment.patch
-# PATCH-FIX-UPSTREAM test_ci_fuzz_stdlib-failure.patch 
gh#python/cpython#145762 [email protected]
-# skip over more files, which shouldn't be included in the test
-Patch44:        test_ci_fuzz_stdlib-failure.patch
-# PATCH-FIX-UPSTREAM gh-145802-atomic-profile-update-for-PGO.patch 
gh#python/cpython#145803 [email protected]
-# Use gcc -fprofile-update=atomic for PGO builds
-Patch45:        gh-145802-atomic-profile-update-for-PGO.patch
-# PATCH-FIX-UPSTREAM gh-144741-frame_pointer_unwind.patch 
gh#python/cpython#144741 [email protected]
-# Fix test_frame_pointer_unwind for libpython
-Patch46:        gh-144741-frame_pointer_unwind.patch
-# PATCH-FIX-UPSTREAM CVE-2026-3644-cookies-Morsel-update-II.patch bsc#1259734 
[email protected]
-# Reject control characters in http.cookies.Morsel.update() and 
http.cookies.BaseCookie.js_output
-Patch47:        CVE-2026-3644-cookies-Morsel-update-II.patch
-# PATCH-FIX-UPSTREAM CVE-2026-4224-expat-unbound-C-recursion.patch bsc#1259735 
[email protected]
-# Avoid unbound C recursion in conv_content_model
-Patch48:        CVE-2026-4224-expat-unbound-C-recursion.patch
-# PATCH-FIX-UPSTREAM CVE-2025-13462-tarinfo-header-parse.patch bsc#1259611 
[email protected]
-# Skip TarInfo DIRTYPE normalization during GNU long name handling
-Patch49:        CVE-2025-13462-tarinfo-header-parse.patch
-# PATCH-FIX-UPSTREAM CVE-2026-4519-webbrowser-open-dashes.patch bsc#1260026 
[email protected]
-# reject leading dashes in webbrowser URLs
-Patch50:        CVE-2026-4519-webbrowser-open-dashes.patch
 #### Python 3.15 DEVELOPMENT PATCHES
 BuildRequires:  autoconf-archive
 BuildRequires:  automake

++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:37.862834430 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:37.870834759 +0200
@@ -4,11 +4,11 @@
  Lib/test/test_xml_etree.py |   10 ++++++++++
  3 files changed, 17 insertions(+)
 
-Index: Python-3.15.0a5/Lib/test/test_pyexpat.py
+Index: Python-3.15.0a8/Lib/test/test_pyexpat.py
 ===================================================================
---- Python-3.15.0a5.orig/Lib/test/test_pyexpat.py      2026-02-08 
14:31:48.498838928 +0100
-+++ Python-3.15.0a5/Lib/test/test_pyexpat.py   2026-02-08 14:31:58.465492442 
+0100
-@@ -860,6 +860,10 @@
+--- Python-3.15.0a8.orig/Lib/test/test_pyexpat.py      2026-04-08 
13:45:33.923094710 +0200
++++ Python-3.15.0a8/Lib/test/test_pyexpat.py   2026-04-08 13:45:52.854328088 
+0200
+@@ -918,6 +918,10 @@
          self.assertEqual(started, ['doc'])
  
      def test_reparse_deferral_disabled(self):
@@ -19,10 +19,10 @@
          started = []
  
          def start_element(name, _):
-Index: Python-3.15.0a5/Lib/test/test_sax.py
+Index: Python-3.15.0a8/Lib/test/test_sax.py
 ===================================================================
---- Python-3.15.0a5.orig/Lib/test/test_sax.py  2026-02-08 14:31:48.575186151 
+0100
-+++ Python-3.15.0a5/Lib/test/test_sax.py       2026-02-08 14:31:58.465928363 
+0100
+--- Python-3.15.0a8.orig/Lib/test/test_sax.py  2026-04-08 13:45:33.923094710 
+0200
++++ Python-3.15.0a8/Lib/test/test_sax.py       2026-04-08 13:45:52.854835623 
+0200
 @@ -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.15.0a5/Lib/test/test_xml_etree.py
+Index: Python-3.15.0a8/Lib/test/test_xml_etree.py
 ===================================================================
---- Python-3.15.0a5.orig/Lib/test/test_xml_etree.py    2026-02-08 
14:31:49.084155592 +0100
-+++ Python-3.15.0a5/Lib/test/test_xml_etree.py 2026-02-08 14:31:58.466519056 
+0100
+--- Python-3.15.0a8.orig/Lib/test/test_xml_etree.py    2026-04-08 
13:45:33.923094710 +0200
++++ Python-3.15.0a8/Lib/test/test_xml_etree.py 2026-04-08 13:45:52.855476530 
+0200
 @@ -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):
-@@ -1619,9 +1624,11 @@
+@@ -1654,9 +1659,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)
  
-@@ -1848,6 +1855,9 @@
+@@ -1883,6 +1890,9 @@
  
          self.assert_event_tags(parser, [('end', 'doc')])
  

++++++ F00251-change-user-install-location.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:37.894835744 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:37.898835908 +0200
@@ -28,10 +28,10 @@
  Lib/test/test_sysconfig.py |   17 +++++++++++++--
  2 files changed, 65 insertions(+), 3 deletions(-)
 
-Index: Python-3.15.0a1/Lib/sysconfig/__init__.py
+Index: Python-3.15.0a8/Lib/sysconfig/__init__.py
 ===================================================================
---- Python-3.15.0a1.orig/Lib/sysconfig/__init__.py     2025-10-24 
23:53:22.709921139 +0200
-+++ Python-3.15.0a1/Lib/sysconfig/__init__.py  2025-10-24 23:53:34.981019958 
+0200
+--- Python-3.15.0a8.orig/Lib/sysconfig/__init__.py     2026-04-08 
13:45:34.229096811 +0200
++++ Python-3.15.0a8/Lib/sysconfig/__init__.py  2026-04-08 13:45:36.940641269 
+0200
 @@ -106,6 +106,11 @@
  else:
      _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv']
@@ -115,11 +115,11 @@
      if os.name == 'nt':
          # On Windows we want to substitute 'lib' for schemes rather
          # than the native value (without modifying vars, in case it
-Index: Python-3.15.0a1/Lib/test/test_sysconfig.py
+Index: Python-3.15.0a8/Lib/test/test_sysconfig.py
 ===================================================================
---- Python-3.15.0a1.orig/Lib/test/test_sysconfig.py    2025-10-24 
23:53:24.545975205 +0200
-+++ Python-3.15.0a1/Lib/test/test_sysconfig.py 2025-10-24 23:53:34.981457517 
+0200
-@@ -131,8 +131,19 @@
+--- Python-3.15.0a8.orig/Lib/test/test_sysconfig.py    2026-04-08 
13:45:34.229096811 +0200
++++ Python-3.15.0a8/Lib/test/test_sysconfig.py 2026-04-08 13:45:36.941205552 
+0200
+@@ -132,8 +132,19 @@
          for scheme in _INSTALL_SCHEMES:
              for name in _INSTALL_SCHEMES[scheme]:
                  expected = 
_INSTALL_SCHEMES[scheme][name].format(**config_vars)
@@ -140,7 +140,7 @@
                      os.path.normpath(expected),
                  )
  
-@@ -394,7 +405,7 @@
+@@ -393,7 +404,7 @@
          self.assertTrue(os.path.isfile(config_h), config_h)
  
      def test_get_scheme_names(self):
@@ -149,7 +149,7 @@
          if HAS_USER_BASE:
              wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
          self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
-@@ -406,6 +417,8 @@
+@@ -405,6 +416,8 @@
              cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
              self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
  

++++++ Python-3.15.0a7.tar.xz -> Python-3.15.0a8.tar.xz ++++++
/work/SRC/openSUSE:Factory/python315/Python-3.15.0a7.tar.xz 
/work/SRC/openSUSE:Factory/.python315.new.21863/Python-3.15.0a8.tar.xz differ: 
char 25, line 1

++++++ Python-3.15.0a7.tar.xz.sigstore -> Python-3.15.0a8.tar.xz.sigstore ++++++
--- /work/SRC/openSUSE:Factory/python315/Python-3.15.0a7.tar.xz.sigstore        
2026-03-16 14:19:56.371787315 +0100
+++ 
/work/SRC/openSUSE:Factory/.python315.new.21863/Python-3.15.0a8.tar.xz.sigstore 
    2026-04-09 16:21:36.662785190 +0200
@@ -1 +1 @@
-{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIICzTCCAlOgAwIBAgIUQCZFNes864rkYbM9NBz8OwDv9pQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwMzEwMTQ1ODEyWhcNMjYwMzEwMTUwODEyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh5/+e07IE5gUVYUjQUMQkdy8NV7T7dBBCkxozkwKFc+yIOUpQVisNcYeq/TCjDOlAm0+iTUPY9vsn24aUeF4BKOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU6zNDX+aZ1xGvyRr1jRGqini+qvcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnNhBbQ0AAAQDAEYwRAIgGrs+7t9NoN9lvjNM0DDXlkRD1b8Eg62uV9DfuQDm/CgCIHRHbu1mLM4sAi4WCZBQtVa9PjsQ2rUeFVLJW6Xh1jXAMAoGCCqGSM49BAMDA2gAMGUCMCHy1qAEyFvtUdTvKYvRdvAK5ZCp1DMubOsilMkioaArtwib4m0C
 
JhvNGiJSviC+zQIxANlwE9fAPPhReIpRAdcOf3F2JkiHePNNsHNXWZFV33ZHIDEHi/Z68d5NzPic7S8qXA=="},
 "tlogEntries": [{"logIndex": "1075912528", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1773154692", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEUCIQD42RMmUhsa7IBS0XjRCLV57MBOUrrdIuL9sN4GGyP8NQIgBYTz8p4lqY6/jYKnj0g9gmy+krHJCYNk4K0g0ASLNXo="},
 "inclusionProof": {"logIndex": "954008266", "rootHash": 
"54UgPm7teHz/hbrEfZ2FL5lvQUl9ers0x++YVvXj9yk=", "treeSize": "954008272", 
"hashes": ["sg4M8SNINOlWlLyPZkCEbnlG9bPHZnyvggG+kxf9h4k=", 
"nL220iemcefeFxrr+wESPUEiePeLRdLQl4oaiswL308=", 
"3dyHvYKU5K2LoeJi7RzFRFCr6iZcUIh7OfkkTZpi3Vk=", 
"6ykjElNqdL5OxTRuzrF0igQr5ktyON3GvYE/6U7CsUE=", 
"QFtROGTbs6hnbqrhVzviz2Ip9TP8MI0WcSsFW1HrKrQ=", 
"3XUycL7YKpJlmrmCR8fG5rr6QpJ6mPlTT+fuFPflAZ4=", 
"S4JBeU7NYErZ27PHxLZQ88r904KImEXScxOmLFgcQHA=", 
"Umdyn/GrCi9GlujFSR8NGgOatDps+IEUnEhY74KkAKg=", 
"i6gdL+8LJXAQhGgtuzaDlKcEe696yTy9TU
 n9m+FquKA=", "8JR4pkSgDSLjVN1kMGkmaw/YH9wJ+wq1yLJ4IjS40fs=", 
"j0adZ1oa5riJVt3rCiB/z4Dn8ys8YtW90w669vyBjGs=", 
"iGPJqoaMERVmVoJI6Wf+JMw+K4vN4KjhYjD6t0ZGL44=", 
"7dklf5Lm6jfXBWXMt6kEv3EXBajmauMii6AHUtJf6+k=", 
"eRlAy3G7QgM2MWo2Jrz6/6oltT7/FwGiHfkpiaoARlI=", 
"fLAvE46NqCVV86EpB2pKkwJlFjjFk7ntX3lC+PiZuIo=", 
"T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n954008272\n54UgPm7teHz/hbrEfZ2FL5lvQUl9ers0x++YVvXj9yk=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBFAiEA9ory9YYyrWo49FT1GEuV3aV6L8PxEx2sN7OvJfR6akYCIHDv6yHU9PjOuLVsN7JDCl7Atv9AvxfsfYARFveK3TKG\n"}},
 "canonicalizedBody": 
"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4ZjU5MGM0MjhiN2YwZDQwNmRmOTI4Yjg1NzM3ZTdhM2FmYTI4ZWRkZDRkMTQxOTQxMGVhODA5Njg3ZWQxZWE3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJREN3V2o1a3kva3d2SWpXcnF5WVpYemhjcGt3YjJXK3ZDQkpFU0ZldlRzcUFpQjRUYkNMVXdHOUNFQUk4dkF3Yzl6dlNyaHdwZk10TXB
 
nL2JkTnhMa3NxWEE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVlVVTmFSazVsY3pnMk5ISnJXV0pOT1U1Q2VqaFBkMFIyT1hCUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDE2UlhkTlZGRXhUMFJGZVZkb1kwNU5hbGwzVFhwRmQwMVVWWGRQUkVWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZvTlM4clpUQTNTVVUxWjFWV1dWVnFVVlZOVVd0a2VUaE9WamRVTjJSQ1FrTnJlRzhLZW10M1MwWmpLM2xKVDFWd1VWWnBjMDVqV1dWeEwxUkRha1JQYkVGdE1DdHBWRlZRV1RsMmMyNHlOR0ZWWlVZMFFrdFBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUyZWs1RUNsZ3JZVm94ZUVkMmVWSnlNV3BTUjNGcGJta3JjWFpqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RI
 
UTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVUbWhDWWxFd1FRcEJRVkZFUVVWWmQxSkJTV2RIY25Nck4zUTVUbTlPT1d4MmFrNU5NRVJFV0d4clVrUXhZamhGWnpZeWRWWTVSR1oxVVVSdEwwTm5RMGxJVWtoaWRURnRDa3hOTkhOQmFUUlhRMXBDVVhSV1lUbFFhbk5STW5KVlpVWldURXBYTmxob01XcFlRVTFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMURTSGtLTVhGQlJYbEdkblJWWkZSMlMxbDJVbVIyUVVzMVdrTndNVVJOZFdKUGMybHNUV3RwYjJGQmNuUjNhV0kwYlRCRFNtaDJUa2RwU2xOMmFVTXJlbEZKZUFwQlRteDNSVGxtUVZCUWFGSmxTWEJTUVdSalQyWXpSakpLYTJsSVpWQk9Ubk5JVGxoWFdrWldNek5hU0VsRVJVaHBMMW8yT0dRMVRucFFhV00zVXpoeENsaEJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],
 "timestampVerificationData": {}}, "messageSignature": {"messageDigest": 
{"algorithm": "S
 HA2_256", "digest": "j1kMQot/DUBt+Si4Vzfno6+ijt3U0UGUEOqAloftHqc="}, 
"signature": 
"MEQCIDCwWj5ky/kwvIjWrqyYZXzhcpkwb2W+vCBJESFevTsqAiB4TbCLUwG9CEAI8vAwc9zvSrhwpfMtMpg/bdNxLksqXA=="}}
+{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIICzTCCAlOgAwIBAgIUQ3Zn4OX5Xx29MMIDa/IMy3EfNp8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNDA3MTc0ODI2WhcNMjYwNDA3MTc1ODI2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEa+ZXBvuHmRlf2G5qgBw6oQFegQdy4t/jDFT/qutVSy9O9nrTwgqaPlY2LCBayMSpAXka3hr3lDRS7zuMI+FK+qOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUzH8ql0Wne5bIQ3dvt+ZEzbY5dPMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnWkPWREAAAQDAEYwRAIgajR418xiNzSkSPYLKJwpeEvIEV8Pqx9kaz6B0CAg7GMCIBsNxxAZaYoGiBTMVUcCsvK/MSv3GNVMDrGeBVPGnMHEMAoGCCqGSM49BAMDA2gAMGUCMBV5leWJHLIUlecm9B+31UyagwRjwvHQ4sinKMvKtm+7qNrFzUUh
 
T/DB1t1GtvGyGAIxAO/3x/w1xp9Aa9Nfbgc8OP5kzNPPzdwHZaCHWyF/bb0hC9A7rDlb0tkNn9Ry7at/GA=="},
 "tlogEntries": [{"logIndex": "1247676088", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1775584107", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEUCIDVQlHjrhmCeQq+bmk8/4qneFkgdeWrl6looAafMQxGzAiEAuige9lajXobChk/+/HUs/tKSpCLvNbMx0k2Z+Svl0Hw="},
 "inclusionProof": {"logIndex": "1125771826", "rootHash": 
"sMn5V/RbIwXlvlJKnuqHearuj7sJaqFc5bht2L8babs=", "treeSize": "1125771828", 
"hashes": ["5idJyYmDmjvfxtziiw2AUm9X0Y0CybhM2KLujQWsi7M=", 
"AmujGe2ti7MM5eLAgK4t/FjgJfo6a2myUvg8HyKe1n4=", 
"IfRWcPrix0hDOpyycaEQVejN9YyiPN67yhz1YR4NIDY=", 
"yTa95BXAWI9bH35Oy1diIUgjjJKAec3GLyLfaRrI0Tg=", 
"dJtu8pJ3yhn0rC0EFdgoebJF3MldcpHMX00y2eHPYDY=", 
"81dr9W/Ax/UfYIsxNTxjBYK7sYU/az3TPo6rdJosDO0=", 
"4rt9/yEt1Zy95yQxSCxpoOu6E3CWDDxpGd37aEEFadg=", 
"+wrWv/cO9uKKpjC+BMIC/Fv2Ipe50C7wL0wd+YlH5Kw=", 
"ZxCK8NmXD/qxQEyqBRFYo8WOz/kUHRHA
 +BXOPC6789o=", "civ0dM20+gns15I1mfWo9Jt0YBzbex5QVYwaGjqgcs4=", 
"2v7+H4Fejl7qkIhG2G79UQH+wJ0QpPreOZwulFGWzLI=", 
"vXMaHYsu3vXUFKr78h1vCtaZWhgh1OwZh5O05RGwxkw=", 
"WbswTMpSfvjDqroD6lDGb2VDeljBPlMsAchJ+0L+3U4=", 
"psQ1PrYXqFtm6T3uF1q91rl1dhNiykO58GpOdq1ZaKI=", 
"DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n1125771828\nsMn5V/RbIwXlvlJKnuqHearuj7sJaqFc5bht2L8babs=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBGAiEAuhq3/d1BI5QULMFsIGjggb3cpTMWUJBqZ7iXI3DwYDgCIQC/kEcONRvSdmvggkNPuwpS6AOYHwTpbZ5HzKnD4ugASQ==\n"}},
 "canonicalizedBody": 
"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyOGYxYjYzNTg2MDkwNDJlYmNjODE0ODhlYzI0NTY5NTE5ZjUwODA0YmIwN2RjMjNjYzcwN2IyODFiMDMxYzY5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRW5XWGZwR2tZUTF1S0lhSEtwZW80b1NjazR2MGYvMW9DNGxsZmlrY0pyckFpRUFocmZhK2htRCtKaWRoWGRMNnUvSXRndTl3dHJ0SDdDVUpXWm9zMWsyNTFrPSIsInB1YmxpY0tleSI6eyJj
 
b250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVlVUTmFialJQV0RWWWVESTVUVTFKUkdFdlNVMTVNMFZtVG5BNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVFUVROTlZHTXdUMFJKTWxkb1kwNU5hbGwzVGtSQk0wMVVZekZQUkVreVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZoSzFwWVFuWjFTRzFTYkdZeVJ6VnhaMEozTm05UlJtVm5VV1I1TkhRdmFrUkdWQzhLY1hWMFZsTjVPVTg1Ym5KVWQyZHhZVkJzV1RKTVEwSmhlVTFUY0VGWWEyRXphSEl6YkVSU1V6ZDZkVTFKSzBaTEszRlBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlY2U0RoeENtd3dWMjVsTldKSlVUTmtkblFyV2tWNllsazFaRkJOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFa
 
ENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnVWMnRRVjFKRlFRcEJRVkZFUVVWWmQxSkJTV2RoYWxJME1UaDRhVTU2VTJ0VFVGbE1TMHAzY0dWRmRrbEZWamhRY1hnNWEyRjZOa0l3UTBGbk4wZE5RMGxDYzA1NGVFRmFDbUZaYjBkcFFsUk5WbFZqUTNOMlN5OU5VM1l6UjA1V1RVUnlSMlZDVmxCSGJrMUlSVTFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMUNWalVLYkdWWFNraE1TVlZzWldOdE9VSXJNekZWZVdGbmQxSnFkM1pJVVRSemFXNUxUWFpMZEcwck4zRk9ja1o2VlZWb1ZDOUVRakYwTVVkMGRrZDVSMEZKZUFwQlR5OHplQzkzTVhod09VRmhPVTVtWW1kak9FOVFOV3Q2VGxCUWVtUjNTRnBoUTBoWGVVWXZZbUl3YUVNNVFUZHlSR3hpTUhSclRtNDVVbmszWVhRdkNrZEJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],
 "timestampVerificationData": {}}, "messageSignature": {"messageDigest": 
{"algorithm": "SHA2_256", "digest": "KPG2NYYJBC68yBSI7CRW
 lRn1CAS7B9wjzHB7KBsDHGk="}, "signature": 
"MEUCIEnWXfpGkYQ1uKIaHKpeo4oSck4v0f/1oC4llfikcJrrAiEAhrfa+hmD+JidhXdL6u/Itgu9wtrtH7CUJWZos1k251k="}}

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.034841489 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.038841653 +0200
@@ -1,6 +1,6 @@
-mtime: 1774634044
-commit: 72260269b18eb1203403d94df928332b7b058bbc8e0a73bd1238cd0c5b5eef3e
+mtime: 1775649775
+commit: d69fcb54a7f08cdcfbae03dc041ba05d9fcfffce49d77b49c8d8b0ba141e9850
 url: https://src.opensuse.org/python-interpreters/python315.git
-revision: 72260269b18eb1203403d94df928332b7b058bbc8e0a73bd1238cd0c5b5eef3e
+revision: d69fcb54a7f08cdcfbae03dc041ba05d9fcfffce49d77b49c8d8b0ba141e9850
 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj
 

++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.070842966 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.074843130 +0200
@@ -13,10 +13,10 @@
  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.15.0a7/Doc/library/ensurepip.rst
+Index: Python-3.15.0a8/Doc/library/ensurepip.rst
 ===================================================================
---- Python-3.15.0a7.orig/Doc/library/ensurepip.rst     2026-03-10 
13:31:15.000000000 +0100
-+++ Python-3.15.0a7/Doc/library/ensurepip.rst  2026-03-10 21:56:04.065215023 
+0100
+--- Python-3.15.0a8.orig/Doc/library/ensurepip.rst     2026-04-08 
13:45:34.016095348 +0200
++++ Python-3.15.0a8/Doc/library/ensurepip.rst  2026-04-08 13:45:43.944138830 
+0200
 @@ -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
@@ -57,11 +57,11 @@
     .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
  
     .. note::
-Index: Python-3.15.0a7/Lib/ensurepip/__init__.py
+Index: Python-3.15.0a8/Lib/ensurepip/__init__.py
 ===================================================================
---- Python-3.15.0a7.orig/Lib/ensurepip/__init__.py     2026-03-10 
21:55:34.138824888 +0100
-+++ Python-3.15.0a7/Lib/ensurepip/__init__.py  2026-03-10 21:56:04.065631508 
+0100
-@@ -106,27 +106,27 @@
+--- Python-3.15.0a8.orig/Lib/ensurepip/__init__.py     2026-04-08 
13:45:34.016095348 +0200
++++ Python-3.15.0a8/Lib/ensurepip/__init__.py  2026-04-08 13:45:43.944472088 
+0200
+@@ -107,27 +107,27 @@
      os.environ['PIP_CONFIG_FILE'] = os.devnull
  
  
@@ -94,7 +94,7 @@
  
      Note that calling this function will alter both sys.path and os.environ.
      """
-@@ -171,6 +171,8 @@
+@@ -172,6 +172,8 @@
          args = ["install", "--no-cache-dir", "--no-index", "--find-links", 
tmpdir]
          if root:
              args += ["--root", root]
@@ -103,7 +103,7 @@
          if upgrade:
              args += ["--upgrade"]
          if user:
-@@ -249,6 +251,11 @@
+@@ -250,6 +252,11 @@
          help="Install everything relative to this alternate root directory.",
      )
      parser.add_argument(
@@ -115,7 +115,7 @@
          "--altinstall",
          action="store_true",
          default=False,
-@@ -267,6 +274,7 @@
+@@ -268,6 +275,7 @@
  
      return _bootstrap(
          root=args.root,
@@ -123,11 +123,11 @@
          upgrade=args.upgrade,
          user=args.user,
          verbosity=args.verbosity,
-Index: Python-3.15.0a7/Lib/test/test_ensurepip.py
+Index: Python-3.15.0a8/Lib/test/test_ensurepip.py
 ===================================================================
---- Python-3.15.0a7.orig/Lib/test/test_ensurepip.py    2026-03-10 
21:55:35.709593640 +0100
-+++ Python-3.15.0a7/Lib/test/test_ensurepip.py 2026-03-10 21:56:04.065975767 
+0100
-@@ -111,6 +111,17 @@
+--- Python-3.15.0a8.orig/Lib/test/test_ensurepip.py    2026-04-08 
13:45:34.016095348 +0200
++++ Python-3.15.0a8/Lib/test/test_ensurepip.py 2026-04-08 13:45:43.944750522 
+0200
+@@ -121,6 +121,17 @@
              unittest.mock.ANY,
          )
  
@@ -145,10 +145,10 @@
      def test_bootstrapping_with_user(self):
          ensurepip.bootstrap(user=True)
  
-Index: Python-3.15.0a7/Makefile.pre.in
+Index: Python-3.15.0a8/Makefile.pre.in
 ===================================================================
---- Python-3.15.0a7.orig/Makefile.pre.in       2026-03-10 21:55:56.002096854 
+0100
-+++ Python-3.15.0a7/Makefile.pre.in    2026-03-10 21:56:04.066350363 +0100
+--- Python-3.15.0a8.orig/Makefile.pre.in       2026-04-08 13:45:42.151151268 
+0200
++++ Python-3.15.0a8/Makefile.pre.in    2026-04-08 13:45:43.945249382 +0200
 @@ -2418,7 +2418,7 @@
                        install|*) ensurepip="" ;; \
                esac; \
@@ -167,10 +167,10 @@
        fi
  
  .PHONY: commoninstall
-Index: 
Python-3.15.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+Index: 
Python-3.15.0a8/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.15.0a7/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 
   2026-03-10 21:56:04.067139341 +0100
++++ 
Python-3.15.0a8/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 
   2026-04-08 13:45:43.945767177 +0200
 @@ -0,0 +1 @@
 +A directory prefix can now be specified when using :mod:`ensurepip`.
 

++++++ bsc1243155-sphinx-non-determinism.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.090843786 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.094843950 +0200
@@ -14,10 +14,10 @@
  Doc/tools/extensions/audit_events.py |   11 ++++++++---
  1 file changed, 8 insertions(+), 3 deletions(-)
 
-Index: Python-3.14.0b3/Doc/tools/extensions/audit_events.py
+Index: Python-3.15.0a8/Doc/tools/extensions/audit_events.py
 ===================================================================
---- Python-3.14.0b3.orig/Doc/tools/extensions/audit_events.py  2025-06-17 
17:40:54.000000000 +0200
-+++ Python-3.14.0b3/Doc/tools/extensions/audit_events.py       2025-07-02 
15:06:57.802539821 +0200
+--- Python-3.15.0a8.orig/Doc/tools/extensions/audit_events.py  2026-04-08 
13:45:33.832094085 +0200
++++ Python-3.15.0a8/Doc/tools/extensions/audit_events.py       2026-04-08 
13:45:59.479006144 +0200
 @@ -68,8 +68,13 @@
              logger.warning(msg)
              return

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

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-04-08 14:03:21.000000000 +0200
@@ -0,0 +1,5 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
+python315-*-build/

++++++ fix-test-recursion-limit-15.6.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.326853470 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.330853635 +0200
@@ -2,10 +2,10 @@
  Lib/test/test_compile.py |    5 +++++
  1 file changed, 5 insertions(+)
 
-Index: Python-3.15.0a1/Lib/test/test_compile.py
+Index: Python-3.15.0a8/Lib/test/test_compile.py
 ===================================================================
---- Python-3.15.0a1.orig/Lib/test/test_compile.py      2025-10-24 
23:53:23.250923195 +0200
-+++ Python-3.15.0a1/Lib/test/test_compile.py   2025-10-24 23:53:52.578315707 
+0200
+--- Python-3.15.0a8.orig/Lib/test/test_compile.py      2026-04-08 
13:45:33.877094394 +0200
++++ Python-3.15.0a8/Lib/test/test_compile.py   2026-04-08 13:45:56.084237567 
+0200
 @@ -24,6 +24,9 @@
  from test.support.bytecode_helper import instructions_with_positions
  from test.support.os_helper import FakePath

++++++ gh139257-Support-docutils-0.22.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.350854455 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.366855112 +0200
@@ -7,10 +7,10 @@
  Doc/tools/extensions/pyspecific.py |   18 ++++++++++++++++++
  1 file changed, 18 insertions(+)
 
-Index: Python-3.15.0a3/Doc/tools/extensions/pyspecific.py
+Index: Python-3.15.0a8/Doc/tools/extensions/pyspecific.py
 ===================================================================
---- Python-3.15.0a3.orig/Doc/tools/extensions/pyspecific.py    2025-12-16 
13:26:12.000000000 +0100
-+++ Python-3.15.0a3/Doc/tools/extensions/pyspecific.py 2025-12-19 
02:27:34.493094269 +0100
+--- Python-3.15.0a8.orig/Doc/tools/extensions/pyspecific.py    2026-04-08 
13:45:33.788093782 +0200
++++ Python-3.15.0a8/Doc/tools/extensions/pyspecific.py 2026-04-08 
13:46:02.807521346 +0200
 @@ -24,6 +24,24 @@
  # Used in conf.py and updated here by python/release-tools/run_release.py
  SOURCE_URI = 'https://github.com/python/cpython/tree/main/%s'

++++++ skip-test_array_alignment.patch ++++++
--- /var/tmp/diff_new_pack.sPLYtw/_old  2026-04-09 16:21:38.482859872 +0200
+++ /var/tmp/diff_new_pack.sPLYtw/_new  2026-04-09 16:21:38.486860036 +0200
@@ -2,11 +2,11 @@
  Lib/test/test_buffer.py |    1 +
  1 file changed, 1 insertion(+)
 
-Index: Python-3.15.0a6/Lib/test/test_buffer.py
+Index: Python-3.15.0a8/Lib/test/test_buffer.py
 ===================================================================
---- Python-3.15.0a6.orig/Lib/test/test_buffer.py       2026-02-12 
00:38:25.599265172 +0100
-+++ Python-3.15.0a6/Lib/test/test_buffer.py    2026-02-12 00:46:24.303091378 
+0100
-@@ -4463,6 +4463,7 @@
+--- Python-3.15.0a8.orig/Lib/test/test_buffer.py       2026-04-08 
13:45:33.744093480 +0200
++++ Python-3.15.0a8/Lib/test/test_buffer.py    2026-04-08 13:46:05.816521482 
+0200
+@@ -4475,6 +4475,7 @@
          self.assertEqual([ptr % align for ptr in ptrs], [0]*len(ptrs))
  
      @support.cpython_only

Reply via email to