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-06-22 17:29:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python315 (Old) and /work/SRC/openSUSE:Factory/.python315.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python315" Mon Jun 22 17:29:05 2026 rev:14 rq:1360763 version:3.15.0~b2 Changes: -------- --- /work/SRC/openSUSE:Factory/python315/python315.changes 2026-04-29 19:19:26.397004511 +0200 +++ /work/SRC/openSUSE:Factory/.python315.new.1956/python315.changes 2026-06-22 17:29:55.606764465 +0200 @@ -1,0 +2,976 @@ +Tue Jun 16 14:50:17 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 3.15.0~b2 + - Security + - gh-149698: Update bundled libexpat to version 2.8.1 for the + fix for CVE 2026-45186. + - gh-87451: The ftplib module’s undocumented ftpcp function + no longer trusts the IPv4 address value returned from the + source server in response to the PASV command by default, + completing the fix for CVE-2021-4189. As with ftplib.FTP, + the former behavior can be re-enabled by setting the + trust_server_pasv_ipv4_address attribute on the source + ftplib.FTP instance to True. Thanks to Qi Deng at Aurascape + AI for the report. (bsc#1265268, CVE-2026-8328) + - gh-149474: Fix the binary writer in profiling.sampling not + firing the audit (PEP 578) when creating the output file. + The writer and the reader now accept any path-like object. + Patch by Maurycy Pawłowski-Wieroński. + - gh-149486: tarfile.data_filter() now validates link targets + using the same normalised value that is written to disk, + strips trailing separators from the member name when + resolving a symlink’s directory, and rejects link members + that would replace the destination directory itself. This + closes several path-traversal bypasses of the data + extraction filter. (bsc#1267821, CVE-2026-7774) + - gh-149079: Fix a potential denial of service in + unicodedata.normalize(). The canonical ordering step of + Unicode normalization used a quadratic-time insertion sort + for reordering combining characters, which could be + exploited with crafted input containing many combining + characters in non-canonical order. Replaced with + a linear-time counting sort for long runs. (bsc#1267581, + CVE-2026-3276). + - gh-149018: Improved protection against XML hash-flooding + attacks in xml.parsers.expat and xml.etree.ElementTree when + Python is compiled with libExpat 2.8.0 or later + (bsc#1264962, CVE-2026-7210). + - Core and Builtins + - gh-150374: Fix double release of the import lock on lazy + import reification errors. + - gh-149156: Fix an intermittent crash after os.fork() when + perf trampoline profiling is enabled and the child returns + through trampoline frames inherited from the parent + process. + - gh-149449: Fix a use-after-free crash when the unicodedata + module was removed from sys.modules and garbage-collected + between calls that decode \N{...} escapes or use the + namereplace codec error handler. + - gh-150107: asyncio: sendfile() and sock_sendfile() event + loop methods now call file.seek(offset) if file has + a seek() method, even if offset is 0 (default value). + - gh-150146: Fix a crash on a complex type variable + substitution. + - from typing import TypeVar; + memoryview[TypeVar("")][*typing.Mapping[..., ...]] used to + fail due to missing NULL check on _unpack_args C function + call. + - gh-148587: sys.lazy_modules is now a set instead of a dict + as initially spelled out in PEP 810. + - gh-150042: Fix refleak in queue.SimpleQueue.put if memory + allocation fails. + - gh-149590: Fix crash when faulthandler is imported more + than once. + - gh-149816: Fix a race condition in _PyBytes_FromList in + free-threading mode. + - gh-149816: Fix a race condition in memoryview with + free-threading. + - gh-149807: Fix hash(frozendict): compute the hash of each + (key, value) pair correctly. Patch by Victor Stinner. + - gh-149738: sqlite3: Disallow removing row_factory and + text_factory attributes of a connection to prevent a crash + on a query. + - gh-139808: Add branch protections for AArch64 (BTI/PAC) in + assembly code used by -X perf_jit (Linux perf profiler + integration). + - gh-149676: Fix frozendict | frozendict hash. + - gh-148829: sentinel objects now support a repr= argument + and their __module__ attribute is writable. + - gh-149642: Allow imports inside exec() calls within + functions under PYTHON_LAZY_IMPORTS=all. + - gh-144957: Fix lazy from imports of module attributes + provided by module-level __getattr__. + - gh-149459: Fix a crash in the JIT optimizer when + a specialized LOAD_SPECIAL guard deoptimized after + inserting the synthetic NULL stack entry. + - gh-148450: Fix abc.register() so it invalidates type + version tags for registered classes. + - Library + - gh-150685: Update bundled pip to 26.1.2 + - gh-150228: The new site.StartupState class lets callers + batch-process PEP 829 startup configuration files across + multiple site directories before any startup code runs, + with public addsitedir(), addusersitepackages(), + addsitepackages(), and process() methods. The signature of + site.addsitedir() is unchanged from Python 3.14. The + defer_processing_start_files argument and the + process_startup_files() function added earlier in the 3.15 + cycle have been removed; use site.StartupState instead. + - gh-150406: Fix a possible crash occurring during socket + module initialization when the system is out of memory on + platforms without a reentrant gethostbyname. + - gh-150372: readline: Fix a potential crash during tab + completion caused by an out-of-memory error during module + initialization. + - gh-150157: Fix a crash in free-threaded builds that occurs + when pickling by name objects without a __module__ + attribute while sys.modules is concurrently being modified. + - gh-150175: Fix race condition in + unittest.mock.ThreadingMock where concurrent calls could + lose increments to call_count and other attributes due to + a missing lock in _increment_mock_call. + - gh-84353: Preserve non-UTF-8 encoded filenames when + appending to a zipfile.ZipFile. Previously, non-ASCII names + stored in a legacy encoding (without the UTF-8 flag bit + set) could be corrupted when the central directory was + rewritten: they were decoded as cp437 and then re-stored as + UTF-8. + - gh-149189: Revert the changes to pprint defaults. Patch by + Hugo van Kemenade. + - gh-149995: Update various docstrings in typing. + - gh-88726: The email package now uses standard MIME charset + names “gb2312” and “big5” instead of non-standard names + “eucgb2312_cn” and “big5_tw”. + - gh-149571: Fix the C implementation of + xml.etree.ElementTree.Element.itertext(): it no longer + emits text for comments and processing instructions. + - gh-149921: Fix reference leaks in error paths of the + _interpchannels and _interpqueues extension modules. + - gh-142349: Add lazy to the list of support topic by help(). + - gh-149819: Fix regression in site.addsitedir() where .pth + files were no longer processed in Python subprocesses. This + happened because site.main() seeded known_paths with + entries inherited from the parent process, causing + addsitedir to skip .pth processing. + - gh-149816: Fix a race condition in _random.Random.__init__ + method in free-threading mode. + - gh-149801: Add IANA registered names and aliases with + leading zeros before number (like IBM00858, CP00858, + IBM01140, CP01140) for corresponding codecs. + - gh-149718: Coalesce consecutive identical stack frames in + Tachyon, so aggregating collectors (pstats, collapsed, + flamegraph, gecko) receive one collect. Improves sample + rate 3x, error rate and missed rate drop by 70%. Patch by + Maurycy Pawłowski-Wieroński. + - gh-149701: Fix bad return code from Lib/venv/bin/activate + if hashing is disabled + - gh-149504: Fix site.addsitedir() to allow re-entrant calls + from within startup files. Previously, a .pth file + containing an import line that called site.addsitedir() (or + a .start entry point doing the same) could crash with + RuntimeError: dictionary changed size during iteration + during site initialization, breaking tools such as uv run + --with. + - gh-149584: Fix excessive overhead in the Tachyon profiler + when inspecting a remote process by avoiding repeated + remote page-cache scans, batching predicted remote reads, + and reusing cached profiler result objects. Patch by Pablo + Galindo and Maurycy Pawłowski-Wieroński. + - gh-139489: Add xml.is_valid_text() to xml.__all__. + - gh-149614: Fix a regression that broke the ability to + deepcopy argparse.ArgumentParser instances. + - gh-112821: In the REPL, autocompletion might run arbitrary + code in the getter of a descriptor. If that getter raised + an exception, autocompletion would fail to present any + options for the entire object. Autocompletion now works as + expected for these objects. + - gh-149534: Fix merging of collections.defaultdict and + frozendict. + - gh-149388: Make asyncio.windows_utils.PipeHandle closing + idempotent. + - gh-149489: Fix ElementTree serialization to HTML. The + content of comments, processing instructions and elements + “xmp”, “iframe”, “noembed”, “noframes”, and “plaintext” is + no longer escaped. The “plaintext” element no longer have + the closing tag. Add support of empty attributes (with + value None). + - gh-149056: Fix json.load() not forwarding the array_hook + argument to json.loads(). Patch by Thomas Kowalski. + - gh-149046: io: Fix io.StringIO serialization: no longer + call str(obj) on str subclasses. Patch by Thomas Kowalski. + - gh-148441: xml.parsers.expat: prevent a crash in + CharacterDataHandler() when the character data size exceeds + the parser’s buffer size. + - gh-146452: Fix segfault in pickle when pickling + a dictionary concurrently mutated by another thread in the + free-threaded build. + - gh-86533: The os.makedirs() function and + pathlib.Path.mkdir() method now have a parent_mode + parameter to specify the mode for intermediate directories + when creating parent directories. This allows one to match + the behavior from Python 3.6 and earlier for os.makedirs(). + - gh-134261: zip: On reproducible builds, ZipFile uses UTC + instead of the local time when writing file datetimes to + avoid underflows. + - gh-133998: Fix struct.error exception when creating a file + with gzip.GzipFile or compressing data with gzip.compress() + if the system time is outside the range 00:00:00 UTC, + January 1, 1970 through 06:28:15 UTC, February 7, 2106, or + explicitly passed mtime argument is outside the range 0 to + 2**32-1. + - gh-128110: Fix bug in the parsing of email address headers + that could result in extraneous spaces in the decoded text + when using a modern email policy. Space between pairs of + adjacent RFC 2047 encoded-words is now ignored, per section + 6.2 (and consistent with existing parsing of unstructured + headers like Subject). + - gh-107398: Fix tarfile stream mode exception when process + the file with the gzip extra field. + - gh-121109: Fix tarfile performance issue when reading + archives in streaming mode (e.g. r|*). + - bpo-45509: Gzip headers are now checked for corrupted NAME, + COMMENT and HCRC fields. + - Tests + - gh-150387: Fix hang in + test.test_profiling.test_sampling_profiler.test_live_collector_ui.TestLiveModeErrors.test_run_failed_script_live + on slow buildbots. The test now always queues a final + q keystroke so the live TUI loop exits even when the + profiler collects enough samples to enter the post-finished + input loop. + - gh-149776: Fix test_socket on Linux kernel 7.1 and newer: + skip UDP Lite tests if it’s not supported. Patch by Victor + Stinner. + - Build + - gh-148294: Corrected the use of AC_PATH_TOOL in + configure.ac to allow a C++ compiler to be found on PATH. + - gh-148260: On Linux when Python is linked to the musl + C library, use a thread stack size of at least 1 MiB + instead of musl default which is 128 kiB. Patch by Victor + Stinner. + - Windows + - gh-149786: Fixes virtual environment launchers on Windows + free-threaded builds. + - gh-124111: Updated Windows builds to use Tcl/Tk 9.0.3. + - gh-138489: Windows distributions now include + a build-details.json file (see PEP 739). The legacy + installer does not install it, but all other distributions + from python.org and all preset configurations in the + PC\layout script will include one. + - gh-149029: Update Windows installer to ship with SQLite + 3.53.1. macOS + - gh-150644: When system logging is enabled (with + config.use_system_logger, messages are now tagged as + public. This allows the macOS 26 system logger to view + messages without special configuration. + - gh-149029: Update macOS installer to ship with SQLite + version 3.53.1. + - Tools/Demos + - gh-150258: Update the tooltip on the Tachyon flame graph to + show both absolute and relative percentages. + - C API + - gh-149725: Add PySentinel_CheckExact() for exact sentinel + type tests to accompany the existing PySentinel_Check(). + - gh-145235: Made PyDict_AddWatcher(), PyDict_ClearWatcher(), + PyDict_Watch(), and PyDict_Unwatch() thread-safe on the + free threaded build. +- Update to 3.15.0~b1: + - Security + - gh-149254: Update Android and iOS installer to use OpenSSL + 3.5.6. + - gh-149017: Update bundled libexpat to version 2.8.0. + - gh-148252: Fixed string table and sample record bounds + checks in _remote_debugging when decoding certain .pyb + inputs on 32-bit builds. Patch by Maurycy + Pawłowski-Wieroński. + - gh-90309: Base64-encode values when embedding cookies to + JavaScript using the http.cookies.BaseCookie.js_output() + method to avoid injection and escaping. (bsc#1262654, + CVE-2026-6019) + - gh-148808: Added buffer boundary check when using nbytes + parameter with + asyncio.AbstractEventLoop.sock_recvfrom_into(). Only + relevant for Windows and the asyncio.ProactorEventLoop. + - gh-148395: Fix a dangling input pointer in + lzma.LZMADecompressor, bz2.BZ2Decompressor, and internal + zlib._ZlibDecompressor when memory allocation fails with + MemoryError, which could let a subsequent decompress() call + read or write through a stale pointer to the + already-released caller buffer (bsc#1262098, + CVE-2026-6100). + - gh-148252: Fixed stack depth calculation in + _remote_debugging when decoding certain .pyb inputs on + 32-bit builds. Issue originally identified and diagnosed by + Tristan Madani (@TristanInSec on GitHub). + - gh-148178: Hardened _remote_debugging by validating remote + debug offset tables before using them to size memory reads + or interpret remote layouts. + - gh-148169: A bypass in webbrowser allowed URLs prefixed + with %action to pass the dash-prefix safety check + (bsc#1262319, CVE-2026-4786). + - gh-146581: Fix vulnerability in shutil.unpack_archive() for + ZIP files on Windows which allowed to write files outside + of the destination tree if the patch in the archive + contains a Windows drive prefix. Now such invalid paths + will be skipped. Files containing “..” in the name (like + “foo..bar”) are no longer skipped. + - gh-137586: Fix a PATH-injection vulnerability in webbrowser + on macOS where osascript was invoked without an absolute ++++ 679 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python315/python315.changes ++++ and /work/SRC/openSUSE:Factory/.python315.new.1956/python315.changes Old: ---- CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch CVE-2026-4786-webbrowser-open-action.patch CVE-2026-5713-validate-debug-load.patch CVE-2026-6019-Morsel-js_output.patch CVE-2026-6100-use-after-free-decompression.patch Python-3.15.0a8.tar.xz Python-3.15.0a8.tar.xz.sigstore macros.python3 New: ---- Python-3.15.0b2.tar.xz Python-3.15.0b2.tar.xz.sigstore test_UDPLITE_support.patch ----------(Old B)---------- Old:- Remove upstreamed patches: - CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch - CVE-2026-4786-webbrowser-open-action.patch Old: - CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch - CVE-2026-4786-webbrowser-open-action.patch - CVE-2026-5713-validate-debug-load.patch Old: - CVE-2026-4786-webbrowser-open-action.patch - CVE-2026-5713-validate-debug-load.patch - CVE-2026-6019-Morsel-js_output.patch Old: - CVE-2026-5713-validate-debug-load.patch - CVE-2026-6019-Morsel-js_output.patch - CVE-2026-6100-use-after-free-decompression.patch Old: - CVE-2026-6019-Morsel-js_output.patch - CVE-2026-6100-use-after-free-decompression.patch - For &ix86 we build `--without-frame-pointers` ----------(Old E)---------- ----------(New B)---------- New: - Add test_UDPLITE_support.patch which improves testing for the support of IPPROTO_UDPLITE, which could be not present although ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python315.spec ++++++ --- /var/tmp/diff_new_pack.A1MWZ1/_old 2026-06-22 17:29:56.710802923 +0200 +++ /var/tmp/diff_new_pack.A1MWZ1/_new 2026-06-22 17:29:56.714803063 +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~a8 -%define tarversion 3.15.0a8 +Version: 3.15.0~b2 +%define tarversion 3.15.0b2 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter @@ -174,7 +174,6 @@ Source2: baselibs.conf Source3: README.SUSE Source4: externally_managed.in -Source7: macros.python3 Source8: import_failed.py Source9: import_failed.map Source10: pre_checkin.sh @@ -228,24 +227,13 @@ # 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 CVE-2026-6100-use-after-free-decompression.patch bsc#1262098 [email protected] -# NULL dangling pointer to avoid use-after-free error -Patch44: CVE-2026-6100-use-after-free-decompression.patch -# PATCH-FIX-UPSTREAM CVE-2026-4786-webbrowser-open-action.patch bsc#1262319 [email protected] -# Fix webbrowser %action substitution bypass of dash-prefix check -Patch45: CVE-2026-4786-webbrowser-open-action.patch -# PATCH-FIX-UPSTREAM CVE-2026-5713-validate-debug-load.patch bsc#1262132 [email protected] -# Validate remote debug offset tables on load -Patch46: CVE-2026-5713-validate-debug-load.patch -# PATCH-FIX-UPSTREAM CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch bsc#1261969 [email protected] -# Reject CR/LF in HTTP tunnel request headers -Patch47: CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch -# PATCH-FIX-UPSTREAM CVE-2026-6019-Morsel-js_output.patch bsc#1262654 [email protected] -# Base64-encode cookie values embedded in JS -Patch48: CVE-2026-6019-Morsel-js_output.patch +# 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 #### Python 3.15 DEVELOPMENT PATCHES BuildRequires: autoconf-archive BuildRequires: automake +BuildRequires: crypto-policies-scripts BuildRequires: fdupes BuildRequires: gmp-devel BuildRequires: lzma-devel @@ -261,7 +249,6 @@ BuildRequires: pkgconfig(zlib) #!BuildIgnore: gdk-pixbuf-loader-rsvg %if 0%{?suse_version} >= 1550 && %{without base} -# The provider for python(abi) is in rpm-build-python # Skip for the base flavor: rpm-build-python requires python3-base, which # creates an unresolvable dependency loop when building python3xx-base itself. BuildRequires: rpm-build-python @@ -438,7 +425,9 @@ # 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) +%if %{with GIL} Provides: python(abi) = %{python_version} +%endif %description -n %{python_pkg_name}-base Python is an interpreted, object-oriented programming language, and is @@ -578,6 +567,7 @@ export CFLAGS="%{optflags} -IVendor/" +# gh#python/cpython#151602 for that without-frame-pointers %configure \ --with-platlibdir=%{_lib} \ --docdir=%{_docdir}/python \ @@ -599,6 +589,9 @@ %if %{with experimental_jit} --enable-experimental-jit=yes-off \ %endif +%ifarch %ix86 + --without-frame-pointers \ +%endif %if %{without GIL} --disable-gil \ %endif @@ -736,10 +729,10 @@ _posixsubprocess _queue _random resource select _ssl _socket \ _statistics _struct syslog termios _testbuffer _testimportmultiple \ _testmultiphase unicodedata zlib _ctypes_test _testinternalcapi _testcapi \ - _testclinic _testclinic_limited xxlimited xxlimited_35 _remote_debugging \ - _testlimitedcapi _xxtestfuzz _elementtree pyexpat _md5 _sha1 \ + _testclinic _testclinic_limited xxlimited xxlimited_35 xxlimited_3_13 \ + _remote_debugging _testlimitedcapi _xxtestfuzz _elementtree pyexpat \ _interpchannels _interpqueues _interpreters \ - _sha2 _blake2 _sha3 _uuid _zstd _zoneinfo \ + _md5 _sha1 _sha2 _blake2 _sha3 _uuid _zstd _zoneinfo \ _testsinglephase xxsubtype do eval rm "%{buildroot}%{sitedir}/lib-dynload/$library.*" @@ -852,12 +845,6 @@ # Remove -IVendor/ from python-config boo#1231795 sed -i 's/-IVendor\///' %{buildroot}%{_bindir}/python%{python_abi}-config -# RPM macros -%if %{primary_interpreter} -mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ -install -m 644 %{SOURCE7} %{buildroot}%{_rpmconfigdir}/macros.d/ # macros.python3 -%endif - # import_failed hooks FAILDIR=%{buildroot}/%{sitedir}/_import_failed mkdir $FAILDIR @@ -1015,10 +1002,6 @@ %endif # license text, not a doc because the code can use it at run-time %{sitedir}/LICENSE.txt -# RPM macros -%if %{primary_interpreter} -%{_rpmconfigdir}/macros.d/macros.python3 -%endif # build-details %{_libdir}/python3*/build-details.json @@ -1074,6 +1057,7 @@ %{dynlib _uuid} %{dynlib xxlimited} %{dynlib xxlimited_35} +%{dynlib xxlimited_3_13} %{dynlib xxsubtype} %{dynlib zlib} %{dynlib _zoneinfo} ++++++ Python-3.15.0a8.tar.xz -> Python-3.15.0b2.tar.xz ++++++ /work/SRC/openSUSE:Factory/python315/Python-3.15.0a8.tar.xz /work/SRC/openSUSE:Factory/.python315.new.1956/Python-3.15.0b2.tar.xz differ: char 26, line 1 ++++++ Python-3.15.0b2.tar.xz.sigstore ++++++ {"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIIDITCCAqigAwIBAgIUHmbBhF4jjLUnNhIYBQOaslMVLVcwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjAyMTczNzE4WhcNMjYwNjAyMTc0NzE4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEc9ky2FHaaQVmok4Simv/MTtSopw0HT2hcHQV9oOEe3maDZwLx40MoaSdP9bK9XXmMXvhkayOur57o/w3BdUSkKOCAccwggHDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUxLZW58R5scMTa7vy6bTB64E6EY0wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDBSBgorBgEEAYO/MAEYBEQMQkNnY3hNekkwTWpJMUVpWm9kSFJ3Y3pvbE1rWWxNa1puYVhSb2RXSXVZMjl0SlRKR2JHOW5hVzRsTWtadllYVjBhQTCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnolpRdMAAAQDAEcwRQIhAM+5vT4NOGsCNyGLCz/TDrO1zgYOrs8xiObIvfovVT9ZAiA35AKlk yUyJOeM8yu3EooPgS7Fr1Y0L5bf0REzALOUoTAKBggqhkjOPQQDAwNnADBkAjBT3eBc2Aw/JKi9BXgRMQgSszlrjhIfA9l5uom7XqI1s6p5gQuGHB6KnDbl4DUr1U4CMDodWR+9v7lzXLSeMVG9BLwYxTFyqS9njY+CY4IxPiXsvogPmNpiDWWixKXyeeNCeg=="}, "tlogEntries": [{"logIndex": "1704748907", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1780421838", "inclusionPromise": {"signedEntryTimestamp": "MEQCICoTZYb/zhz8nBCpFTa5ANq9sTHbSC29T1GftPeXr/hOAiB0vuT+/AXRFV84yCT73RrUSdFWQvwWom+xKEacI9WkuA=="}, "inclusionProof": {"logIndex": "1582844645", "rootHash": "6qFxnYkigNpj16EDZD+k7NqCl9640pVQ4J/frg3dLvs=", "treeSize": "1582844649", "hashes": ["IkkfGT8jyrnH8JpKqZKkbSvHZqHp0SVrI/L0BjWidNY=", "iCUhZkGsMAXG3kv+m9URwFYuGyuh699l30gQH9PWu0Y=", "jEVGS4SPNKbmu+0Vqe0jTYP4IM4wGoSOMJVM8fyX2s8=", "g54uvZZmxobSu+efV3YgDffHpdjhXbq441D+t7p6ScE=", "c22YuiwikvgC8esaDl3pEiEqW/XpeUO9zchCch8MOf0=", "KTIS+tDrIXAmVFZaKuO2SgNT8529T7RSFTjBntUR6O8=", "JVnVx8Ljeja9MpYHU G/8izinFj3wEDPqAgDuQKdzAvk=", "RIxhB9AOkIkGgOnQS4iYqdv7LFXTYVNv5vCRPqffdCs=", "2j/53VNmt2TlS4Aule6ZxCWbkKgdkA3ldjcko9eB5XY=", "Y6M44ZSYwlSfJEaEhk1PHbCdRZj7IOJIPF8z7N+kEGs=", "j1rCX1QuUdofyyxDgCkPUcpnuxAZYUdfYMdo3TkFRMc=", "SoJy6N97isYHMWJfw3FaePdu5dYWeCfXobH5//JNp+o=", "nASV631t7gYxGYgOJTrtSamCWnvYVtLAqzvU4X/rapA=", "NSkfjqosjcbjuITRR3k++3CKLDql/hao4MUycvdrMXc=", "hn+ppu7vwlSCi7W1L5Z750bpAdr+WUAJLSUnb8qLy3k=", "r5nn9+mbgUQL4m8neTg/XjYkdf2hD/cvZMsNR/v0cBU=", "eT+F471g2HJfd43U4j4L1PIBkt4rLbHQd/pOR/rllO0=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n1582844649\n6qFxnYkigNpj16EDZD+k7NqCl9640pVQ4J/frg3dLvs=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiBaIQG9ageD2JjAIYIiq3Pi9b22MgFQH2kDUDod8qgoSwIhALl02jR180QymU8cqBfCo8VuxM0JcAevLzJ9cMxzOXPf\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkMTRmNDc0YWI2NzllOTBiY zczNGIwMmZmNTg0NDdiNmVjOTlhODIxYWY2MWQ2ZmYwYzFkYTBmODZlMzQxYTcxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNaNmd5VnkzOWEreXBHOXUzUlgrY1Y4Zi8vWVFTT1pQdDJoekpEYlkzSTVnSWhBUEY0d2JWOEFWK0lidVFFV2lHK0dRTy9YQVJsbWZybjUza0FrcFc0TS9PRiIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpWRU5EUVhGcFowRjNTVUpCWjBsVlNHMWlRbWhHTkdwcVRGVnVUbWhKV1VKUlQyRnpiRTFXVEZaamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxUVhsTlZHTjZUbnBGTkZkb1kwNU5hbGwzVG1wQmVVMVVZekJPZWtVMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZqT1d0NU1rWklZV0ZSVm0xdmF6UlRhVzEyTDAxVWRGTnZjSGN3U0ZReWFHTklVVllLT1c5UFJXVXpiV0ZFV25kTWVEUXdUVzloVTJSUU9XSkxPVmhZYlUxWWRtaHJZWGxQZFhJMU4yOHZkek5DWkZWVGEwdFBRMEZqWTNkblowaEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVl Y0VEZwWENqVTRValZ6WTAxVVlUZDJlVFppVkVJMk5FVTJSVmt3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRUpUUW1kdmNrSm5SVVZCV1U4dlRVRkZXVUpGVVUwS1VXdE9ibGt6YUU1bGEydDNWRmR3U2sxVlZuQlhiVGxyVTBaS00xa3pjSFppUlRGeVYxZDRUbUV4Y0hWWlZtaFRZakpTV0ZOWVZscE5hbXd3VTJ4U1N3cFNNa3BJVDFjMWFGWjZVbk5VVjNSaFpHeHNXVlpxUW1oUlZFTkNhV2RaUzB0M1dVSkNRVWhYWlZGSlJVRm5VamhDU0c5QlpVRkNNa0ZPTURsTlIzSkhDbmg0UlhsWmVHdGxTRXBzYms1M1MybFRiRFkwTTJwNWRDODBaVXRqYjBGMlMyVTJUMEZCUVVKdWIyeHdVbVJOUVVGQlVVUkJSV04zVWxGSmFFRk5LelVLZGxRMFRrOUhjME5PZVVkTVEzb3ZWRVJ5VHpGNloxbFBjbk00ZUdsUFlrbDJabTkyVmxRNVdrRnBRVE0xUVV0c2EzbFZlVXBQWlUwNGVYVXpSVzl2VUFwblV6ZEdjakZaTUV3MVltWXdVa1Y2UVV4UFZXOVVRVXRDWjJkeGFHdHFUMUJSVVV SQmQwNXVRVVJDYTBGcVFsUXpaVUpqTWtGM0wwcExhVGxDV0dkU0NrMVJaMU56ZW14eWFtaEpaa0U1YkRWMWIyMDNXSEZKTVhNMmNEVm5VWFZIU0VJMlMyNUVZbXcwUkZWeU1WVTBRMDFFYjJSWFVpczVkamRzZWxoTVUyVUtUVlpIT1VKTWQxbDRWRVo1Y1ZNNWJtcFpLME5aTkVsNFVHbFljM1p2WjFCdFRuQnBSRmRYYVhoTFdIbGxaVTVEWldjOVBRb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0ifX19fQ=="}], "timestampVerificationData": {}}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "0U9HSrZ56QvHNLAv9YRHtuyZqCGvYdb/DB2g+G40GnE="}, "signature": "MEYCIQCZ6gyVy39a+ypG9u3RX+cV8f//YQSOZPt2hzJDbY3I5gIhAPF4wbV8AV+IbuQEWiG+GQO/XARlmfrn53kAkpW4M/OF"}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.A1MWZ1/_old 2026-06-22 17:29:56.862808218 +0200 +++ /var/tmp/diff_new_pack.A1MWZ1/_new 2026-06-22 17:29:56.866808358 +0200 @@ -1,6 +1,6 @@ -mtime: 1777389487 -commit: db293248026c1d96752c7c1824197f4395ab0ae8a863eba5b9f004f621e0338e +mtime: 1781728243 +commit: 7a9e7096519ee415e97198209ffee048a08e34c23e3cb2efab548f22ec1f7ec4 url: https://src.opensuse.org/python-interpreters/python315 -revision: db293248026c1d96752c7c1824197f4395ab0ae8a863eba5b9f004f621e0338e +revision: 7a9e7096519ee415e97198209ffee048a08e34c23e3cb2efab548f22ec1f7ec4 projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ 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-06-17 22:30:43.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +.pbuild +python315-*-build/ ++++++ gh139257-Support-docutils-0.22.patch ++++++ --- /var/tmp/diff_new_pack.A1MWZ1/_old 2026-06-22 17:29:57.082815882 +0200 +++ /var/tmp/diff_new_pack.A1MWZ1/_new 2026-06-22 17:29:57.086816022 +0200 @@ -7,13 +7,13 @@ Doc/tools/extensions/pyspecific.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -Index: Python-3.15.0a8/Doc/tools/extensions/pyspecific.py +Index: Python-3.15.0b2/Doc/tools/extensions/pyspecific.py =================================================================== ---- 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 +--- Python-3.15.0b2.orig/Doc/tools/extensions/pyspecific.py 2026-06-02 17:28:41.000000000 +0200 ++++ Python-3.15.0b2/Doc/tools/extensions/pyspecific.py 2026-06-16 20:07:40.232951315 +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' + SOURCE_URI = 'https://github.com/python/cpython/tree/3.15/%s' +# monkey-patch reST parser to disable alphabetic and roman enumerated lists +def _disable_alphabetic_and_roman(text): ++++++ python-3.3.0b1-localpath.patch ++++++ --- /var/tmp/diff_new_pack.A1MWZ1/_old 2026-06-22 17:29:57.174819087 +0200 +++ /var/tmp/diff_new_pack.A1MWZ1/_new 2026-06-22 17:29:57.182819365 +0200 @@ -2,12 +2,12 @@ Lib/site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: Python-3.15.0a7/Lib/site.py +Index: Python-3.15.0b2/Lib/site.py =================================================================== ---- Python-3.15.0a7.orig/Lib/site.py 2026-03-10 21:55:34.774030935 +0100 -+++ Python-3.15.0a7/Lib/site.py 2026-03-10 21:55:45.838165991 +0100 -@@ -80,7 +80,7 @@ - import errno +--- Python-3.15.0b2.orig/Lib/site.py 2026-06-16 20:06:48.442161632 +0200 ++++ Python-3.15.0b2/Lib/site.py 2026-06-16 20:07:29.659404808 +0200 +@@ -54,7 +54,7 @@ + lazy import warnings # Prefixes for site-packages; add additional prefixes like /usr/local here -PREFIXES = [sys.prefix, sys.exec_prefix] ++++++ test_UDPLITE_support.patch ++++++ --- Lib/test/test_socket.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) Index: Python-3.15.0b2/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 @@ -170,6 +170,22 @@ return (cid is not None) +def _have_socket_udplite(): + """Check whether UDPLITE sockets are supported on this host.""" + if not hasattr(socket, "IPPROTO_UDPLITE"): + return False + # Older Android versions block UDPLITE with SELinux. + if support.is_android and platform.android_ver().api_level < 29: + return False + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE) + except (AttributeError, OSError): + return False + else: + s.close() + return True + + def _have_socket_bluetooth(): """Check whether AF_BLUETOOTH sockets are supported on this host.""" try: @@ -266,7 +282,7 @@ HAVE_SOCKET_VSOCK = _have_socket_vsock() -HAVE_SOCKET_UDPLITE = _have_udp_lite() +HAVE_SOCKET_UDPLITE = _have_socket_udplite() HAVE_SOCKET_BLUETOOTH = _have_socket_bluetooth()
