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-08-01 18:31:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python315 (Old)
 and      /work/SRC/openSUSE:Factory/.python315.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python315"

Sat Aug  1 18:31:00 2026 rev:17 rq:1368661 version:3.15.0~b4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python315/python315.changes      2026-07-15 
17:01:57.443833352 +0200
+++ /work/SRC/openSUSE:Factory/.python315.new.16738/python315.changes   
2026-08-01 18:33:29.800434002 +0200
@@ -1,0 +2,529 @@
+Thu Jul 30 13:37:06 UTC 2026 - Matej Cepl <[email protected]>
+
+- Update to 3.15.0~b4:
+  - Security
+    - gh-153030: Fixed quadratic complexity in incremental
+      parsing of long unterminated constructs (such as tags or
+      comments) in html.parser.HTMLParser, which could be
+      exploited for a denial of service (bsc#1271192,
+      CVE-2026-15308).
+    - gh-152216: Update bundled libexpat to version 2.8.2.
+    - gh-151987: The tarfile.TarFile.extract() method now applies
+      the given filter when it extracts a link target from the
+      archive as a fallback (bsc#1269959, CVE-2026-4360).
+    - gh-151981: In tarfile, seeking a stream now stops when end
+      of the stream is reached (bsc#1269788, CVE-2026-11972).
+    - gh-151558: Fixed an vulnerability in the tarfile data and
+      tar extraction filters where crafted archives could create
+      a symlink pointing outside the destination directory. This
+      was a bypass of CVE 2025-4330.
+    - gh-150743: http.client now limits the number of
+      chunked-response trailer lines it will read to
+      max_response_headers (100 by default), and the number of
+      interim (1xx) responses it will skip to 100. A malicious or
+      broken server could previously stream trailer lines or 100
+      Continue responses forever, hanging the client even when
+      a socket timeout was in use. Reported by @YLChen-007 via
+      GHSA-w4q2-g22w-6fr4.
+    - gh-143927: Normalize all line endings (CR, CRLF, and LF) to
+      LF+TAB when writing multi-line configparser values
+      (bsc#1269066, CVE-2026-0864).
+  - Core and Builtins
+    - gh-153298: Fixes a data race in types.GenericAlias
+      __parameters__ initialization on free-threading builds.
+    - gh-153205: Fix a potential SystemError during vector calls
+      when memory allocation fails. A MemoryError is now raised
+      instead.
+    - gh-152682: Fix NULL pointer dereference in compile() when
+      a reserved name (e.g. __classdict__) is used as a type
+      parameter name and memory allocation fails while formatting
+      the error message.
+    - gh-152635: Fix a crash caused when running out of memory
+      creating a _interpchannels channel. Now a MemoryError is
+      correctly raised.
+    - gh-152405: Do not expose the internal mapping of
+      types.MappingProxyType when performing rich-compare
+      operations with non-stdlib types. Previously, it was
+      possible to mutate the internal mapping of a proxy there.
+      Now we pass not the original dict instance, but its copy,
+      when dealing with custom types.
+    - gh-152492: collections.OrderedDict update method can now
+      accept frozendict as an argument.
+    - gh-152375: Fix undefined behaviour when a sys.monitoring
+      callback raised an exception while the program was
+      following a branch or loop.
+    - gh-152235: Defer GC tracking of set.intersection(),
+      set.difference(), set.symmetric_difference(), set.union()
+      and set.__sub__.
+    - gh-152235: Defer GC tracking of a set or frozenset to the
+      end of its construction from iterable.
+    - gh-152228: Fix an assertion failure when python is built in
+      a debug mode that happened in str.replace() under a limited
+      memory situation.
+    - gh-151722: frozendict.fromkeys() now only tracks the
+      frozendict in the garbage collector once the dictionary is
+      fully initialized.
+    - gh-151763: Fixes possible crash on types.CodeType
+      deallocation.
+    - gh-152020: On the free-threaded build, asyncio.all_tasks()
+      no longer loses eager-started tasks when called from
+      a thread other than the one running the event loop.
+    - gh-151763: Fix a potential crash in compile(), exec(),
+      eval() and ast.parse() when an allocation fails: the parser
+      or compiler could return without setting an exception.
+    - gh-151912: Fixed a crash in type() when selecting
+      a metaclass whose tp_new slot is NULL. Such metaclasses are
+      now rejected with TypeError instead of causing a NULL
+      pointer dereference.
+    - gh-151773: Fix a crash in contextvars.ContextVar.set() when
+      memory allocation fails.
+    - gh-151672: Fix an inconsistency where calling
+      __lazy_import__ with a string fromlist would return
+      a types.LazyImportType that resolves to the named member,
+      rather than the module being imported.
+    - gh-151619: Fix an issue where using non-module global or
+      builtin namespaces (such as dictionaries passed to exec())
+      could cause cached global loads to produce unresolved lazy
+      imports.
+    - gh-151126: Fix a crash when sharing memoryview objects
+      between interpreters fails due to running out of memory. It
+      now raises a proper MemoryError.
+    - gh-151644: Fix a data race in sys.setdlopenflags() and
+      sys.getdlopenflags() when called concurrently in the
+      free-threaded build. The underlying
+      _PyImport_GetDLOpenFlags and _PyImport_SetDLOpenFlags
+      functions now use atomic load/store operations.
+    - gh-151126: Avoid possible crash in _winapi.c where a device
+      has no memory left. Now it properly raises a MemoryError.
+    - gh-151029: On Linux, fix sys.remote_exec() unable to find
+      remote writable memory when libpython replaced on disk.
+    - gh-150459: Fix SyntaxError error message for from x lazy
+      import y. Raise SyntaxWarning on from . lazy import x (with
+      whitespace between the dots and a module named lazy).
+    - gh-150858: Fix a data race while changing __qualname__ of
+      a type concurrently on free-threaded builds.
+    - gh-144774: Fix data race in BaseException when an exception
+      is copied while being mutated.
+    - gh-150411: Fix a data race in the free-threaded build when
+      gc.get_count() reads the young generation allocation count
+      while another thread updates it.
+    - gh-149689: Fix missing error propagation in parser action
+      helpers when memory allocation fails.
+    - gh-149162: Fix a potential deadlock in
+      PyUnicode_InternFromString() and other interning functions
+      in the free-threaded build when called from C++ static
+      local initializers.
+    - gh-148825: Fix build error if specialization is disabled.
+  - Library
+    - gh-153695: Hashing a sqlite3.Row that contains an
+      unhashable value now raises TypeError instead of
+      SystemError.
+    - gh-153658: Fix sqlite3.Connection.iterdump() raising
+      sqlite3.OperationalError when a table name contains
+      a single quote.
+    - gh-85943: Fix struct functions raising BytesWarning under
+      the -bb command line option when a str format is used after
+      an equal bytes format (or vice versa). The internal format
+      cache no longer mixes str and bytes keys.
+    - gh-151292: Store the sample count in profiling.sampling
+      binary format, as a 64-bit integer, widening from
+      previously used 32-bit integer. This breaks the existing
+      recordings. Long or thread-heavy profiling sessions will no
+      longer fail because of OverflowError.
+    - gh-153417: Error messages from imaplib.IMAP4.select() and
+      imaplib.IMAP4.uid() no longer raise BytesWarning under -bb
+      when the mailbox or command argument is bytes.
+    - gh-153406: email.utils.parsedate_to_datetime() now raises
+      ValueError instead of OverflowError when the parsed year or
+      timezone offset is out of range, matching its documented
+      behavior.
+    - gh-153333: The readprofile method of tkinter.Tk now reads
+      the user’s profile scripts using the encoding declared in
+      the file, instead of the locale encoding.
+    - gh-153083: Defer GC tracking of an array.array to the end
+      of its construction.
+    - gh-153292: Fix data race in repr of threading.RLock in
+      free-threading build.
+    - gh-153293: Fix the live sampling profiler TUI keeping stale
+      aggregated opcode statistics after a stats reset.
+    - gh-143990: A tkinter.font.Font created from a named font,
+      including by copy(), now copies its configured options
+      rather than the options resolved by Tcl’s font actual,
+      preserving a size specified in pixels (a negative size).
+    - gh-148286: Fix undefined behavior in
+      compression.zstd.ZstdDecompressor.unused_data when
+      a complete frame was decompressed in a single call.
+    - gh-153210: Fix crash on array import under a memory
+      pressure.
+    - gh-153200: Fix math.isqrt() returning an incorrect result
+      for arguments not less than 2**64 that are instances of an
+      int subclass with an overridden comparison operator.
+    - gh-153068: Fix cProfile.Profile.enable() to no longer
+      overwrite errors from sys.monitoring.
+    - gh-153062: Fix a crash when concurrently iterating an
+      itertools.tee() iterator on the free-threaded build.
+    - gh-153056: Fix string.Template raising a spurious
+      ValueError when the pattern attribute is a compiled regular
+      expression object, which the documentation allows. On the
+      free-threaded build this also occurred as a data race on
+      the first concurrent use.
+    - gh-143921: Narrow the control character check in imaplib
+      commands: only NUL, CR and LF are now rejected. Other
+      control characters are valid in quoted strings and can
+      occur in mailbox names returned by the server, so they are
+      now accepted and sent quoted.
+    - gh-153037: Fix ZstdFile raising AttributeError instead of
+      io.UnsupportedOperation when iterating over a file that is
+      not open for reading.
+    - gh-135661: Fix html.parser.HTMLParser: an abruptly closed
+      empty comment (<!--> or <!--->) no longer extends up to
+      a later --> in the same feed() call.
+    - gh-152851: Prevent a crash when allocation fails while
+      copying a BLAKE-2s/2b object.
+    - gh-54930: Error responses of
+      http.server.BaseHTTPRequestHandler to malformed request
+      lines now include a status line and headers instead of
+      being sent in the bare HTTP/0.9 style. Only a valid
+      HTTP/0.9 request (a two-word GET request line) now receives
+      an HTTP/0.9 style response.
+    - gh-119592: Fix concurrent.futures.ProcessPoolExecutor
+      stranding submitted work forever when a worker process
+      exited upon reaching its max_tasks_per_child limit after
+      shutdown() was called with wait=False: a replacement worker
+      is now spawned and the remaining work executed as
+      documented. If the executor has instead been garbage
+      collected without shutdown() (gh-152967), or a replacement
+      worker cannot be started, the remaining futures now fail
+      with BrokenProcessPool instead of never resolving. A worker
+      exit racing shutdown(wait=False) can also no longer crash
+      the executor management thread.
+    - gh-150579: concurrent.futures now uses lazy imports for its
+      executor submodules instead of a module __getattr__ hook.
+    - gh-152951: collections.deque prevent rare crash when
+      calling extend under high memory pressure conditions.
+    - gh-150880: Normalize non-extended Windows paths before
+      appending the wildcard used by os.listdir() and
+      os.scandir(), making paths with trailing spaces behave
+      consistently with other filesystem APIs.
+    - gh-152068: Fixes a bug when a line was split (particularly
+      on macOS Terminal.app) in the middle of a colorized
+      keyword, causing the ANSI Color Reset sequence (ESC0m) to
+      not be properly printed, causing the output to be colored
+      when it shouldn’t
+    - gh-152849: Out-of-range float and integer timestamps now
+      raise OverflowError with the same message.
+    - gh-152847: Reject a POSIX TZ transition rule with non-digit
+      characters in the day-of-year field in the pure-Python
+      zoneinfo parser.
+    - gh-152718: Fix unbounded memory allocation in the
+      profiling.sampling binary profile reader when a file
+      declares more string or frame entries than it contains.
+    - gh-108280: Connecting imaplib to a server that does not
+      send a valid IMAP4 greeting (for example a POP3 server
+      answering on the IMAP port) now raises an error reporting
+      the server’s response instead of imaplib.IMAP4.error: None.
+    - gh-63121: imaplib now refreshes the cached capability list
+      after a successful login() or authenticate(), using the
+      CAPABILITY response sent by the server or, if none was
+      sent, by querying it, so that capabilities that become
+      available only after authentication (such as ENABLE on
+      Gmail) are recognized. Capabilities advertised in the
+      server greeting are now also used, avoiding a redundant
+      CAPABILITY command.
+    - gh-88574: imaplib no longer fails when a server sends
+      a spurious blank line after the counted data of a literal,
+      including after a literal that terminates a response (such
+      as a mailbox name returned by LIST). Such blank lines are
+      now skipped without swallowing the following line.
+    - gh-152502: Detect the curses mouse interface (getmouse(),
+      the BUTTON* constants, and others) with a configure
+      capability probe or library macros instead of gating it on
+      ncurses-specific macros. It is now also available with
+      other curses implementations that provide it, such as
+      NetBSD curses and PDCurses (the latter underpins
+      windows-curses).
+    - gh-151842: Fix a crash in _interpreters.capture_exception()
+      when MemoryError happens.
+    - gh-40038: imaplib now again quotes command arguments when
+      necessary, for example mailbox names containing a space.
+      Such quoting was inadvertently disabled when the module was
+      ported to Python 3, and the arguments are now quoted
+      according to the RFC 3501 grammar. For backward
+      compatibility, an argument already enclosed in double
+      quotes is left unchanged, so code that quotes arguments
+      itself keeps working.
+    - gh-50966: Fix unbounded recursion in turtle when a mouse
+      event handler that moves the turtle is reentered while the
+      screen is being redrawn, for example with
+      screen.ondrag(turtle.goto). This could previously crash the
+      interpreter.
+    - gh-152569: Fix asyncio.wait() leaking waiting tasks via the
+      await-graph when racing a future that never resolves. The
+      waiting task is now discarded from every future’s
+      awaited_by set once wait() returns, even for pending
+      futures.
+    - gh-110357: Importing hashlib no longer logs an error to
+      stderr when a normally guaranteed hash algorithm is
+      unavailable in the current runtime (for example under an
+      OpenSSL FIPS configuration or a build using
+      --without-builtin-hashlib-hashes). Code that actually uses
+      the missing algorithm still gets a clear ValueError.
+    - gh-152356: Fix a hang in profiling.sampling run --blocking
+      on Windows when the target process exits. The profiler now
+      finalizes binary profiles instead of continuing to sample
+      the exited process.
+    - gh-78335: Update the docstrings of tkinter and tkinter.ttk
+      widget classes to list all supported widget options,
+      including options added in Tk 9.0 and 9.1.
+      tkinter.Menubutton and tkinter.Message previously had no
+      option list at all.
+    - gh-151126: Fix two crashes in tkinter and socket modules
+      initialization under a memory pressure. Sets missing
+      MemoryError.
+    - gh-133031: curses.textpad.Textbox now enters and reads back
+      the non-ASCII characters of an 8-bit locale encoding,
+      instead of mangling them with a 7-bit mask.
+    - gh-71880: curses.textpad.Textbox now lets the lower-right
+      cell of the window be edited. Writing it with addch() would
+      move the cursor past the end of the window, raising an
+      error and scrolling a scrollable window, so it is now
+      written with insch(), which keeps the cursor in place.
+    - gh-83274: Deallocating a tkinter application from a thread
+      other than the one it was created in no longer crashes the
+      interpreter. The underlying Tcl interpreter is leaked
+      instead, and a RuntimeWarning is reported.
+    - gh-152305: Fix the pure-Python datetime.time.strftime()
+      implementation raising AttributeError for the year
+      directives.
++++ 232 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python315/python315.changes
++++ and /work/SRC/openSUSE:Factory/.python315.new.16738/python315.changes

Old:
----
  CVE-2026-11940-tarfile-escape.patch
  Python-3.15.0b3.tar.xz
  Python-3.15.0b3.tar.xz.sigstore

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

----------(Old B)----------
  Old:- Remove upstreamed patches:
  - CVE-2026-11940-tarfile-escape.patch
----------(Old E)----------

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

Other differences:
------------------
++++++ python315.spec ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.012544783 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.016544921 +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~b3
-%define         tarversion 3.15.0b3
+Version:        3.15.0~b4
+%define         tarversion 3.15.0b4
 %define         tarname    Python-%{tarversion}
 Release:        0
 Summary:        Python 3 Interpreter
@@ -230,9 +230,6 @@
 # PATCH-FIX-OPENSUSE test_UDPLITE_support.patch gh#python/cpython#149078 
[email protected]
 # improve testing of the presence of IPPROTO_UDPLITE support
 Patch49:        test_UDPLITE_support.patch
-# PATCH-FIX-UPSTREAM CVE-2026-11940-tarfile-escape.patch bsc#1268977 
[email protected]
-# Fix symlink escape via tarfile hardlink-extraction fallback
-Patch50:        CVE-2026-11940-tarfile-escape.patch
 #### Python 3.15 DEVELOPMENT PATCHES
 BuildRequires:  autoconf-archive
 BuildRequires:  automake
@@ -275,8 +272,8 @@
 %if 0%{?suse_version} >= 1500
 BuildRequires:  python3-python-docs-theme >= 2022.1
 %endif
-
 %endif
+
 %endif
 # end of {with doc}
 
@@ -358,26 +355,6 @@
 An easy to use interface for Unix DBM databases, and more specifically,
 the GNU implementation GDBM.
 
-%package -n %{python_pkg_name}-profiling
-Summary:        Python Statistical Sampling Profiler
-Requires:       %{python_pkg_name} = %{version}
-%obsolete_python_versioned profiling
-
-%description -n %{python_pkg_name}-profiling
-Statistical sampling profiler as profiling.sampling. This
-profiler enables low-overhead performance analysis of running
-Python processes without requiring code modification or process
-restart.
-
-Unlike deterministic profilers (cProfile and profile) that
-instrument every function call, the sampling profiler
-periodically captures stack traces from running processes.
-This approach provides virtually zero overhead while achieving
-sampling rates of up to 1,000,000 Hz, making it the fastest
-sampling profiler available for Python (at the time of its
-contribution) and ideal for debugging performance issues in
-production environments.
-
 %package -n %{python_pkg_name}-idle
 Summary:        An Integrated Development Environment for Python
 Requires:       %{python_pkg_name} = %{version}
@@ -427,6 +404,9 @@
 %obsolete_python_versioned typing
 # python3-xml was merged into python3, now moved into -base
 Provides:       %{python_pkg_name}-xml = %{version}
+# profiling subpackage was merged into the `base` subpackage
+Obsoletes:      %{python_pkg_name}-profiling < %{version}-%{release}
+Provides:       %{python_pkg_name}-profiling = %{version}-%{release}
 # Explicitly provided because rpm-build-python (which auto-generates this)
 # cannot be installed in the base flavor build root due to a bootstrap cycle:
 # rpm-build-python -> python3-base -> (this package)
@@ -721,7 +701,7 @@
 for module in \
     asyncio compression ctypes collections concurrent email encodings \
     ensurepip html http re pathlib _pyrepl \
-    importlib json logging multiprocessing pydoc_data unittest \
+    importlib json logging multiprocessing profiling pydoc_data unittest \
     urllib venv wsgiref test string sysconfig tomllib turtledemo \
     xml xmlrpc zipfile zoneinfo __phello__
 do
@@ -796,7 +776,7 @@
 mkdir -p 
%{buildroot}%{_prefix}/lib/python%{python_abi}/site-packages/__pycache__
 
 # cleanup parts that don't belong
-for dir in curses dbm sqlite3 tkinter idlelib profiling; do
+for dir in curses dbm sqlite3 tkinter idlelib; do
     find "%{buildroot}/%{sitedir}/$dir"/* -maxdepth 0 -name "test" -o -exec rm 
-rf {} +
 done
 
@@ -929,10 +909,6 @@
 %dir %{_datadir}/icons/hicolor/32x32
 %dir %{_datadir}/icons/hicolor/48x48
 %dir %{_datadir}/icons/hicolor/*/apps
-
-%files -n %{python_pkg_name}-profiling
-%{sitedir}/profiling
-
 # endif for if general
 %endif
 
@@ -1102,6 +1078,7 @@
 %{sitedir}/logging
 %{sitedir}/multiprocessing
 %{sitedir}/pathlib
+%{sitedir}/profiling
 %{sitedir}/pydoc_data
 %{sitedir}/re
 %{sitedir}/string

++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.056546300 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.064546577 +0200
@@ -4,11 +4,11 @@
  Lib/test/test_xml_etree.py |   10 ++++++++++
  3 files changed, 17 insertions(+)
 
-Index: Python-3.15.0a8/Lib/test/test_pyexpat.py
+Index: Python-3.15.0b4/Lib/test/test_pyexpat.py
 ===================================================================
---- 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 @@
+--- Python-3.15.0b4.orig/Lib/test/test_pyexpat.py      2026-07-30 
17:01:51.587822606 +0200
++++ Python-3.15.0b4/Lib/test/test_pyexpat.py   2026-07-30 17:02:10.146040283 
+0200
+@@ -1071,6 +1071,10 @@
          self.assertEqual(started, ['doc'])
  
      def test_reparse_deferral_disabled(self):
@@ -19,10 +19,10 @@
          started = []
  
          def start_element(name, _):
-Index: Python-3.15.0a8/Lib/test/test_sax.py
+Index: Python-3.15.0b4/Lib/test/test_sax.py
 ===================================================================
---- 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
+--- Python-3.15.0b4.orig/Lib/test/test_sax.py  2026-07-30 17:01:51.665436436 
+0200
++++ Python-3.15.0b4/Lib/test/test_sax.py       2026-07-30 17:02:10.147605243 
+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.0a8/Lib/test/test_xml_etree.py
+Index: Python-3.15.0b4/Lib/test/test_xml_etree.py
 ===================================================================
---- 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
+--- Python-3.15.0b4.orig/Lib/test/test_xml_etree.py    2026-07-30 
17:01:52.172313387 +0200
++++ Python-3.15.0b4/Lib/test/test_xml_etree.py 2026-07-30 17:02:10.148338185 
+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):
-@@ -1654,9 +1659,11 @@
+@@ -1693,9 +1698,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)
  
-@@ -1883,6 +1890,9 @@
+@@ -1922,6 +1929,9 @@
  
          self.assert_event_tags(parser, [('end', 'doc')])
  

++++++ Python-3.15.0b3.tar.xz -> Python-3.15.0b4.tar.xz ++++++
/work/SRC/openSUSE:Factory/python315/Python-3.15.0b3.tar.xz 
/work/SRC/openSUSE:Factory/.python315.new.16738/Python-3.15.0b4.tar.xz differ: 
char 48, line 1

++++++ Python-3.15.0b3.tar.xz.sigstore -> Python-3.15.0b4.tar.xz.sigstore ++++++
--- /work/SRC/openSUSE:Factory/python315/Python-3.15.0b3.tar.xz.sigstore        
2026-06-29 17:31:40.440722133 +0200
+++ 
/work/SRC/openSUSE:Factory/.python315.new.16738/Python-3.15.0b4.tar.xz.sigstore 
    2026-08-01 18:33:28.704396201 +0200
@@ -1 +1 @@
-{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", 
"verificationMaterial": {"certificate": {"rawBytes": 
"MIIDJDCCAqmgAwIBAgIUZQc8HC3BVCV8oJD7+JSYknD7hPowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjIzMTMzMTA0WhcNMjYwNjIzMTM0MTA0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMBfW6m5q1TX1g/9HQHZfDc/TSIxStahYmjRTSusJDlGLExH+ZiJg9rsWQ3NJXapI2IFL176UQLvoF2JXAiipFaOCAcgwggHEMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU9sEAXij4s8GXLTCEYcXiTYKmkGIwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnvStZHoAAAQDAEgwRgIhAKeQztx4T2Q7mrLnox/6r5XOLzRl3o96jm9MI9tN1ul5AiEAsgn9
 
xxbGC7C92sD8iH7Fn1Du/haNggNd84cX4H5LFZswCgYIKoZIzj0EAwMDaQAwZgIxANdoTu6n7pAIksnDkAowk+yMs+20S661gpaBs9Vu6+ykGgNLNw1AUBftVHIVr30+FAIxAKY0RGzkqB+qR9tkWvKUZe8DiaQUXemzuppFZe9UgKQOnVE1WhrLERcrs887+W+j7w=="},
 "tlogEntries": [{"logIndex": "1927037556", "logId": {"keyId": 
"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": 
"hashedrekord", "version": "0.0.1"}, "integratedTime": "1782221466", 
"inclusionPromise": {"signedEntryTimestamp": 
"MEYCIQCxre/xAuSN6ClcY6uUNU9GCsydKPDVPbt9iY1NMmnn4AIhAKj2DG+As/B6dlQVT0JgOrBTT/3BB4445c+gAkwv7kyK"},
 "inclusionProof": {"logIndex": "1805133294", "rootHash": 
"2tVzL0ysJ8SsCQco/2LiJeOoCzHTUxH9ZYMpcvsZb08=", "treeSize": "1805133379", 
"hashes": ["l7suGfCnLfypvggTM7KjKSJv2nFWCIbeiyJOJ3zH/YQ=", 
"KF4k30EVBMdfZGlDfxw+bKCRHAR9UWZzrS8mJKW8jGU=", 
"IevYAq+VKg0Yw29/zejEY7xfOWtuzgm0i8QCXDj09+U=", 
"KVNAcRMLmD1JWca/jAoTLpcmox+ciS5xTAkLLD+9ENM=", 
"jS9kaPoaLqzmJcVgi7kLkeMphEKS/4qEutpCo8e122s=", 
"prR7iKnWxftJ/sbK8jI4+HkAcFWLEHUAN3lFJxjkivE=", "ACppXOGZYC/V
 qCkdVkJQ1nhbOP6CUXTY3bdf/u1HyEQ=", 
"HctR1fjEs1pDGxGHvfyhLBNNAxi/IB8Kux5WEm4V6Ps=", 
"hYn41smhFjVSYc/5yTk11fIRgxQ1GjvwsIDAaqX2Bgs=", 
"9q1IekJxYyR+kMudPimESHf3+W/qxT8AogA4SSdS+cs=", 
"kr83lMoZ5gCq4EmPdP5CqTvhq9i9+nQjeQXdzwSqmSM=", 
"v8zdK/ozmFIwpIQFNSxTqyji3j3x5z8eT5M6Qa8b/Kc=", 
"ZXrex+0eF5KisPWFrbV4dU4sABvVX5VCWS6IPJzJTfI=", 
"+SdULakto7HyVLdyxex2WHH+ActKh/STEFaWrp8/9Ak=", 
"OMfDh4k9YD0E+t4sjqJsh+vg8D1ueo1cC07exyxmr6s=", 
"+vHKm4wNwGJ46ceyZ8mePD7Vn1SediStNHCStRoTSWQ=", 
"5HwWjuGNDisetbiWM0cWIXM65TIM3EJlqk13ntCQlcU=", 
"NDIRlqxO0IaGr94q86MIU7VCAN3yEEgOHS4loya5lu4=", 
"daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", 
"DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": 
"rekor.sigstore.dev - 
1193050959916656506\n1805133379\n2tVzL0ysJ8SsCQco/2LiJeOoCzHTUxH9ZYMpcvsZb08=\n\n\u2014
 rekor.sigstore.dev 
wNI9ajBFAiBKtWYtMfGakAPby2E0Z3nlx25LkB/UDLvLsMyPfaee6QIhAMmBxCwiQ5uAi6ZmzLffjqtvbcxCihw+NI7ilRzzTOS/\n"}},
 "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVr
 
b3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2YTkzNWFlMjM0YTY3ZTY1NDk4OTQzNzNiMGNmZWI4MzYxMTgyZDAzYjIxNDQyMzI4YWU5NTk4YWI3NDIyMTI3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRG5FQ2grQm5pdnR2b3kvdTFHdFZIR1JSS1hsdGZmQkRCSHZKTkFNK2QxQUFpRUEvRTdkSno3SGNoM0ozYTYyaXpRQUZYQzYxeVRxRHFyWG1DdzFyVllKQlZzPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUktSRU5EUVhGdFowRjNTVUpCWjBsVldsRmpPRWhETTBKV1ExWTRiMHBFTnl0S1UxbHJia1EzYUZCdmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxU1hwTlZFMTZUVlJCTUZkb1kwNU5hbGwzVG1wSmVrMVVUVEJOVkVFd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZOUW1aWE5tMDFjVEZVV0RGbkx6bElVVWhhWmtSakwxUlRTWGhUZEdGb1dXMXFVbFFLVTNWelNrUnNSMHhGZUVncldtbEtaemx5YzFkUk0wNUtXR0Z3U1RKSlJrd3hOelpWVVV4MmIwWXlTbGhCYVdsd1JtRlBRMEZqWjNkblowaEZUVUUwUndwQk1WV
 
mtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlU1YzBWQkNsaHBhalJ6T0VkWVRGUkRSVmxqV0dsVVdVdHRhMGRKZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhWGRaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamxDU0hOQlpWRkNNMEZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdWRsTjBXa2h2UVVGQlVVUkJSV2QzVW1kSmFFRkxaVkVLZW5SNE5GUXlVVGR0Y2t4dWIzZ3ZObkkxV0U5TWVsSnNNMjg1Tm1wdE9VMUpPWFJPTVhWc05VRnBSVU
 
Z6WjI0NWVIaGlSME0zUXpreWMwUTRhVWczUmdwdU1VUjFMMmhoVG1kblRtUTROR05ZTkVnMVRFWmFjM2REWjFsSlMyOWFTWHBxTUVWQmQwMUVZVkZCZDFwblNYaEJUbVJ2VkhVMmJqZHdRVWxyYzI1RUNtdEJiM2RySzNsTmN5c3lNRk0yTmpGbmNHRkNjemxXZFRZcmVXdEhaMDVNVG5jeFFWVkNablJXU0VsV2NqTXdLMFpCU1hoQlMxa3dVa2Q2YTNGQ0szRUtVamwwYTFkMlMxVmFaVGhFYVdGUlZWaGxiWHAxY0hCR1dtVTVWV2RMVVU5dVZrVXhWMmh5VEVWU1kzSnpPRGczSzFjcmFqZDNQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],
 "timestampVerificationData": {}}, "messageSignature": {"messageDigest": 
{"algorithm": "SHA2_256", "digest": 
"apNa4jSmfmVJiUNzsM/rg2EYLQOyFEIyiulZirdCISc="}, "signature": 
"MEUCIDnECh+Bnivtvoy/u1GtVHGRRKXltffBDBHvJNAM+d1AAiEA/E7dJz7Hch3J3a62izQAFXC61yTqDqrXmCw1rVYJBVs="}}
+{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIDIjCCAqigAwIBAgIUN3KATLbVUNRGDV3nGr+IpfN8U9owCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzE4MTMxMTUwWhcNMjYwNzE4MTMyMTUwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEP/mLsMZ733g1VB/kAgrkF77ieLaCy4JS2RKYswt3KDnhHag+d14Rr3lLloiUpnCwOw+Nvp4VpAly9KwTozJKJKOCAccwggHDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUm1tdwp94Y8hAlZqezruhSFJs0c4wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn3Vaw6UAAAQDAEcwRQIgJIvd6u7+l+JuCL7ql6aPTZW/b+7eW5IReU1VUqtT8goCIQCBxixwVlADU
 
61NThUtsDbLg5XCOwqqnPzs+ooQlCsZlzAKBggqhkjOPQQDAwNoADBlAjAYOQvFHW4WytSW/tzK6+l0+ukbO021DzG+bXWwmk6g2hecuA/eL4JrT/++ZPoZlIECMQCOB5HSfMrh759YUs8gpe0Oe1EMKFMZX3j7VRuTA5tGdgcsod//gv9iMoaRn7SvhiQ="},"tlogEntries":[{"logIndex":"2194684306","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1784380311","inclusionPromise":{"signedEntryTimestamp":"MEUCIAb2CoqDi8Xr9q17Cg4Mm3E2Pb8rpn//hQzHqRgxJMIDAiEA5RyPn67UnofJ5xCcEWamIvzse0ZptErA92rPrluXdXs="},"inclusionProof":{"logIndex":"2072780044","rootHash":"SY3SDjvxJC3nq1B4o0vAky7W/OIJfvE+IwGvwV2Q/uc=","treeSize":"2072780045","hashes":["0WlfWTp0PoMLmXc3QY9BPSWJKmKcp2T19t2EEAe+4lI=","5H1bF1WFzmj9cX9NzTEuI3YwKTymRi7FmG77OjtzVNA=","H7+hDcCI+0hTWdMM/bbVfi66+A5RpMu108wMK7Ge9Gg=","XHUUBKRduQxPj+UWpUKnO8psb9iT3PaiUpkAz3TAXTo=","A4wbPmd6qJ6Wy/Hmt3c8XCn599lIS9gsk+d/iPcTGL4=","vauqql7Pelcq9qxckzvv1zOfQgucwcJKdK4FPXHzl2c=","UwPn3fIHQVP2NCABt5FtphzO8LJqZ+b03j33DxvJUF8=","hWzOH
 
qG/S8Ck4cgHnJasw5wfeweX1fKLJBpUZv8PpWw=","yW2bz6raKCbYH+92WmM9Mkd7A1Ssm1W+WHwKUNNimz4=","LN4BQlVURhC2M/Xc4OivrIZ9N84ymrzP2D5nh03wLQU=","A7J53Hp6UjtklJa/6DOOwBFIBojnOs0IWvgZtejKFMY=","Rq/A2aTC9e54ldNjcpsJ26rX/h8JlN6ZHxgw7yEa6C0=","+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev
 - 
1193050959916656506\n2072780045\nSY3SDjvxJC3nq1B4o0vAky7W/OIJfvE+IwGvwV2Q/uc=\n\n—
 rekor.sigstore.dev 
wNI9ajBEAiBbPQwCpskR2L1ywk3hoUGtnCc+3EX3QK58yTXhrveY3wIgBrQPZ6rIz2MnpmaFYXgnpbc+IflLnBobWttKbJvtMdo=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5M2VmYjljODhkN2I2NjMzMzY4ZTdmN2I4ZjhkYjZlOTg5ODhmN2Y3NjFjMDliNzc4NDk0NDcyNjI4NDFjZTNhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJR05iWXVHSDY0bWpvalFRc2NPZm15YVAzREhDQTJnM3JZYUkrbzhFYnM2TEFpQnBLSWw3eU05WGV6RFFteW5JUEFT
 
ZzhuTVBtQ0hpT25jR2ZTcDJCWTY3eGc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpha05EUVhGcFowRjNTVUpCWjBsVlRqTkxRVlJNWWxaVlRsSkhSRll6YmtkeUswbHdaazQ0VlRsdmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UlRSTlZFMTRUVlJWZDFkb1kwNU5hbGwzVG5wRk5FMVVUWGxOVkZWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZRTDIxTWMwMWFOek16WnpGV1FpOXJRV2R5YTBZM04ybGxUR0ZEZVRSS1V6SlNTMWtLYzNkME0wdEVibWhJWVdjclpERTBVbkl6YkV4c2IybFZjRzVEZDA5M0swNTJjRFJXY0VGc2VUbExkMVJ2ZWtwTFNrdFBRMEZqWTNkblowaEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ0TVhSa0NuZHdPVFJaT0doQmJGcHhaWHB5ZFdoVFJrcHpNR00wZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZ
 
FdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhV2RaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamhDU0c5QlpVRkNNa0ZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdU0xWmhkelpWUVVGQlVVUkJSV04zVWxGSlowcEpkbVFLTm5VM0syd3JTblZEVERkeGJEWmhVRlJhVnk5aUt6ZGxWelZKVW1WVk1WWlZjWFJVT0dkdlEwbFJRMEo0YVhoM1ZteEJSRlUyTVU1VWFGVjBjMFJpVEFwbk5WaERUM2R4Y1c1UWVuTXJiMjlSYkVOeldteDZRVXRDWjJkeGFHdHFUMUJSVVVSQmQwNXZRVVJDYkVGcVFWbFBVWFpHU0ZjMFYzbDBVMWN2ZEhwTENqWXJiREFyZFd0aVR6QXlNVVI2Unl0aVdGZDNiV3MyWnpKb1pXTjFRUzlsVERSS2NsUXZLeXRhVUc5YWJFbEZRMDFSUTA5Q05VaFRaazF5YURjMU9Wa0tWWE00WjNCbE1FOWxNVVZOUzBaTl
 
dsZ3phamRXVW5WVVFUVjBSMlJuWTNOdlpDOHZaM1k1YVUxdllWSnVOMU4yYUdsUlBRb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIIE6jADAgEAMIIE4QYJKoZIhvcNAQcCoIIE0jCCBM4CAQMxDTALBglghkgBZQMEAgEwgcMGCyqGSIb3DQEJEAEEoIGzBIGwMIGtAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgvPKiY4EW/eoX4OD1GH6C1VqcGk85nOuMPSRFxT6eSuwCFQC341Fo+L8iyCqPCwFyhOF7cxh0KRgPMjAyNjA3MTgxMzExNTBaMAMCAQECCQD7p6Pmz+z6CaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgggIUMIICEDCCAZagAwIBAgIUOhNULwyQYe68wUMvy4qOiyojiwwwCgYIKoZIzj0EAwMwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZDAeFw0yNTA0MDgwNjU5NDNaFw0zNTA0MDYwNjU5NDNaMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE4ra2Z8hKNig2T9kFjCAToGG30jky+WQv3BzL+mKvh1SKNR/UwuwsfNCg4sryoYAd8E6isovVA3M4aoNdm9QDi50Z8nTEyvqgfDPtTIwXItfiW/AFf1V7uwkbkAoj0xxco2owaDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFIn9eUOHz9BlR
 
sMCRscsc1t9tOsDMB8GA1UdIwQYMBaAFJjsAe9/u1H/1JUeb4qImFMHic6/MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMAoGCCqGSM49BAMDA2gAMGUCMDtpsV/6KaO0qyF/UMsX2aSUXKQFdoGTptQGc0ftq1csulHPGG6dsmyMNd3JB+G3EQIxAOajvBcjpJmKb4Nv+2Taoj8Uc5+b6ih6FXCCKraSqupe07zqswMcXJTe1cExvHvvlzGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzE4MTMxMTUwWjAvBgkqhkiG9w0BCQQxIgQgYhR3j/GF7sFg6LX9v5squKjFQ+3gfE6JsX7C7h0XlmAwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwRpicsDdBmURiBCOG8l7xnLXROhWsn4GzKadEtlLP2A8QPN3C6o5/+RWdyq8+e0zBAjB/x4K2F9wFTNbHb5I5M4x/nUKhD9CTv2HmsqQJOlKeIte+zULXRypjupIx3uVjCw8="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"k++5yI17ZjM2jn97j4226YmI9/dhwJt3hJ
 
RHJihBzjo="},"signature":"MEQCIGNbYuGH64mjojQQscOfmyaP3DHCA2g3rYaI+o8Ebs6LAiBpKIl7yM9XezDQmynIPASg8nMPmCHiOncGfSp2BY67xg=="}}

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.200551267 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.204551405 +0200
@@ -1,6 +1,6 @@
-mtime: 1782986381
-commit: aeb0b976aba17ecc9a6e9e572bfe964b06957c2682f69cef8729937d4ddb7fe0
+mtime: 1785426904
+commit: 6e9601fd57fbeb011e940e4851b8e67bd8d72f3e0e6717b4534eb417dfebee0c
 url: https://src.opensuse.org/python-interpreters/python315
-revision: aeb0b976aba17ecc9a6e9e572bfe964b06957c2682f69cef8729937d4ddb7fe0
+revision: 6e9601fd57fbeb011e940e4851b8e67bd8d72f3e0e6717b4534eb417dfebee0c
 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj
 

++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.240552646 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.244552785 +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.0a8/Doc/library/ensurepip.rst
+Index: Python-3.15.0b4/Doc/library/ensurepip.rst
 ===================================================================
---- 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
+--- Python-3.15.0b4.orig/Doc/library/ensurepip.rst     2026-07-18 
09:57:43.000000000 +0200
++++ Python-3.15.0b4/Doc/library/ensurepip.rst  2026-07-30 17:02:06.220367965 
+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,10 +57,10 @@
     .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
  
     .. note::
-Index: Python-3.15.0a8/Lib/ensurepip/__init__.py
+Index: Python-3.15.0b4/Lib/ensurepip/__init__.py
 ===================================================================
---- 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
+--- Python-3.15.0b4.orig/Lib/ensurepip/__init__.py     2026-07-30 
17:01:48.743625962 +0200
++++ Python-3.15.0b4/Lib/ensurepip/__init__.py  2026-07-30 17:02:06.220909877 
+0200
 @@ -107,27 +107,27 @@
      os.environ['PIP_CONFIG_FILE'] = os.devnull
  
@@ -123,10 +123,10 @@
          upgrade=args.upgrade,
          user=args.user,
          verbosity=args.verbosity,
-Index: Python-3.15.0a8/Lib/test/test_ensurepip.py
+Index: Python-3.15.0b4/Lib/test/test_ensurepip.py
 ===================================================================
---- 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
+--- Python-3.15.0b4.orig/Lib/test/test_ensurepip.py    2026-07-30 
17:01:50.497809821 +0200
++++ Python-3.15.0b4/Lib/test/test_ensurepip.py 2026-07-30 17:02:06.221271238 
+0200
 @@ -121,6 +121,17 @@
              unittest.mock.ANY,
          )
@@ -145,11 +145,11 @@
      def test_bootstrapping_with_user(self):
          ensurepip.bootstrap(user=True)
  
-Index: Python-3.15.0a8/Makefile.pre.in
+Index: Python-3.15.0b4/Makefile.pre.in
 ===================================================================
---- 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 @@
+--- Python-3.15.0b4.orig/Makefile.pre.in       2026-07-30 17:02:01.059249436 
+0200
++++ Python-3.15.0b4/Makefile.pre.in    2026-07-30 17:02:06.221893021 +0200
+@@ -2463,7 +2463,7 @@
                        install|*) ensurepip="" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -158,7 +158,7 @@
        fi
  
  .PHONY: altinstall
-@@ -2429,7 +2429,7 @@
+@@ -2474,7 +2474,7 @@
                        install|*) ensurepip="--altinstall" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -167,10 +167,10 @@
        fi
  
  .PHONY: commoninstall
-Index: 
Python-3.15.0a8/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+Index: 
Python-3.15.0b4/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.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
++++ 
Python-3.15.0b4/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 
   2026-07-30 17:02:06.222499795 +0200
 @@ -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-07-30 17:55:04.000000000 +0200
@@ -0,0 +1,5 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
+python315-*-build/

++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.504561752 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.512562028 +0200
@@ -16,11 +16,11 @@
  Makefile.pre.in |    7 +++++++
  1 file changed, 7 insertions(+)
 
-Index: Python-3.15.0a7/Makefile.pre.in
+Index: Python-3.15.0b4/Makefile.pre.in
 ===================================================================
---- Python-3.15.0a7.orig/Makefile.pre.in       2026-03-10 13:31:15.000000000 
+0100
-+++ Python-3.15.0a7/Makefile.pre.in    2026-03-10 21:55:56.002096854 +0100
-@@ -1932,6 +1932,13 @@
+--- Python-3.15.0b4.orig/Makefile.pre.in       2026-07-18 09:57:43.000000000 
+0200
++++ Python-3.15.0b4/Makefile.pre.in    2026-07-30 17:02:01.059249436 +0200
+@@ -1976,6 +1976,13 @@
              -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
              -o $@ $(srcdir)/Modules/getbuildinfo.c
  

++++++ subprocess-raise-timeout.patch ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.556563546 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.560563684 +0200
@@ -2,11 +2,11 @@
  Lib/test/test_subprocess.py |    6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
 
-Index: Python-3.14.0b1/Lib/test/test_subprocess.py
+Index: Python-3.15.0b4/Lib/test/test_subprocess.py
 ===================================================================
---- Python-3.14.0b1.orig/Lib/test/test_subprocess.py   2025-05-09 
10:36:08.150615546 +0200
-+++ Python-3.14.0b1/Lib/test/test_subprocess.py        2025-05-09 
10:36:21.907614565 +0200
-@@ -160,7 +160,11 @@
+--- Python-3.15.0b4.orig/Lib/test/test_subprocess.py   2026-07-30 
17:01:51.784137045 +0200
++++ Python-3.15.0b4/Lib/test/test_subprocess.py        2026-07-30 
17:02:03.865301397 +0200
+@@ -161,7 +161,11 @@
          # child.
          self.assertRaises(subprocess.TimeoutExpired, subprocess.call,
                            [sys.executable, "-c", "while True: pass"],

++++++ test_UDPLITE_support.patch ++++++
--- /var/tmp/diff_new_pack.osW0oE/_old  2026-08-01 18:33:33.576564235 +0200
+++ /var/tmp/diff_new_pack.osW0oE/_new  2026-08-01 18:33:33.584564512 +0200
@@ -2,10 +2,10 @@
  Lib/test/test_socket.py |   18 +++++++++++++++++-
  1 file changed, 17 insertions(+), 1 deletion(-)
 
-Index: Python-3.15.0b2/Lib/test/test_socket.py
+Index: Python-3.15.0b4/Lib/test/test_socket.py
 ===================================================================
---- Python-3.15.0b2.orig/Lib/test/test_socket.py       2026-06-16 
20:06:50.647664953 +0200
-+++ Python-3.15.0b2/Lib/test/test_socket.py    2026-06-16 20:07:44.984538637 
+0200
+--- Python-3.15.0b4.orig/Lib/test/test_socket.py       2026-07-30 
17:01:51.705823990 +0200
++++ Python-3.15.0b4/Lib/test/test_socket.py    2026-07-30 17:02:16.051109546 
+0200
 @@ -170,6 +170,22 @@
      return (cid is not None)
  

Reply via email to