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-09-10 11:48:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python315 (Old) and /work/SRC/openSUSE:Factory/.python315.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python315" Thu Sep 10 11:48:00 2026 rev:18 rq:1376612 version:3.15.0~rc2 Changes: -------- --- /work/SRC/openSUSE:Factory/python315/python315.changes 2026-08-01 18:33:29.800434002 +0200 +++ /work/SRC/openSUSE:Factory/.python315.new.1265/python315.changes 2026-09-10 11:51:02.373705503 +0200 @@ -1,0 +2,451 @@ +Wed Sep 2 20:01:38 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.15.0~rc2: + - Security + - gh-156723: Update bundled libexpat to version 2.8.4. + - gh-156002: Bound the amount of data zipfile decompresses + per read for members compressed with bzip2, LZMA, or + Zstandard, matching the existing limit for deflate. A small + archive member could previously expand into an unbounded + allocation even when read in small chunks (bsc#1277111, + CVE-2026-15310). + - gh-155999: Fix the tarfile tar and data extraction filters + creating directories outside the destination for members + whose name leaves the destination and returns to it, such + as ../evil/../dest/sub/file. The containment check used the + resolved path, but intermediate directories were created + from the name as given (bsc#1276227, CVE-2026-19672). + - gh-155292: Change the stringprep module and encodings.idna + codec to not consider Unicode codepoint attributes beyond + those defined in RFC 3454 (bsc#1276226, CVE-2026-17084). + - gh-155694: Fix CVE 2026-15806 by scoping HTTPPasswordMgr + credentials to the URL scheme, preventing credentials + stored for an HTTPS URL from being used for a matching HTTP + URL, while URIs without a scheme continue to match any + scheme (bsc#1276223, CVE-2026-15806). + - Core and Builtins + - gh-155725: tracemalloc no longer acquires the GIL nor + creates a temporary thread state to trace memory + allocations: traceback frames now store plain UTF-8 strings + instead of Python str objects, and tracebacks are captured + using the Python thread state already associated with the + calling thread, even if it is not attached. Threads without + a Python thread state record the traceback as <unknown>. + - gh-148750: encodings is no longer frozen, due to issues + importing submodules when using a zipped standard library. + - gh-155254: Avoid warning about missing standard library + when using _pth files. + - gh-155978: Fix a memory leak in the free-threaded build + when setting or deleting a special method (such as + __repr__) on a class that has many subclasses. + - gh-155752: Fix a crash when a types.GenericAlias argument + gains a __typing_subst__ hook after the alias parameters + have been cached. + - gh-129752: Don’t update adaptive counters in the + free-threaded build when thread-local bytecode is disabled + (-X tlbc=0). Patch by Donghee Na. + - gh-155515: Track the internal HAMT iterators, which back + iteration over a contextvars.Context, with the garbage + collector. A reference cycle running through such an + iterator was never collected, leaking the whole context it + iterated over. + - gh-155400: Fix a deadlock in the free-threaded build + between two threads assigning to a special method of the + same class. While applying the type slot updates with the + world stopped, only the type lock was prevented from being + released; the type dict mutex could still be released and + re-acquired, in the wrong order, if the thread blocked on + the stop-the-world mutex. + - gh-155363: Fix a leak in the free-threaded build when + creating a thread state fails after an internal QSBR slot + has been reserved for it. The slot could never be + reclaimed, so the QSBR array grew without bound across + repeated failures. + - gh-154701: Fix an infinite loop in JIT when a FOR_ITER side + exit links an executor back to itself. + - gh-154196: Improve AttributeError messages from unresolved + lazy imports. Patch by Bartosz Sławecki. + - gh-151377: Fix races in free-threaded builds when updating + type slots for newly created classes and when removing + entries from a base type’s subclasses dictionary. + - gh-148817: Fold large constant list and set literals used + as the iterable of a for loop or in/not in test into + a constant tuple or frozenset, restoring an optimization + previously done by the AST optimizer that was lost when + constant folding moved to the CFG. + - gh-85260: compile() now raises ValueError instead of + crashing on a debug build if an identifier field of an AST + node (such as the name of a function, a class, an imported + module or a caught exception) is "None", "True" or "False". + - Library + - gh-156523: Fix asyncio.as_completed() not recording the + awaiting task in the call graph. + - gh-156408: Fix asyncio.print_call_graph() raising + AttributeError when called on a task that has already + finished. + - gh-156404: Restore compatibility with .pth files generated + before Python 3.15 in the site module. Inject the fullname + variable in the frame which executes pth code. + - gh-156353: Fix configparser parsing when using whitespace + in delimiters. + - gh-156112: _ios_support no longer fails to import when + ctypes.util.find_library() cannot resolve the ObjC runtime + through the dyld shared cache, as is the case on iOS 13. + The runtime is now loaded by name, which dyld resolves + against the cache directly. + - gh-155974: Fix a regression in Python 3.15: addstr(), + addnstr(), insstr() and insnstr() again restore the window + attributes when the write fails, instead of leaving the + temporary attr applied. + - gh-155952: Fix the signatures of + sqlite3.Connection.execute(), warnings.warn() and + locale.setlocale() which rendered <unrepresentable> instead + of the correct defaults for parameters. + - gh-155888: Fix asyncio.WriteTransport.writelines() hanging + the transport when the last data chunk is empty. + - gh-155869: Fix reorganize() in dbm.dumb failing to persist + updated value offsets, which could cause data loss after + reopening the database. + - gh-155781: Fix a possible crash in free-threaded builds + when the sqlite3 converter registry is modified + concurrently while a cursor builds its row cast map. + - gh-155702: Fix sqlite3.Blob slice assignment with a step. + It patched the bytes object read from the blob, which for + a single byte is an immortal singleton, so that the value + of that byte was changed in the whole process. + - gh-155468: Fix netrc to distinguish empty quoted tokens + from end-of-file, so malformed files no longer cause the + remaining content to be silently ignored. + - gh-155519: Avoid a data-race in free-threaded builds when + reading and writing context variables from different + threads. + - gh-155009: Fix argparse.ArgumentParser to preserve the + program name from sys.argv[0] when a named module is + executed as the main program without replacing sys.argv[0]. + - gh-155063: Bump the version of pip bundled in ensurepip to + version 26.2.1 + - gh-153711: On macOS, add run-time checks around the + syscalls pipe2 (2) and dup3 (2), in addition to the + existing build-time checks. This means that Python built on + macOS 27 (where these calls are available) can run on macOS + 26 (where they aren’t). + - gh-154871: Fixed a crash in asyncio.Task.get_context() when + called on an uninitialized task. + - gh-154568: Fix array unpickling of little-endian float16. + - gh-154566: Fix array.array.byteswap() corrupting data for + 'Zd' (complex double) arrays with more than one element: + the 16-byte item loop advanced the buffer pointer by only + 8 bytes per iteration, causing items after the first to be + scrambled. + - gh-154467: Fixed pdb remote attaching (python -m pdb -p + PID) sending an empty prompt to the client instead of (Pdb) + when the target process has an interactive terminal. + - gh-153772: isinstance() checks against collections.abc + classes such as Mapping no longer raise AttributeError when + the instance has no __class__. The abstract base class + machinery now falls back to the object’s type in that case, + matching the behaviour of the built-in isinstance(). + - gh-154086: Store per-thread sample counts in Tachyon + flamegraphs so filtering a thread updates frame widths and + totals. + - gh-154060: Store measured duration and sampling rate in + Tachyon binary profiles so they remain available in + replayed flamegraphs. + - gh-154085: Prevent differential flamegraphs from + duplicating self time across line nodes for the same + function. + - gh-154088: Make Tachyon count and render elided stacks + consistently in differential flamegraphs. + - gh-154089: Do not show unavailable sampling efficiency + statistics in replayed Tachyon flamegraphs. + - gh-153158: Remove the erroneous width argument of + calendar.HTMLCalendar.formatmonthpage(), which could drop + the year from the heading. + - gh-113329: Fix OSError being raised when trying to run + doctests on a class objects in the REPL. Patch by Sten + Wessel. + - Build + - gh-156369: Update Android and iOS build scripts to use + OpenSSL 3.5.8. + - gh-156115: iOS simulator builds are now configured with + -mios-simulator-version-min instead of the device’s + -mios-version-min. The device flag made the linker reject + libraries resolved from the simulator SDK, so library + detection silently failed. + - Tools/Demos + - gh-154059: Fix the time units in Tachyon flame graph + tooltips by accounting for the sampling interval when + converting samples to milliseconds. + - C API + - gh-131740: On the free-threaded build, + PyUnstable_GC_VisitObjects() now also visits frozen objects + (objects moved to the permanent generation by gc.freeze()), + matching the behavior of the default build. +- Update to 3.15.0~rc1: + - Security + - gh-152674: The xml.etree.ElementTree.Element methods + findall(), iterfind() and find() avoid quadratic behavior + when using XPath index predicates ([1], [last()], + [last()-N]) on XML documents with many same-tag siblings + (bsc#1273148, CVE-2026-6879). + - Core and Builtins + - gh-154902: Fix a crash when __conditional_annotations__ is + rebound to a non-set object. + - gh-133931: Fix data races when setting attributes of + function objects on the free threaded build. + - gh-154775: When matching a complex literal in case + statements, an extraneous + sign (for example, 1++1j or + 1-+1j) is no longer allowed. + - gh-154709: Fix an out-of-bounds access in reverse + dictionary iterators when the underlying dictionary is + cleared and modified after the iterator is created. + - gh-154695: Fix asyncio.Task raising AttributeError when + created with eager_start=True and no explicit loop + argument. + - gh-153809: Fix interpreter crash while deallocating objects + of asyncio.Task on free-threaded builds. Contributed by + Sergey Miryanov. + - gh-154275: Fix a crash when getting deeply nested + __parameters__ from a types.GenericAlias objects. + - gh-154014: Fix a JIT assertion during interpreter shutdown + by initializing vm_data fields for cold executors that + bypass _Py_ExecutorInit(). + - gh-153932: Fix thread safety issue in the __reduce__ method + of enumerate. + - gh-153881: Fix potential data race when calling + __getstate__() under the free-threaded build. + - gh-153570: Fix a use-after-free in bytearray.take_bytes() + when the argument’s __index__() method resizes the + bytearray. Patch by tonghuaroot. + - gh-153419: Fix multiple bytearray crashes and reference + leaks caused by skipping __init__() and broken state setup + code. + - gh-153236: Propagate exceptions raised while importing lazy + submodules instead of reporting them as missing attributes. + - gh-148874: Ignore interrupts immediately after calling the + __enter__ method of a context menager in a with statement. + This ensures that the __exit__ method is always called in + a with statement. + - gh-150208: Avoid double-quoting string values from + pyconfig.h in sysconfigdata variables. + - Library + - gh-155063: Bump the version of pip bundled in ensurepip to + version 26.2 + - gh-154936: Fix the pure Python json decoder to report the + correct position for invalid literal control characters in + JSON strings. + - gh-154892: Fix a bug in the C accelerator for zoneinfo + where datetime.datetime subclasses returning -1 for hour, + minute, or second could incorrectly raise a SystemError. + - gh-154848: The pickle C accelerator now enforces frame + boundaries when unpickling, as the pure Python + implementation already did. An argument that straddles + a frame boundary, or a frame that begins before the + previous one has ended, now raises pickle.UnpicklingError + instead of being silently read across the boundary. This + prevents the loaded data from diverging from the + pickletools disassembly of the same pickle. + - gh-154885: os.get_terminal_size() now checks isatty before + calling ioctl, which reduces log noise on Android. + - gh-109638: Fix exponential time in csv.Sniffer.sniff() for + a sample which contains many quote characters. A doubled + quote character is now also detected in a field which + contains the delimiter or a line break. + - gh-98820: Fix quadratic time in csv.Sniffer.sniff() for + a sample which contains quoted fields, in particular for + a single column of quoted fields (bsc#1274683, + CVE-2026-18503). + - gh-154738: Fix ExternalEntityParserCreate() not propagating + the reparse-deferral setting to the subparser, which left + GetReparseDeferralEnabled() returning an uninitialized + value. Patch by tonghuaroot. + - gh-93251: Fix UnicodeDecodeError in socket functions (such + as getaddrinfo() and gethostbyaddr()) when the localized + error message of the C library is not UTF-8: decode it from + the locale encoding. + - gh-148468: Fix a regression in argparse where colorized + argument help containing format specifiers did not accept + string-like proxy objects. + - gh-142035: Fix incorrect wrapping of argparse help text + when color is enabled. + - gh-135736: Fix :asyncio.TaskGroup to not wrap + a GeneratorExit into a BaseExceptionGroup if it was raised + by the body of the task group and none of the tasks in the + group raised exceptions. + - gh-154551: Fix ctypes.util.find_library() returning None in + non-UTF-8 locales. + - gh-79366: Fixed a race condition in logging: if a handler + was removed while a record was being emitted, the following + handlers of the same logger could be skipped. + - gh-154189: Fixed a potential use-after-free when calling + functools.partial(). Now, when invoking a partial() object, + the stored function, positional arguments, and keyword + arguments are preserved for the duration of the call in + case of reentrancy. + - gh-73458: Fix logging.config.listen(): it left the caller + waiting for the ready event forever if the server could not + be started, for example if the port was invalid or already + in use. It now also binds to an IPv6 address if the host + has no IPv4 address, for example if localhost is only + aliased to ::1. + - gh-154460: Fix time.strftime() and + datetime.datetime.strftime() returning a wrong ISO 8601 + week number (%V) on OpenBSD. + - gh-154435: Fix os.posix_fadvise() and os.posix_fallocate() + on DragonFly BSD: they raised OSError with a meaningless + error code, because these functions return -1 and set errno + there. ++++ 157 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python315/python315.changes ++++ and /work/SRC/openSUSE:Factory/.python315.new.1265/python315.changes Old: ---- Python-3.15.0b4.tar.xz Python-3.15.0b4.tar.xz.sigstore New: ---- Python-3.15.0rc2.tar.xz Python-3.15.0rc2.tar.xz.sigstore ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python315.spec ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:03.667759775 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:03.669759859 +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~b4 -%define tarversion 3.15.0b4 +Version: 3.15.0~rc2 +%define tarversion 3.15.0rc2 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter ++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:03.727762291 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:03.732762501 +0200 @@ -4,11 +4,11 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) -Index: Python-3.15.0b4/Lib/test/test_pyexpat.py +Index: Python-3.15.0rc2/Lib/test/test_pyexpat.py =================================================================== ---- 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 @@ +--- Python-3.15.0rc2.orig/Lib/test/test_pyexpat.py 2026-09-02 22:04:50.528936655 +0200 ++++ Python-3.15.0rc2/Lib/test/test_pyexpat.py 2026-09-02 22:05:13.358716153 +0200 +@@ -1081,6 +1081,10 @@ self.assertEqual(started, ['doc']) def test_reparse_deferral_disabled(self): @@ -19,10 +19,10 @@ started = [] def start_element(name, _): -Index: Python-3.15.0b4/Lib/test/test_sax.py +Index: Python-3.15.0rc2/Lib/test/test_sax.py =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Lib/test/test_sax.py 2026-09-02 22:04:50.671587868 +0200 ++++ Python-3.15.0rc2/Lib/test/test_sax.py 2026-09-02 22:05:13.359325334 +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.0b4/Lib/test/test_xml_etree.py +Index: Python-3.15.0rc2/Lib/test/test_xml_etree.py =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Lib/test/test_xml_etree.py 2026-09-02 22:04:51.208684774 +0200 ++++ Python-3.15.0rc2/Lib/test/test_xml_etree.py 2026-09-02 22:05:13.359958941 +0200 @@ -138,6 +138,11 @@ return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) ++++++ Python-3.15.0rc2.tar.xz.sigstore ++++++ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIDIzCCAqmgAwIBAgIUKwLUw8Ju9ZMkThgz0J6AVYlxhT0wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTAxMTE1MDIzWhcNMjYwOTAxMTIwMDIzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExDykVs1kEnmTsKOJxlCFJFctlyxDSivaDZtkS/DnBhNlcqc3p1X97AGVIiuKQ+lQGXpxsBHZiReXQRtJfvbLr6OCAcgwggHEMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUWUmO1dC4H523kbvQ3MIyqQEaP1AwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoFzOX/AAAAQDAEgwRgIhALpfq7VGcODbni1gZMRxJpFUAmmYvxC5elMVpn/nsLrmAiEAsimXYgwTRg 7CKfF8LkwCHxorOMGsyJtTdWIJm3H++/MwCgYIKoZIzj0EAwMDaAAwZQIxAO4sDqbS+kErIQoDnYWFLoT+22F0JVyj7FMbr38LVhJtXFUAxtE5nTKrZd6czyML7gIwR6k40SBl/uowIdM7RwaHH/lRi9bj1Py8Cj276JkFI7tyV/a4o40ndJyf5ugLKBFM"},"tlogEntries":[{"logIndex":"2675318197","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1788263424","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCC9jJrOdffYO+7WsnAdFCrRvDGAHVfdtJPsrwW2EZkEQIgF8eeSXv/QUEHttoYvOHS4pgtsBGi467DZ6nIeUoDcQI="},"inclusionProof":{"logIndex":"2553413935","rootHash":"xm2rCUXoqngkHj8cWnZCtNPLYszXpajVqgtCN1S6jRU=","treeSize":"2553413951","hashes":["4u2OXRQviYapVbR4N//ssbBFHQhndoO5wyAtpPGBlAc=","GLARglcBjhcfC0p8rIfPS9LQs/GJRClhNWVcW4/CFeI=","yDt+e+HGs8pXjmWe6RimdCK9SJJApGXw8GU4gSbKkHE=","sW75Itvqrssq2u9iX2qHEirVod8Y15pK7HV4I8zDZzs=","KkQXJC6VLQoB8wEKfDTYlTbzuTfXnu5024yzsqFoI4U=","cSEYXG2rEUU7HyjY2RZFFI/yheNMIgJ2GLK3HXUHr3A=","SSH92a65bJay4W0AgaDI3pupgOhaV3iYVReHdfUig5s=","UX3sdv A8Z8o3UT/TCllcEVIJIMKKN7j9jBDsVczU0L8=","HGv3uWODv80+/W38Qp9dwZvMME6N2S3s6KWENP9zHBw=","W+9Pzz9RSgONXuum1pR7Ru7WDjAmmiJjqaC9gYMnSBQ=","eXSLrLqKSxRTixSP/k4YimriB2lufao6trqTrsxxlyg=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2553413951\nxm2rCUXoqngkHj8cWnZCtNPLYszXpajVqgtCN1S6jRU=\n\n— rekor.sigstore.dev wNI9ajBFAiEA1Y2/mgkxTjcM4uml8uDhs7XRq8Rw3/oW0lfwQaGIAJgCIC1Doq75O4YG/KsCVetlMXI0KKjJ2H8wGtJUD1dQuROk\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4ZDkzYWY1ZWFhYWVhNWFkZmQ0MWJkNzg2YTdiYTNmMDNmMmFkMWFiNTdjNmE2NWUwYjk2M2RlYWI5MWQ1YWQ3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNaYVd4SER6eFpoYmlubVlnMG5rb2doSVh1N0hHM2w1clk1S2xMQkI4dXF3SWhBSklvNlFybG5TQWZld09mK1dSekFoNklibWw1M0dIbGU2cjJwV2Y3OWZ4diIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlV TVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpla05EUVhGdFowRjNTVUpCWjBsVlMzZE1WWGM0U25VNVdrMXJWR2huZWpCS05rRldXV3g0YUZRd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVUVhoTlZFVXhUVVJKZWxkb1kwNU5hbGwzVDFSQmVFMVVTWGROUkVsNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVY0UkhsclZuTXhhMFZ1YlZSelMwOUtlR3hEUmtwR1kzUnNlWGhFVTJsMllVUmFkR3NLVXk5RWJrSm9UbXhqY1dNemNERllPVGRCUjFaSmFYVkxVU3RzVVVkWWNIaHpRa2hhYVZKbFdGRlNkRXBtZG1KTWNqWlBRMEZqWjNkblowaEZUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZYVlcxUENqRmtRelJJTlRJemEySjJVVE5OU1hseFVVVmhVREZCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6 WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhWGRaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamxDU0hOQlpWRkNNMEZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdlJucFBXQzlCUVVGQlVVUkJSV2QzVW1kSmFFRk1jR1lLY1RkV1IyTlBSR0p1YVRGbldrMVNlRXB3UmxWQmJXMVpkbmhETldWc1RWWndiaTl1YzB4eWJVRnBSVUZ6YVcxWVdXZDNWRkpuTjBOTFprWTRUR3QzUXdwSWVHOXlUMDFIYzNsS2RGUmtWMGxLYlROSUt5c3ZUWGREWjFsSlMyOWFTWHBxTUVWQmQwMUVZVUZCZDFwUlNYaEJUelJ6UkhGaVV5dHJSWEpKVVc5RUNtNVpWMFpNYjFRck1qSkdNRXBXZVdvM1JrMWljak00VEZab1NuUllSbFZCZUhSRk5XNVVTM0phWkRaamVubE5URGRuU1hkU05tczBNRk5DYkM5MWIzY0tTV1JOTjFKM1lVaElMMnhTYVRsaWFqRlFlVGhEYWpJM05rcHJSa2szZEhsV0wyRTBielF3Ym1SS2VXWTFkV2RNUzBKR1RRb3RMUzB0TFVWT1JDQkRSVkpVU1VaS lEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIIE6TADAgEAMIIE4AYJKoZIhvcNAQcCoIIE0TCCBM0CAQMxDTALBglghkgBZQMEAgEwgcIGCyqGSIb3DQEJEAEEoIGyBIGvMIGsAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgf5JxMQ1tHVwf9FzbsL1eEYYX32yIQkh/PpZJMTDY32ACFQDIvp9WNONl0Bx4ODWzPoA8iYH4zRgPMjAyNjA5MDExMTUwMjRaMAMCAQECCCah1sYW4uzJoDKkMDAuMRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxFTATBgNVBAMTDHNpZ3N0b3JlLXRzYaCCAhQwggIQMIIBlqADAgECAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkMB4XDTI1MDQwODA2NTk0M1oXDTM1MDQwNjA2NTk0M1owLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATitrZnyEo2KDZP2QWMIBOgYbfSOTL5ZC/cHMv6Yq+HVIo1H9TC7Cx80KDiyvKhgB3wTqKyi9UDczhqg12b1AOLnRnydMTK+qB8M+1MjBci1+Jb8AV/VXu7CRuQCiPTHFyjajBoMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUif15Q4fP0GVGwwJGxyxzW3206wMwHwYDVR0jBBgwFoAUmOwB73+7Uf/UlR5vioiYUweJzr8wFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwCgYI KoZIzj0EAwMDaAAwZQIwO2mxX/opo7SrIX9QyxfZpJRcpAV2gZOm1AZzR+2rVyy6Uc8Ybp2ybIw13ckH4bcRAjEA5qO8FyOkmYpvg2/7ZNqiPxRzn5vqKHoVcIIqtpKq6l7TvOqzAxxclN7VwTG8e++XMYIB2jCCAdYCAQEwUTA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDALBglghkgBZQMEAgGggfwwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yNjA5MDExMTUwMjRaMC8GCSqGSIb3DQEJBDEiBCDYAKclz02B7pgrxu1FbftHru6yNccvvbEqW8DOvAxaIjCBjgYLKoZIhvcNAQkQAi8xfzB9MHsweQQghfknvAerYsrDtENWwQ78gbLGiD/aernm2HDZ0TrNBbcwVTA9pDswOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCgYIKoZIzj0EAwIEZjBkAjAyMI1lG+jlZePfr4fWGo2OpskPFXcia9wpW32a5iL31MzjcXHag75neNb/9fVLmDQCMH0D4t7HnNb9miwCNryVkOZf6/cnfZ8cUuqAUSi/wbIxi4gbtWdb6ITem1vAzRy8sQ=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"jZOvXqqupa39Qb14anuj8D8q0atXxqZeC5Y96rkdWtc="},"signature":"MEYCIQCZaWxHDzxZhbinmYg0nkoghIXu7HG3l5rY5KlLBB8uqwIhAJIo6QrlnSAfewOf+ WRzAh6Ibml53GHle6r2pWf79fxv"}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:03.890769128 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:03.894769295 +0200 @@ -1,6 +1,6 @@ -mtime: 1785426904 -commit: 6e9601fd57fbeb011e940e4851b8e67bd8d72f3e0e6717b4534eb417dfebee0c +mtime: 1788383158 +commit: c51ef2be22316d64b8dcd5a6f60f2964b2c6c12824b5a7f0a0b455de1dbc09e4 url: https://src.opensuse.org/python-interpreters/python315 -revision: 6e9601fd57fbeb011e940e4851b8e67bd8d72f3e0e6717b4534eb417dfebee0c +revision: c51ef2be22316d64b8dcd5a6f60f2964b2c6c12824b5a7f0a0b455de1dbc09e4 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:03.926770637 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:03.930770805 +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.0b4/Doc/library/ensurepip.rst +Index: Python-3.15.0rc2/Doc/library/ensurepip.rst =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Doc/library/ensurepip.rst 2026-09-01 11:14:36.000000000 +0200 ++++ Python-3.15.0rc2/Doc/library/ensurepip.rst 2026-09-02 22:05:05.842807107 +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.0b4/Lib/ensurepip/__init__.py +Index: Python-3.15.0rc2/Lib/ensurepip/__init__.py =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Lib/ensurepip/__init__.py 2026-09-02 22:04:46.888367814 +0200 ++++ Python-3.15.0rc2/Lib/ensurepip/__init__.py 2026-09-02 22:05:05.843748292 +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.0b4/Lib/test/test_ensurepip.py +Index: Python-3.15.0rc2/Lib/test/test_ensurepip.py =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Lib/test/test_ensurepip.py 2026-09-02 22:04:49.143565787 +0200 ++++ Python-3.15.0rc2/Lib/test/test_ensurepip.py 2026-09-02 22:05:05.843807122 +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.0b4/Makefile.pre.in +Index: Python-3.15.0rc2/Makefile.pre.in =================================================================== ---- 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 @@ +--- Python-3.15.0rc2.orig/Makefile.pre.in 2026-09-02 22:05:00.958811251 +0200 ++++ Python-3.15.0rc2/Makefile.pre.in 2026-09-02 22:05:05.844633555 +0200 +@@ -2444,7 +2444,7 @@ install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -158,7 +158,7 @@ fi .PHONY: altinstall -@@ -2474,7 +2474,7 @@ +@@ -2455,7 +2455,7 @@ install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -167,10 +167,10 @@ fi .PHONY: commoninstall -Index: Python-3.15.0b4/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.15.0rc2/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.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 ++++ Python-3.15.0rc2/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2026-09-02 22:05:05.845210936 +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-09-02 23:05:58.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +.pbuild +python315-*-build/ ++++++ fix-test-recursion-limit-15.6.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:04.201782171 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:04.206782381 +0200 @@ -2,10 +2,10 @@ Lib/test/test_compile.py | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.15.0a8/Lib/test/test_compile.py +Index: Python-3.15.0rc2/Lib/test/test_compile.py =================================================================== ---- 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 +--- Python-3.15.0rc2.orig/Lib/test/test_compile.py 2026-09-02 22:04:48.725628578 +0200 ++++ Python-3.15.0rc2/Lib/test/test_compile.py 2026-09-02 22:06:02.007618738 +0200 @@ -24,6 +24,9 @@ from test.support.bytecode_helper import instructions_with_positions from test.support.os_helper import FakePath @@ -24,10 +24,10 @@ @support.skip_emscripten_stack_overflow() def test_extended_arg(self): repeat = 100 -@@ -724,6 +728,7 @@ - +@@ -725,6 +729,7 @@ @support.cpython_only @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") + @support.skip_if_huge_c_stack(100_000 if sys.platform == "android" else 500_000) + @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586") @support.skip_emscripten_stack_overflow() def test_compiler_recursion_limit(self): ++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:04.298786240 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:04.314786910 +0200 @@ -16,11 +16,11 @@ Makefile.pre.in | 7 +++++++ 1 file changed, 7 insertions(+) -Index: Python-3.15.0b4/Makefile.pre.in +Index: Python-3.15.0rc2/Makefile.pre.in =================================================================== ---- 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 @@ +--- Python-3.15.0rc2.orig/Makefile.pre.in 2026-09-01 11:14:36.000000000 +0200 ++++ Python-3.15.0rc2/Makefile.pre.in 2026-09-02 22:05:00.958811251 +0200 +@@ -1957,6 +1957,13 @@ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c ++++++ skip-test_pyobject_freed_is_freed.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:04.372789343 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:04.381789720 +0200 @@ -2,11 +2,11 @@ Lib/test/test_capi/test_mem.py | 1 + 1 file changed, 1 insertion(+) -Index: Python-3.14.0b4/Lib/test/test_capi/test_mem.py +Index: Python-3.15.0rc2/Lib/test/test_capi/test_mem.py =================================================================== ---- Python-3.14.0b4.orig/Lib/test/test_capi/test_mem.py 2025-07-09 07:53:00.072386821 +0200 -+++ Python-3.14.0b4/Lib/test/test_capi/test_mem.py 2025-07-09 07:55:44.206338886 +0200 -@@ -114,6 +114,7 @@ +--- Python-3.15.0rc2.orig/Lib/test/test_capi/test_mem.py 2026-09-02 22:04:48.617946481 +0200 ++++ Python-3.15.0rc2/Lib/test/test_capi/test_mem.py 2026-09-02 22:05:09.332922778 +0200 +@@ -119,6 +119,7 @@ def test_pyobject_forbidden_bytes_is_freed(self): self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed') ++++++ test_UDPLITE_support.patch ++++++ --- /var/tmp/diff_new_pack.YYI8F5/_old 2026-09-10 11:51:04.427791650 +0200 +++ /var/tmp/diff_new_pack.YYI8F5/_new 2026-09-10 11:51:04.435791985 +0200 @@ -2,11 +2,11 @@ Lib/test/test_socket.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) -Index: Python-3.15.0b4/Lib/test/test_socket.py +Index: Python-3.15.0rc2/Lib/test/test_socket.py =================================================================== ---- 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 @@ +--- Python-3.15.0rc2.orig/Lib/test/test_socket.py 2026-09-02 22:04:50.734588779 +0200 ++++ Python-3.15.0rc2/Lib/test/test_socket.py 2026-09-02 22:06:23.415928107 +0200 +@@ -177,6 +177,22 @@ return (cid is not None) @@ -29,7 +29,7 @@ def _have_socket_bluetooth(): """Check whether AF_BLUETOOTH sockets are supported on this host.""" try: -@@ -266,7 +282,7 @@ +@@ -273,7 +289,7 @@ HAVE_SOCKET_VSOCK = _have_socket_vsock()
