Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python315 for openSUSE:Factory checked in at 2025-12-22 22:49:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python315 (Old) and /work/SRC/openSUSE:Factory/.python315.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python315" Mon Dec 22 22:49:55 2025 rev:3 rq:1324009 version:3.15.0~a3 Changes: -------- --- /work/SRC/openSUSE:Factory/python315/python315.changes 2025-12-01 11:12:40.904883450 +0100 +++ /work/SRC/openSUSE:Factory/.python315.new.1928/python315.changes 2025-12-22 22:52:41.529559016 +0100 @@ -1,0 +2,848 @@ +Fri Dec 19 01:05:54 UTC 2025 - Matej Cepl <[email protected]> + +Update to 3.15.0~a3: +- Security + - gh-142145: Remove quadratic behavior in xml.minidom node ID + cache clearing (CVE-2025-12084, bsc#1254997). + - gh-42400: Fix buffer overflow in _Py_wrealpath() for paths + exceeding MAXPATHLEN bytes by using dynamic memory + allocation instead of fixed-size buffer. Patch by Shamil + Abdulaev. + - gh-119451: Fix a potential memory denial of service in the + http.client module. When connecting to a malicious server, + it could cause an arbitrary amount of memory to be + allocated. This could have led to symptoms including + a MemoryError, swapping, out of memory (OOM) killed + processes or containers, or even system crashes + (CVE-2025-13836, bsc#1254400). + - gh-119342: Fix a potential memory denial of service in the + plistlib module. When reading a Plist file received from + untrusted source, it could cause an arbitrary amount of + memory to be allocated. This could have led to symptoms + including a MemoryError, swapping, out of memory (OOM) + killed processes or containers, or even system crashes + (CVE-2025-13837, bsc#1254401). +- Library + - gh-142754: Add the ownerDocument attribute to + xml.dom.minidom elements and attributes created by directly + instantiating the Element or Attr class. Note that this way + of creating nodes is not supported; creator functions like + xml.dom.Document.documentElement() should be used instead. + - gh-142594: Fix crash in TextIOWrapper.close() when the + underlying buffer’s closed property calls detach(). + - gh-76007: Deprecate __version__ from ctypes. Patch by Hugo + van Kemenade. + - gh-76007: Deprecate __version__ from wsgiref.simple_server. + Patch by Hugo van Kemenade. + - gh-142651: unittest.mock: fix a thread safety issue where + Mock.call_count may return inaccurate values when the mock + is called concurrently from multiple threads. + - gh-76007: Deprecate __version__ from http.server. Patch by + Hugo van Kemenade. + - gh-138122: Add --subprocesses flag to profiling.sampling + CLI to automatically profile subprocesses spawned by the + target. When enabled, the profiler monitors for new Python + subprocesses and profiles each one separately, writing + results to individual output files. This is useful for + profiling applications that use multiprocessing, + ProcessPoolExecutor, or other subprocess-based parallelism. + Patch by Pablo Galindo. + - gh-142595: Added type check during initialization of the + decimal module to prevent a crash in case of broken stdlib. + Patch by Sergey B Kirpichev. + - gh-142556: Fix crash when a task gets re-registered during + finalization in asyncio. Patch by Kumar Aditya. + - gh-138122: Add --mode=exception to the sampling profiler to + capture samples only from threads with an active exception, + useful for analyzing exception handling overhead. Patch by + Pablo Galindo. + - gh-142539: traceback: Fix location of carets in + SyntaxErrors when the source contains wide characters. + - gh-123241: Avoid reference count operations in garbage + collection of ctypes objects. + - gh-142451: hmac: correctly copy HMAC attributes for objects + copied through HMAC.copy(). Patch by Bénédikt Tran. + - gh-138122: The profiling.sampling flamegraph profiler now + supports inverted flamegraph view that aggregates all leaf + nodes. In a standard flamegraph, if a hot function is + called from multiple locations, it appears multiple times + as separate leaf nodes. In the inverted flamegraph, all + occurrences of the same leaf function are merged into + a single aggregated node at the root, showing the total + hotness of that function in one place. The children of each + aggregated node represent its callers, making it easier to + identify which functions consume the most CPU time and + where they are called from. + - gh-112527: The help text for required options in argparse + no longer extended with “ (default: None)”. + - gh-142438: Fixed a possible leaked GIL in + _PySSL_keylog_callback. + - gh-138122: Add bytecode-level instruction profiling to the + sampling profiler via the new --opcodes flag. When enabled, + the profiler captures which bytecode opcode is executing at + each sample, including Python 3.11+ adaptive + specializations, and visualizes this data in the heatmap, + flamegraph, gecko, and live output formats. Patch by Pablo + Galindo + - gh-142389: Add backtick markup support in argparse + description and epilog text to highlight inline code when + color output is enabled. + - gh-142346: Fix usage formatting for mutually exclusive + groups in argparse when they are preceded by positional + arguments or followed or intermixed with other optional + arguments. + - gh-142374: Fix cumulative percentage calculation for + recursive functions in the new sampling profiler. When + profiling recursive functions, cumulative statistics + (cumul%, cumtime) could exceed 100% because each recursive + frame in a stack was counted separately. For example, + a function recursing 500 times in every sample would show + 50000% cumulative presence. The fix deduplicates locations + within each sample so cumulative stats correctly represent + “percentage of samples where this function was on the + stack”. Patch by Pablo Galindo. + - gh-142315: Pdb can now run scripts from anonymous pipes + used in process substitution. Patch by Bartosz Sławecki. + - gh-64532: Subparser help now includes required optional + arguments from the parent parser in the usage, making it + clearer what arguments are needed to run a subcommand. + Patch by Savannah Ostrowski. + - gh-142207: Fix: profiling.sampling may cause assertion + !(has_gil && gil_requested) + - gh-142332: Fix usage formatting for positional arguments in + mutually exclusive groups in argparse. in argparse. + - gh-142282: Fix winreg.QueryValueEx() to not accidentally + read garbage buffer under race condition. + - gh-142318: Fix typing 'q' at the help of the interactive + tachyon profiler exiting the profiler. + - gh-75949: Fix argparse to preserve | separators in mutually + exclusive groups when the usage line wraps due to length. + - gh-142267: Improve argparse performance by caching the + formatter used for argument validation. + - gh-139862: Remove color parameter from + argparse.HelpFormatter constructor. Color is controlled by + ArgumentParser. + - gh-68552: MisplacedEnvelopeHeaderDefect and Missing header + name defects are now correctly passed to the handle_defect + method of policy in FeedParser. + - gh-142206: The resource tracker in the multiprocessing + module can now understand messages from older versions of + itself. This avoids issues with upgrading Python while it + is running. (Note that such ‘in-place’ upgrades are not + tested.) + - gh-142214: Fix two regressions in dataclasses in Python + 3.14.1 related to annotations. An exception is no longer + raised if slots=True is used and the __init__ method does + not have an __annotate__ attribute (likely because + init=False was used). An exception is no longer raised if + annotations are requested on the __init__ method and one of + the fields is not present in the class annotations. This + can occur in certain dynamic scenarios. Patch by Jelle + Zijlstra. + - gh-142203: Remove the debug_override parameter from + importlib.util.cache_from_source() which has been + deprecated since Python 3.5. + - gh-138122: The _remote_debugging module now implements + frame caching in the RemoteUnwinder class to reduce memory + reads when profiling remote processes. When + cache_frames=True, unchanged portions of the call stack are + reused from previous samples, significantly improving + profiling performance for deep call stacks. + - gh-116738: Fix cmath data race when initializing + trigonometric tables with subinterpreters. + - gh-141982: Allow pdb to set breakpoints on async functions + with function names. + - gh-74389: When the stdin being used by a subprocess.Popen + instance is closed, this is now ignored in + subprocess.Popen.communicate() instead of leaving the class + in an inconsistent state. + - gh-87512: Fix subprocess.Popen.communicate() timeout + handling on Windows when writing large input. Previously, + the timeout was ignored during stdin writing, causing the + method to block indefinitely if the child process did not + consume input quickly. The stdin write is now performed in + a background thread, allowing the timeout to be properly + enforced. + - gh-141939: Add color to all interpolated values in argparse + help, like %(default)s or %(choices)s. Patch by Alex + Prengère. + - gh-141473: When subprocess.Popen.communicate() was called + with input and a timeout and is called for a second time + after a TimeoutExpired exception before the process has + died, it should no longer hang. + - gh-141999: Correctly allow KeyboardInterrupt to stop the + process when using profiling.sampling. + - gh-142006: Fix a bug in the email.policy.default folding + algorithm which incorrectly resulted in a doubled newline + when a line ending at exactly max_line_length was followed + by an unfoldable token. + - gh-141968: Remove data copy from re compilation of regexes + with large charsets by using bytearray.take_bytes(). + - gh-141968: Remove data copy from encodings.idna encode() + and encode() by using bytearray.take_bytes(). + - gh-141968: Remove data copy from codecs punycode encoding + by using bytearray.take_bytes(). + - gh-141968: Remove data copy from + wave.Wave_read.readframes() and + wave.Wave_write.writeframes() by using + bytearray.take_bytes(). + - gh-141968: Remove a data copy from base64.b32decode() and + base64.b32encode() by using bytearray.take_bytes(). + - gh-59000: Fix pdb breakpoint resolution for class methods + when the module defining the class is not imported. + - gh-116738: Fix thread safety issue with re scanner objects + in free-threaded builds. + - gh-138122: The profiling.sampling flamegraph profiler now + displays thread status statistics showing the percentage of + time threads spend holding the GIL, running without the + GIL, waiting for the GIL, and performing garbage + collection. These statistics help identify GIL contention + and thread behavior patterns. When filtering by thread, the + display shows per-thread metrics. + - gh-141781: Fixed an issue where pdb.line_prefix assignment + was ignored if assigned after the module was imported. + - gh-141863: Update Streams to use bytearray.take_bytes() for + a over 10% performance improvement on pyperformance + asyncio_tcp benchmark. + - gh-141817: Add socket.IPV6_HDRINCL constant. + - gh-105836: Fix asyncio.run_coroutine_threadsafe() leaving + underlying cancelled asyncio task running. + - gh-141570: Support file-like object raising OSError from + fileno() in color detection (_colorize.can_colorize()). + This can occur when sys.stdout is redirected. + - gh-141679: Add colour to defaults in argparse help. Patch + by Hugo van Kemenade. + - gh-141686: Break reference cycles created by each call to + json.dump() or json.JSONEncoder.iterencode(). + - gh-141659: Fix bad file descriptor errors from + _posixsubprocess on AIX. + - gh-141645: Add a new --live mode to the tachyon profiler in + profiling.sampling module. This mode consist of a live TUI + that displays real-time profiling statistics as the target + application runs, similar to top. Patch by Pablo Galindo + - gh-141615: Check stdin instead of stdout for use_rawinput + in pdb. + - gh-69113: Fix doctest to correctly report line numbers for + doctests in __test__ dictionary when formatted as + triple-quoted strings by finding unique lines in the string + and matching them in the source file. + - gh-141600: Fix musl version detection on Void Linux. + - gh-48752: Add readline.get_pre_input_hook() function to + retrieve the current pre-input hook. This allows + applications to save and restore the hook without + overwriting user settings. Patch by Sanyam Khurana. + - gh-141565: Add async-aware profiling to the Tachyon + sampling profiler. The profiler now reconstructs and + displays async task hierarchies in flamegraphs, making the + output more actionable for users. Patch by Savannah + Ostrowski and Pablo Galindo Salgado. + - gh-60107: Remove a copy from io.RawIOBase.read(). If the + underlying I/O class keeps a reference to the mutable + memory, raise a BufferError. + - gh-116738: Make csv module thread-safe on the free threaded + build. + - gh-140911: collections: Ensure that the methods + UserString.rindex() and UserString.index() accept + collections.UserString instances as the sub argument. + - gh-140875: Fix handling of unclosed character references + (named and numerical) followed by the end of file in + html.parser.HTMLParser with convert_charrefs=False. + - gh-140677: Add heatmap visualization mode to the Tachyon + sampling profiler. The new --heatmap output format provides + a line-by-line view showing execution intensity with + color-coded samples, inline statistics, and interactive + call graph navigation between callers and callees. + - gh-139946: Distinguish stdout and stderr when colorizing + output in argparse module. + - gh-76007: pydoc: Fix DeprecationWarning being raised when + generating doc for stdlib modules. + - gh-139686: Make importlib.reload no-op for lazy modules. + - gh-138697: Fix inferring dest from a single-dash long + option in argparse. If a short option and a single-dash + long option are passed to add_argument(), dest is now + inferred from the single-dash long option. + - gh-138525: Add support for single-dash long options and + alternate prefix characters in + argparse.BooleanOptionalAction. + - gh-79986: Add parsing for References and In-Reply-To + headers to the email library that parses the header content + as lists of message id tokens. This prevents them from + being folded incorrectly. + - gh-135559: Flag: a dir() on a Flag enumeration now shows + non-canonical members. (i.e. aliases). + - gh-134453: Fixed subprocess.Popen.communicate() input= + handling of memoryview instances that were non-byte shaped + on POSIX platforms. Those are now properly cast to a byte + shaped view instead of truncating the input. Windows + platforms did not have this bug. + - gh-127930: Add __all__ to tkinter.simpledialog. + - gh-115952: Fix a potential memory denial of service in the + pickle module. When reading a pickled data received from + untrusted source, it could cause an arbitrary amount of + memory to be allocated, even if the code that is allowed to + execute is restricted by overriding the find_class() + method. This could have led to symptoms including + a MemoryError, swapping, out of memory (OOM) killed + processes or containers, or even system crashes. bpo-40350: + Fix support for namespace packages in modulefinder. +- Documentation + - gh-141994: xml.sax.handler: Make Documentation of + xml.sax.handler.feature_external_ges warn of opening up to + external entity attacks. Patch by Sebastian Pipping. +- Core and Builtins + - gh-134584: Eliminate redundant refcounting from + _STORE_ATTR_INSTANCE_VALUE. + - gh-142718: JIT: Fix segfault caused by not flushing the + stack to memory at side exits. + - gh-142737: Tracebacks will be displayed in fallback mode ++++ 551 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python315/python315.changes ++++ and /work/SRC/openSUSE:Factory/.python315.new.1928/python315.changes Old: ---- CVE-2025-6075-expandvars-perf-degrad.patch Python-3.15.0a1.tar.xz Python-3.15.0a1.tar.xz.sigstore New: ---- Python-3.15.0a3.tar.xz Python-3.15.0a3.tar.xz.sigstore ----------(Old B)---------- Old: + gh-137618: PYTHON_FOR_REGEN now requires Python 3.10 to Python 3.15. - Drop patch CVE-2025-6075-expandvars-perf-degrad.patch, included upstream. ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python315.spec ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:43.705648760 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:43.705648760 +0100 @@ -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~a1 -%define tarversion 3.15.0a1 +Version: 3.15.0~a3 +%define tarversion 3.15.0a3 %define tarname Python-%{tarversion} Release: 0 Summary: Python 3 Interpreter @@ -224,9 +224,6 @@ Patch41: bsc1243155-sphinx-non-determinism.patch # PATCH-FIX-OPENSUSE gh139257-Support-docutils-0.22.patch gh#python/cpython#139257 [email protected] Patch42: gh139257-Support-docutils-0.22.patch -# PATCH-FIX-UPSTREAM CVE-2025-6075-expandvars-perf-degrad.patch bsc#1252974 [email protected] -# Avoid potential quadratic complexity vulnerabilities in path modules -Patch43: CVE-2025-6075-expandvars-perf-degrad.patch #### Python 3.15 DEVELOPMENT PATCHES BuildRequires: autoconf-archive BuildRequires: automake @@ -272,7 +269,7 @@ %if %{with experimental_jit} # needed for experimental_jit -BuildRequires: clang19 llvm19 +BuildRequires: clang21 llvm21 BuildRequires: llvm %endif @@ -577,7 +574,7 @@ export SLE_VERSION="0%{?sle_version}" %if %{with doc} -TODAY_DATE=`date -r %{SOURCE0} "+%%B %%d, %%Y"` +TODAY_DATE=`date -r %{SOURCE0} "+%B %d, %Y"` # TODO use not date of tarball but date of latest patch cd Doc @@ -690,6 +687,8 @@ # Failing tests on python 3.15 EXCLUDE="$EXCLUDE test_regrtest test_sysconfig" +# Segfaults on 32 bit +EXCLUDE="$EXCLUDE test_profiling" # Limit virtual memory to avoid spurious failures if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then @@ -755,7 +754,7 @@ for library in \ array binascii _bisect _bz2 cmath _codecs_* \ _csv _ctypes _decimal fcntl grp \ - _hashlib _heapq _hmac _json _lsprof _lzma math mmap \ + _hashlib _heapq _hmac _json _lsprof _lzma math mmap _math_integer \ _multibytecodec _multiprocessing _pickle _posixshmem \ _posixsubprocess _queue _random resource select _ssl _socket \ _statistics _struct syslog termios _testbuffer _testimportmultiple \ @@ -1088,6 +1087,7 @@ %{dynlib _lzma} %{dynlib math} %{dynlib mmap} +%{dynlib _math_integer} %{dynlib _multibytecodec} %{dynlib _multiprocessing} %{dynlib _pickle} ++++++ CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:43.745650410 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:43.749650575 +0100 @@ -4,11 +4,11 @@ Lib/test/test_xml_etree.py | 10 ++++++++++ 3 files changed, 17 insertions(+) -Index: Python-3.15.0a1/Lib/test/test_pyexpat.py +Index: Python-3.15.0a3/Lib/test/test_pyexpat.py =================================================================== ---- Python-3.15.0a1.orig/Lib/test/test_pyexpat.py 2025-10-24 23:53:24.356893960 +0200 -+++ Python-3.15.0a1/Lib/test/test_pyexpat.py 2025-10-24 23:53:50.136311340 +0200 -@@ -843,6 +843,10 @@ +--- Python-3.15.0a3.orig/Lib/test/test_pyexpat.py 2025-12-16 13:26:12.000000000 +0100 ++++ Python-3.15.0a3/Lib/test/test_pyexpat.py 2025-12-19 02:26:33.964969539 +0100 +@@ -860,6 +860,10 @@ self.assertEqual(started, ['doc']) def test_reparse_deferral_disabled(self): @@ -19,10 +19,10 @@ started = [] def start_element(name, _): -Index: Python-3.15.0a1/Lib/test/test_sax.py +Index: Python-3.15.0a3/Lib/test/test_sax.py =================================================================== ---- Python-3.15.0a1.orig/Lib/test/test_sax.py 2025-10-24 23:53:24.425039914 +0200 -+++ Python-3.15.0a1/Lib/test/test_sax.py 2025-10-24 23:53:50.136951370 +0200 +--- Python-3.15.0a3.orig/Lib/test/test_sax.py 2025-12-16 13:26:12.000000000 +0100 ++++ Python-3.15.0a3/Lib/test/test_sax.py 2025-12-19 02:26:33.966048947 +0100 @@ -1241,6 +1241,9 @@ self.assertEqual(result.getvalue(), start + b"<doc></doc>") @@ -33,10 +33,10 @@ def test_flush_reparse_deferral_disabled(self): result = BytesIO() xmlgen = XMLGenerator(result) -Index: Python-3.15.0a1/Lib/test/test_xml_etree.py +Index: Python-3.15.0a3/Lib/test/test_xml_etree.py =================================================================== ---- Python-3.15.0a1.orig/Lib/test/test_xml_etree.py 2025-10-24 23:53:24.855327755 +0200 -+++ Python-3.15.0a1/Lib/test/test_xml_etree.py 2025-10-24 23:53:50.137646227 +0200 +--- Python-3.15.0a3.orig/Lib/test/test_xml_etree.py 2025-12-16 13:26:12.000000000 +0100 ++++ Python-3.15.0a3/Lib/test/test_xml_etree.py 2025-12-19 02:26:33.966681016 +0100 @@ -138,6 +138,11 @@ return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq) @@ -49,7 +49,7 @@ def checkwarnings(*filters, quiet=False): def decorator(test): def newtest(*args, **kwargs): -@@ -1547,9 +1552,11 @@ +@@ -1620,9 +1625,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) -@@ -1776,6 +1783,9 @@ +@@ -1849,6 +1856,9 @@ self.assert_event_tags(parser, [('end', 'doc')]) ++++++ Python-3.15.0a1.tar.xz -> Python-3.15.0a3.tar.xz ++++++ /work/SRC/openSUSE:Factory/python315/Python-3.15.0a1.tar.xz /work/SRC/openSUSE:Factory/.python315.new.1928/Python-3.15.0a3.tar.xz differ: char 26, line 1 ++++++ Python-3.15.0a1.tar.xz.sigstore -> Python-3.15.0a3.tar.xz.sigstore ++++++ --- /work/SRC/openSUSE:Factory/python315/Python-3.15.0a1.tar.xz.sigstore 2025-11-07 18:26:33.885797563 +0100 +++ /work/SRC/openSUSE:Factory/.python315.new.1928/Python-3.15.0a3.tar.xz.sigstore 2025-12-22 22:52:41.409554067 +0100 @@ -1 +1 @@ -{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlSgAwIBAgIUHBnJY2cDVNyp0+jVDU64RXDfTLUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMDE0MTQ0NjIwWhcNMjUxMDE0MTQ1NjIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELQMCqzrc9clNKPUzmojg3JbTM3XXjmo/wWH6zH8rh6GGP8TJSz+A8OMUdeE7ktSr5+9QeVaEGDRasbmwIAKX8aOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQULWp/zwV2HmZ8X/y10L1ftl0hN5QwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABmeMvvDEAAAQDAEcwRQIhALiWW21hVw6w95sI+lVh8NFcaWG1KITMvDC0HytgwrkTAiBmnB/Il7sqNC9TV3ybSbyMgXUrXlpz7Y4+ri6qEe8OmjAKBggqhkjOPQQDAwNnADBkAjAav7uspSvsMYLOIqcV65W7UEfUl/+oaDVcAnUBTn4VzzWVNt7r Rh/sGU9Ow1fsgaQCMHKjjdlRouWZV13QxRqUlwiYnso8K/LrepolTWuu9hmJ4498BbxpQkG82AiFgwHKiA=="}, "tlogEntries": [{"logIndex": "605381105", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1760453180", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQD2M+xpYMeDZb0B+2kBuUQDfsBPNuaNbOPB/tLnCY1+CwIgH1bBckucAYWz+3wFvU9MVGWc985g1wJsYy27aYYg+5c="}, "inclusionProof": {"logIndex": "483476843", "rootHash": "VcoiuI3enMGLjUhgMzdjfI+PlOWmz/r/ADehdiW44fo=", "treeSize": "483476848", "hashes": ["r/fQjBRZKxYDs6T00FfDqZfE3gNFN5jUw2hPbI6Klb4=", "Fu7qRL8q8yz4aWKTEU5+PzVtd9R4k7HkP62EtCYWURQ=", "jvpXra7v+FEGbwj68er3f1BUvjOiYUjCL/pwYF0UG6c=", "VxMxwBbsJTw+9QBfKnXMOxyeZ7HJKlExLQMtqStpg0Y=", "fU2ETS/0MxEeuY1O0lS9SJrXcXC78pJVOtXCNv7LymQ=", "TS0t//1G9191vAjMg50KLfXBi3UY8ANFmx1ZNp2k5vk=", "1bdCuQIZjyx9tCJXNrYevW3fyHk6huvJ/h5uIlfIiy0=", "wjy79ir2+9dNofV/yngwyU7P7qEQoJWbN/f/+YIqeSg=", "Tx/mYCxiKxJdXGSB99WD+yAVDPg18BLOj5l DqPQUNe4=", "eSCfK8nXzRpj/m2HYQ9+GtLIccUwLOkk3iYGC4R5zXI=", "inrOYOb+roitD1EYWHmRPy8aJnjhSAhp5cHXbXVlxU4=", "8nCds1SUzxGg2Xoa+M1tOFTwx+1BGtp8TDMSS4P54xQ=", "V5lOdefY1WOOt4iQp7tZoyj1beBDVi24KsEMcgsqZds=", "2Wv4GiithwNukRKV06clevnQQYCzXmSS/+/OJtXgsXQ=", "1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=", "vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n483476848\nVcoiuI3enMGLjUhgMzdjfI+PlOWmz/r/ADehdiW44fo=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAhRdd+DI17Uc7iB9ExZ3kq9O47UtmJyeRF8AcagocSIYCIQCjl6Z9CXp3exjHHmeQCwLAVOGRbCfKwsbuQAZwl4K80A==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzMTk0OTM5ZDQ4OGVlYWVlZmRjZjk5MGQzNTU0MmQ5YWQxY2U3ODg3ODljNGUyMzA1YTIwNjBlYjcwNThlNWE0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQkZ3NFEvelFZcnJWNHlSalN0TmkwSkd3NG80VTdjWGlCWFZHUksrYTVNV0FpQmFBYTBMTUN6VkZxelVEbVkrMEYranZEQm8waFJU c25JckVUY1RMY1ZPZkE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4VFowRjNTVUpCWjBsVlNFSnVTbGt5WTBSV1RubHdNQ3RxVmtSVk5qUlNXRVJtVkV4VmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFFUlRCTlZGRXdUbXBKZDFkb1kwNU5hbFY0VFVSRk1FMVVVVEZPYWtsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZNVVUxRGNYcHlZemxqYkU1TFVGVjZiVzlxWnpOS1lsUk5NMWhZYW0xdkwzZFhTRFlLZWtnNGNtZzJSMGRRT0ZSS1Uzb3JRVGhQVFZWa1pVVTNhM1JUY2pVck9WRmxWbUZGUjBSU1lYTmliWGRKUVV0WU9HRlBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZNVjNBdkNucDNWakpJYlZvNFdDOTVNVEJNTVdaMGJEQm9UalZSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM 2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnRaVTEyZGtSRlFRcEJRVkZFUVVWamQxSlJTV2hCVEdsWFZ6SXhhRlozTm5jNU5YTkpLMnhXYURoT1JtTmhWMGN4UzBsVVRYWkVRekJJZVhSbmQzSnJWRUZwUW0xdVFpOUpDbXczYzNGT1F6bFVWak41WWxOaWVVMW5XRlZ5V0d4d2VqZFpOQ3R5YVRaeFJXVTRUMjFxUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV1UVVSQ2EwRnFRV0VLZGpkMWMzQlRkbk5OV1V4UFNYRmpWalkxVnpkVlJXWlZiQzhyYjJGRVZtTkJibFZDVkc0MFZucDZWMVpPZERkeVVtZ3ZjMGRWT1U5M01XWnpaMkZSUXdwTlNFdHFhbVJzVW05MVYxcFdNVE5SZUZKeFZXeDNhVmx1YzI4NFN5OU1jbVZ3YjJ4VVYzVjFPV2h0U2pRME9UaENZbmh3VVd0SE9ESkJhVVpuZDBoTENtbEJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "MZSTnUiO6 u79z5kNNVQtmtHOeIeJxOIwWiBg63BY5aQ="}, "signature": "MEQCIBFw4Q/zQYrrV4yRjStNi0JGw4o4U7cXiBXVGRK+a5MWAiBaAa0LMCzVFqzUDmY+0F+jvDBo0hRTsnIrETcTLcVOfA=="}} +{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzjCCAlOgAwIBAgIUWGdIw6jkonGGlxTefVWR5dycYMUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUxMjE2MTQzNDE1WhcNMjUxMjE2MTQ0NDE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMeXAUdFRAMUwkol7S3TfLRDGSmTBLxrIQ3KpDiKGHVX13ZTBQwnQnTwV+sIwP787IJZHObALFx34l925AS5oSKOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU1KEmc4ZWtSbp0HrR7xEl632FVQEwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABmyeVUi8AAAQDAEYwRAIgeNcEmGEuUlpapxVCjn9ssKb5U0FKgDx1cACe+m//GqwCIHaMa36eZ/5Ov9IQNyTUkm0bquaYWBvG5iGXMccaNkI+MAoGCCqGSM49BAMDA2kAMGYCMQDE+zTm1YaPVjKhhV7UrybXV88rHo7p1wedZglYz/WTQ6tdfXme WXd4XcY8qvdMXxECMQCKipA6iUBoyWfYxM9wwNk1R0+YPpDvApKpuKcJssq7UBMH+qsVU2mYROAeVI/cTUc="}, "tlogEntries": [{"logIndex": "767379108", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1765895656", "inclusionPromise": {"signedEntryTimestamp": "MEYCIQC/gr68tewjyDayVY1YgkSx3wyJr1gDp9niugBN6CuI3QIhAI+AI17ZFMXpBHbN6nqzRRSF3gkcOFeiztd/ddPiR3Qr"}, "inclusionProof": {"logIndex": "645474846", "rootHash": "+7pvZSc1vkrbz1NYkRJTW6ebJVNEKnBbysMwrYfqBBw=", "treeSize": "645474850", "hashes": ["3IExMYCGoBe2wYmaUDFh/NwM9Yfz+YqErksZ9FiJMdU=", "5OlXK7CbwTpuOXJUjRBnsTRYTjVw1n5Yy8FU5TBL0XA=", "k7H5SO2fy1fisX7nQuhceTTJDt+OYrkbDLi4yA4s8x8=", "OUxbxHF4gP/nb0YaEJsiu5bD9WwjbSKIysm29uO2Wg8=", "xhz07XLYNXp0QZ6l+zMHq2ou8fUvEBzrXHj5p8bhW0w=", "TBrb22/2hnzqPGPgryvf9E/XySk6biXtuETjbuLr4iQ=", "XXiywYiYcfd6pMWvLjChESCzRvayGZ5Ga9vLoivArTc=", "6ymuOfiti8iWpSzihumjs587leNSK8iia3j2fQWYQvQ=", "x/rIPkrAoE9rz9kw44ofjWopN9MMV2UwNq4 ZZxyk6gA=", "Jx3nGngq60bR51zwd8OmKd+Jv0wh/mwftjiOc6qQXgo=", "1Vd3rUmNolkFfJocF+ehhHicx+XZCI1oORVzpl1WD3k=", "STJBwmMYjQL7nNE7RtmufqTzKydDq3utsDtdFqjV83Q=", "volnUoGNFpLYblGf83KDzlbqdAQlS0WvwWzyZgIHQjo=", "1j4lDTV8P+GITn6Cn5v42uy3JK42BtPmPkJMt5IcMy0=", "X6vkxz0poxK2DIlRur/7LbEdz3iDXj5QY/gLk/ewXjA=", "ZmUkYkHBy1B723JrEgiKvepTdHYrP6y2a4oODYvi5VY=", "T4DqWD42hAtN+vX8jKCWqoC4meE4JekI9LxYGCcPy1M="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n645474850\n+7pvZSc1vkrbz1NYkRJTW6ebJVNEKnBbysMwrYfqBBw=\n\n\u2014 rekor.sigstore.dev wNI9ajBDAh8xrHp05yLv6Q/03Lpwf+xo601cjQSlyFVx6fhX4g6QAiAHV2ukAWeKPX30txbAW2ymQCsMCjyaxXVyMi5ohj7Dvg==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2YWIwMmNkYWMyNDUwNTc3OTg3N2JiMWQ5MTg5NDMyZDY3ZTkwZGRmMmE5YjhiN2IzNzNlYWQ1NGFjMDdiNjA3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQ0hPTThHQjNyZFVTZTZzSFNMLzZWeDE3TkVabmlqRG1qZ2tVdXdDS0xu YkFpQU54VFdKRFk4dmhhVEF2NDVpWFlDM0dvTjl6RDVtYllpdUFkM3FockN2MGc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4UFowRjNTVUpCWjBsVlYwZGtTWGMyYW10dmJrZEhiSGhVWldaV1YxSTFaSGxqV1UxVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZlRTFxUlRKTlZGRjZUa1JGTVZkb1kwNU5hbFY0VFdwRk1rMVVVVEJPUkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZOWlZoQlZXUkdVa0ZOVlhkcmIydzNVek5VWmt4U1JFZFRiVlJDVEhoeVNWRXpTM0FLUkdsTFIwaFdXREV6V2xSQ1VYZHVVVzVVZDFZcmMwbDNVRGM0TjBsS1draFBZa0ZNUm5nek5HdzVNalZCVXpWdlUwdFBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlV4UzBWdENtTTBXbGQwVTJKd01FaHlVamQ0Uld3Mk16SkdWbEZGZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV 1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnRlV1ZXVldrNFFRcEJRVkZFUVVWWmQxSkJTV2RsVG1ORmJVZEZkVlZzY0dGd2VGWkRhbTQ1YzNOTFlqVlZNRVpMWjBSNE1XTkJRMlVyYlM4dlIzRjNRMGxJWVUxaE16WmxDbG92TlU5Mk9VbFJUbmxVVld0dE1HSnhkV0ZaVjBKMlJ6VnBSMWhOWTJOaFRtdEpLMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbXRCVFVkWlEwMVJSRVVLSzNwVWJURlpZVkJXYWt0b2FGWTNWWEo1WWxoV09EaHlTRzgzY0RGM1pXUmFaMnhaZWk5WFZGRTJkR1JtV0cxbFYxaGtORmhqV1RoeGRtUk5XSGhGUXdwTlVVTkxhWEJCTm1sVlFtOTVWMlpaZUUwNWQzZE9hekZTTUN0WlVIQkVka0Z3UzNCMVMyTktjM054TjFWQ1RVZ3JjWE5XVlRKdFdWSlBRV1ZXU1M5akNsUlZZejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}], "timestampVerificationData": {}}, "messag eSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "arAs2sJFBXeYd7sdkYlDLWfpDd8qm4t7Nz6tVKwHtgc="}, "signature": "MEQCICHOM8GB3rdUSe6sHSL/6Vx17NEZnijDmjgkUuwCKLnbAiANxTWJDY8vhaTAv45iXYC3GoN9zD5mbYiuAd3qhrCv0g=="}} ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:43.873655689 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:43.881656019 +0100 @@ -1,6 +1,6 @@ -mtime: 1764427083 -commit: e52bc998396e70d02592a6fbcb3faafe0087961d29203b5bb3447d31c002b838 +mtime: 1766162987 +commit: aa61ff92f21c17abc744fe330008179e98876e1a0824dfdd5d307a262f4d22ce url: https://src.opensuse.org/python-interpreters/python315.git -revision: e52bc998396e70d02592a6fbcb3faafe0087961d29203b5bb3447d31c002b838 +revision: aa61ff92f21c17abc744fe330008179e98876e1a0824dfdd5d307a262f4d22ce projectscmsync: https://src.opensuse.org/python-interpreters/_ObsPrj ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:43.909657174 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:43.917657503 +0100 @@ -13,11 +13,11 @@ 5 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst -Index: Python-3.15.0a1/Doc/library/ensurepip.rst +Index: Python-3.15.0a3/Doc/library/ensurepip.rst =================================================================== ---- Python-3.15.0a1.orig/Doc/library/ensurepip.rst 2025-10-14 12:46:08.000000000 +0200 -+++ Python-3.15.0a1/Doc/library/ensurepip.rst 2025-10-24 23:53:43.587408643 +0200 -@@ -61,7 +61,11 @@ +--- Python-3.15.0a3.orig/Doc/library/ensurepip.rst 2025-12-16 13:26:12.000000000 +0100 ++++ Python-3.15.0a3/Doc/library/ensurepip.rst 2025-12-19 02:25:25.531895542 +0100 +@@ -65,7 +65,11 @@ By default, ``pip`` is installed into the current virtual environment (if one is active) or into the system site packages (if there is no active virtual environment). The installation location can be controlled @@ -30,7 +30,7 @@ .. option:: --root <dir> -@@ -102,7 +106,7 @@ +@@ -106,7 +110,7 @@ Returns a string specifying the available version of pip that will be installed when bootstrapping an environment. @@ -39,7 +39,7 @@ altinstall=False, default_pip=False, \ verbosity=0) -@@ -112,6 +116,8 @@ +@@ -116,6 +120,8 @@ If *root* is ``None``, then installation uses the default install location for the current environment. @@ -48,7 +48,7 @@ *upgrade* indicates whether or not to upgrade an existing installation of an earlier version of ``pip`` to the available version. -@@ -132,6 +138,8 @@ +@@ -136,6 +142,8 @@ *verbosity* controls the level of output to :data:`sys.stdout` from the bootstrapping operation. @@ -57,10 +57,10 @@ .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: -Index: Python-3.15.0a1/Lib/ensurepip/__init__.py +Index: Python-3.15.0a3/Lib/ensurepip/__init__.py =================================================================== ---- Python-3.15.0a1.orig/Lib/ensurepip/__init__.py 2025-10-24 23:53:22.118065622 +0200 -+++ Python-3.15.0a1/Lib/ensurepip/__init__.py 2025-10-24 23:53:43.587899003 +0200 +--- Python-3.15.0a3.orig/Lib/ensurepip/__init__.py 2025-12-19 02:25:10.205902876 +0100 ++++ Python-3.15.0a3/Lib/ensurepip/__init__.py 2025-12-19 02:25:25.532348886 +0100 @@ -106,27 +106,27 @@ os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -123,10 +123,10 @@ upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, -Index: Python-3.15.0a1/Lib/test/test_ensurepip.py +Index: Python-3.15.0a3/Lib/test/test_ensurepip.py =================================================================== ---- Python-3.15.0a1.orig/Lib/test/test_ensurepip.py 2025-10-24 23:53:23.546712597 +0200 -+++ Python-3.15.0a1/Lib/test/test_ensurepip.py 2025-10-24 23:53:43.588286136 +0200 +--- Python-3.15.0a3.orig/Lib/test/test_ensurepip.py 2025-12-19 02:25:11.631602338 +0100 ++++ Python-3.15.0a3/Lib/test/test_ensurepip.py 2025-12-19 02:25:25.532817735 +0100 @@ -105,6 +105,17 @@ unittest.mock.ANY, ) @@ -145,11 +145,11 @@ def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.15.0a1/Makefile.pre.in +Index: Python-3.15.0a3/Makefile.pre.in =================================================================== ---- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200 -+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:43.588889640 +0200 -@@ -2378,7 +2378,7 @@ +--- Python-3.15.0a3.orig/Makefile.pre.in 2025-12-19 02:25:24.201299566 +0100 ++++ Python-3.15.0a3/Makefile.pre.in 2025-12-19 02:25:25.533184405 +0100 +@@ -2389,7 +2389,7 @@ install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -158,7 +158,7 @@ fi .PHONY: altinstall -@@ -2389,7 +2389,7 @@ +@@ -2400,7 +2400,7 @@ install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -167,10 +167,10 @@ fi .PHONY: commoninstall -Index: Python-3.15.0a1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.15.0a3/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.0a1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2025-10-24 23:53:43.589498870 +0200 ++++ Python-3.15.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst 2025-12-19 02:25:25.534506792 +0100 @@ -0,0 +1 @@ +A directory prefix can now be specified when using :mod:`ensurepip`. ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2025-12-19 17:50:13.000000000 +0100 @@ -0,0 +1 @@ +.osc ++++++ gh139257-Support-docutils-0.22.patch ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:44.105665257 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:44.113665587 +0100 @@ -4,17 +4,18 @@ Subject: [PATCH 1/2] gh-139257: Support docutils >= 0.22 --- - Doc/tools/extensions/pyspecific.py | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) + Doc/tools/extensions/pyspecific.py | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) -Index: Python-3.15.0a1/Doc/tools/extensions/pyspecific.py +Index: Python-3.15.0a3/Doc/tools/extensions/pyspecific.py =================================================================== ---- Python-3.15.0a1.orig/Doc/tools/extensions/pyspecific.py 2025-10-14 12:46:08.000000000 +0200 -+++ Python-3.15.0a1/Doc/tools/extensions/pyspecific.py 2025-10-24 23:55:02.700550007 +0200 -@@ -25,11 +25,21 @@ +--- Python-3.15.0a3.orig/Doc/tools/extensions/pyspecific.py 2025-12-16 13:26:12.000000000 +0100 ++++ Python-3.15.0a3/Doc/tools/extensions/pyspecific.py 2025-12-19 02:27:34.493094269 +0100 +@@ -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' - # monkey-patch reST parser to disable alphabetic and roman enumerated lists ++# monkey-patch reST parser to disable alphabetic and roman enumerated lists +def _disable_alphabetic_and_roman(text): + try: + # docutils >= 0.22 @@ -25,13 +26,14 @@ + return None + + - from docutils.parsers.rst.states import Body - Body.enum.converters['loweralpha'] = \ - Body.enum.converters['upperalpha'] = \ - Body.enum.converters['lowerroman'] = \ -- Body.enum.converters['upperroman'] = lambda x: None ++from docutils.parsers.rst.states import Body ++Body.enum.converters['loweralpha'] = \ ++ Body.enum.converters['upperalpha'] = \ ++ Body.enum.converters['lowerroman'] = \ + Body.enum.converters['upperroman'] = _disable_alphabetic_and_roman - - ++ ++ class PyAwaitableMixin(object): + def handle_signature(self, sig, signode): + ret = super(PyAwaitableMixin, self).handle_signature(sig, signode) ++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++ --- /var/tmp/diff_new_pack.8CRLJC/_old 2025-12-22 22:52:44.189668721 +0100 +++ /var/tmp/diff_new_pack.8CRLJC/_new 2025-12-22 22:52:44.205669381 +0100 @@ -2,11 +2,11 @@ Makefile.pre.in | 5 +++++ 1 file changed, 5 insertions(+) -Index: Python-3.15.0a1/Makefile.pre.in +Index: Python-3.15.0a3/Makefile.pre.in =================================================================== ---- Python-3.15.0a1.orig/Makefile.pre.in 2025-10-14 12:46:08.000000000 +0200 -+++ Python-3.15.0a1/Makefile.pre.in 2025-10-24 23:53:39.419910772 +0200 -@@ -1917,6 +1917,11 @@ +--- Python-3.15.0a3.orig/Makefile.pre.in 2025-12-19 02:26:23.594002103 +0100 ++++ Python-3.15.0a3/Makefile.pre.in 2025-12-19 02:26:28.185444105 +0100 +@@ -1926,6 +1926,11 @@ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c
