forked from pool/python312
Accepting request 1168659 from devel:languages:python:Factory
OBS-URL: https://build.opensuse.org/request/show/1168659 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python312?expand=0&rev=17
This commit is contained in:
commit
5aec8eeba8
@ -260,7 +260,7 @@ Co-Authored-By: Thomas Dwyer <github@tomd.tel>
|
||||
|
||||
from email.charset import Charset
|
||||
from email.generator import Generator, DecodedGenerator, BytesGenerator
|
||||
@@ -3337,15 +3338,137 @@ Foo
|
||||
@@ -3352,15 +3353,137 @@ Foo
|
||||
],
|
||||
)
|
||||
|
||||
@ -406,7 +406,7 @@ Co-Authored-By: Thomas Dwyer <github@tomd.tel>
|
||||
|
||||
def test_getaddresses_embedded_comment(self):
|
||||
"""Test proper handling of a nested comment"""
|
||||
@@ -3536,6 +3659,54 @@ multipart/report
|
||||
@@ -3551,6 +3674,54 @@ multipart/report
|
||||
m = cls(*constructor, policy=email.policy.default)
|
||||
self.assertIs(m.policy, email.policy.default)
|
||||
|
||||
|
67
CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
Normal file
67
CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
Normal file
@ -0,0 +1,67 @@
|
||||
Index: Python-3.12.3/Lib/test/test_xml_etree.py
|
||||
===================================================================
|
||||
--- Python-3.12.3.orig/Lib/test/test_xml_etree.py
|
||||
+++ Python-3.12.3/Lib/test/test_xml_etree.py
|
||||
@@ -121,6 +121,11 @@ ATTLIST_XML = """\
|
||||
</foo>
|
||||
"""
|
||||
|
||||
+IS_SLE_15_6 = os.environ.get("SLE_VERSION", "") == "0150600"
|
||||
+fails_with_expat_2_6_0 = (unittest.expectedFailure
|
||||
+ # 2.4 version patched in SLE
|
||||
+ if IS_SLE_15_6 and pyexpat.version_info >= (2, 4, 0) else
|
||||
+ lambda test: test)
|
||||
def checkwarnings(*filters, quiet=False):
|
||||
def decorator(test):
|
||||
def newtest(*args, **kwargs):
|
||||
@@ -1424,9 +1429,11 @@ class XMLPullParserTest(unittest.TestCas
|
||||
self.assert_event_tags(parser, [('end', 'root')])
|
||||
self.assertIsNone(parser.close())
|
||||
|
||||
+ @fails_with_expat_2_6_0
|
||||
def test_simple_xml_chunk_1(self):
|
||||
self.test_simple_xml(chunk_size=1, flush=True)
|
||||
|
||||
+ @fails_with_expat_2_6_0
|
||||
def test_simple_xml_chunk_5(self):
|
||||
self.test_simple_xml(chunk_size=5, flush=True)
|
||||
|
||||
@@ -1651,6 +1658,9 @@ class XMLPullParserTest(unittest.TestCas
|
||||
|
||||
self.assert_event_tags(parser, [('end', 'doc')])
|
||||
|
||||
+ @unittest.skipIf(pyexpat.version_info < (2, 6, 0),
|
||||
+ f'Expat {pyexpat.version_info} does not '
|
||||
+ 'support reparse deferral')
|
||||
def test_flush_reparse_deferral_disabled(self):
|
||||
parser = ET.XMLPullParser(events=('start', 'end'))
|
||||
|
||||
Index: Python-3.12.3/Lib/test/test_sax.py
|
||||
===================================================================
|
||||
--- Python-3.12.3.orig/Lib/test/test_sax.py
|
||||
+++ Python-3.12.3/Lib/test/test_sax.py
|
||||
@@ -1240,6 +1240,9 @@ class ExpatReaderTest(XmlTestBase):
|
||||
|
||||
self.assertEqual(result.getvalue(), start + b"<doc></doc>")
|
||||
|
||||
+ @unittest.skipIf(pyexpat.version_info < (2, 6, 0),
|
||||
+ f'Expat {pyexpat.version_info} does not '
|
||||
+ 'support reparse deferral')
|
||||
def test_flush_reparse_deferral_disabled(self):
|
||||
result = BytesIO()
|
||||
xmlgen = XMLGenerator(result)
|
||||
Index: Python-3.12.3/Lib/test/test_pyexpat.py
|
||||
===================================================================
|
||||
--- Python-3.12.3.orig/Lib/test/test_pyexpat.py
|
||||
+++ Python-3.12.3/Lib/test/test_pyexpat.py
|
||||
@@ -794,6 +794,10 @@ class ReparseDeferralTest(unittest.TestC
|
||||
self.assertEqual(started, ['doc'])
|
||||
|
||||
def test_reparse_deferral_disabled(self):
|
||||
+ if expat.version_info < (2, 6, 0):
|
||||
+ self.skipTest(f'Expat {expat.version_info} does not '
|
||||
+ 'support reparse deferral')
|
||||
+
|
||||
started = []
|
||||
|
||||
def start_element(name, _):
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be28112dac813d2053545c14bf13a16401a21877f1a69eb6ea5d84c4a0f3d870
|
||||
size 20591308
|
@ -1,18 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmXCmEZfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
||||
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
||||
YwVxNQ/5AfuzQgW8NEaIe9J2cT78VvGa6I1DMSud8X6RnZLGDtk0D19ENhykO9bn
|
||||
RtpbVGVUMWKoalU0AB3IZ4E7/ZLVl8ooZScfmzo4B3D9jdVcDJiIS8S2dYKPZ4QK
|
||||
pVLTXZxi5/KUnirohguUdMlNEE/RyDMHpYO0wDpG4bfq6E9fkkrqm9n+j7/JZpQj
|
||||
xEDyA5h3GBSus1KvG59C96r2YRFVXNebl1RgnCEuFKA6aJB/A5ht1UbINzS9vsaj
|
||||
zGTRjMNdDVZVfomtYL63Zr5dHsv8t7jpwZHe+kqmY6FyiIElcV5euvjK+akujrjp
|
||||
pY3KzyKC3tGcWz5qNaiL7H2WSW72e0fxbEZ1F2LUfmvfJM8oMcfEEb91R225m+Jp
|
||||
Ot46t7DXYazcyRVkx1cfiAijPBjbxoLQXkKcZEFXkosJE543zqzy316of64Sh1Pj
|
||||
vL+txgpMCpSYaXfgKImwya7F/twK9yPb6bvA6X2qcSZsK9FbC7d/WqSJejp0Nu5k
|
||||
QCMwN3DICOERgN0gkgLccCsF6yH+a/06Mebx4gDBDrsXxEkgLHLrZkRwYrv2vlHg
|
||||
/g6QOli029CMlbSbNIJeb2fEczRK4kqKlZyt9NOQ6InSwsAS5+F3DdhjQ2zu5lid
|
||||
saAiV4yWU0RiyGp98X1vjLPOWjp/sILbYlLplJBY7LxWBqC7+2A=
|
||||
=50z7
|
||||
-----END PGP SIGNATURE-----
|
3
Python-3.12.3.tar.xz
Normal file
3
Python-3.12.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:56bfef1fdfc1221ce6720e43a661e3eb41785dd914ce99698d8c7896af4bdaa1
|
||||
size 20625068
|
18
Python-3.12.3.tar.xz.asc
Normal file
18
Python-3.12.3.tar.xz.asc
Normal file
@ -0,0 +1,18 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmYVDdNfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
||||
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
||||
YwU8Vg//aP8bxzPTDIM9Af1LLJj5LNLIuZOl5QysWQVbakoCpS8Z8ZiK3LyzGi7H
|
||||
pQ5uJEnRjhULnOi+va2TPBDqiYvY1CkVizYzmUe1dMtzHdJUBE1TzybfON02JzPD
|
||||
62oDHxUC1hvITyLE8tjnsgBuP9bbYYHnS+qqmDgBWS1M60i4bqcBiSdlWZp7ZTI4
|
||||
KIxIy9eyNujHnNQrQQ1oqIoj7ty1Hrtkfqia/3cVq7rkQT8HecBIW0K82WuIXizm
|
||||
/Ua/TQslTJsypslFYpoJBoIkWG2nk7RhJvfU5iLxQHen6cr7JOUo/u3jv0DIJyJs
|
||||
LdBWG6noTIiqKJb65UswLUxexM5f3Y7gLEZ4FCqlbAOAPG16xwwC8Xd7LIF33cHK
|
||||
133BvYCkwdl0MCpmsQuxi8i6Kql0MaEqJ9MEj6UN66ZJVpRx8hOm2FtZGhn5ZNxx
|
||||
r5C2zXGw/IjXeS01wgD8cSRVA0XJdN4bu88vmvhqMuezg3CDF5bX85isoFUaLUjS
|
||||
c5Lv1HNrqPiaWHOctnvzasy0djpwze+WCzsXFMI6VfejPpYwNlhmnxS7i3R9A4RK
|
||||
gBwViMd5q5rwx365tCfRfGcBW6OOvrHZalhSGYmUw13sBarFliW9CvN4ghN9kWbN
|
||||
YQwSggf5KD6v5mAAyReMrOJTyBG6B5hMlxKai5CzbRLlG25T2wI=
|
||||
=ZQxz
|
||||
-----END PGP SIGNATURE-----
|
30
fix-test-recursion-limit-15.6.patch
Normal file
30
fix-test-recursion-limit-15.6.patch
Normal file
@ -0,0 +1,30 @@
|
||||
Index: Python-3.12.3/Lib/test/test_compile.py
|
||||
===================================================================
|
||||
--- Python-3.12.3.orig/Lib/test/test_compile.py
|
||||
+++ Python-3.12.3/Lib/test/test_compile.py
|
||||
@@ -14,6 +14,9 @@ from test.support import (script_helper,
|
||||
requires_specialization, C_RECURSION_LIMIT)
|
||||
from test.support.os_helper import FakePath
|
||||
|
||||
+IS_SLE_15_6 = os.environ.get("SLE_VERSION", "") == "0150600"
|
||||
+IS_32bit = hasattr(os, "uname") and os.uname().machine in ["i386", "i486", "i586", "i686"]
|
||||
+
|
||||
class TestSpecifics(unittest.TestCase):
|
||||
|
||||
def compile_single(self, source):
|
||||
@@ -110,6 +113,7 @@ class TestSpecifics(unittest.TestCase):
|
||||
self.assertEqual(d['z'], 12)
|
||||
|
||||
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
|
||||
+ @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586")
|
||||
def test_extended_arg(self):
|
||||
repeat = int(C_RECURSION_LIMIT * 0.9)
|
||||
longexpr = 'x = x or ' + '-x' * repeat
|
||||
@@ -603,6 +607,7 @@ class TestSpecifics(unittest.TestCase):
|
||||
|
||||
@support.cpython_only
|
||||
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
|
||||
+ @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586")
|
||||
def test_compiler_recursion_limit(self):
|
||||
# Expected limit is C_RECURSION_LIMIT * 2
|
||||
# Duplicating the limit here is a little ugly.
|
@ -3,11 +3,9 @@
|
||||
Misc/NEWS | 2 +-
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
Index: Python-3.12.2/Doc/using/configure.rst
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Doc/using/configure.rst
|
||||
+++ Python-3.12.2/Doc/using/configure.rst
|
||||
@@ -629,13 +629,11 @@ macOS Options
|
||||
--- a/Doc/using/configure.rst
|
||||
+++ b/Doc/using/configure.rst
|
||||
@@ -631,13 +631,11 @@ macOS Options
|
||||
|
||||
See ``Mac/README.rst``.
|
||||
|
||||
@ -21,11 +19,9 @@ Index: Python-3.12.2/Doc/using/configure.rst
|
||||
.. option:: --enable-framework=INSTALLDIR
|
||||
|
||||
Create a Python.framework rather than a traditional Unix install. Optional
|
||||
Index: Python-3.12.2/Misc/NEWS
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Misc/NEWS
|
||||
+++ Python-3.12.2/Misc/NEWS
|
||||
@@ -12998,7 +12998,7 @@ C API
|
||||
--- a/Misc/NEWS
|
||||
+++ b/Misc/NEWS
|
||||
@@ -13428,7 +13428,7 @@ C API
|
||||
- bpo-40939: Removed documentation for the removed ``PyParser_*`` C API.
|
||||
|
||||
- bpo-43795: The list in :ref:`limited-api-list` now shows the public name
|
||||
|
@ -1,107 +0,0 @@
|
||||
From f2eebf3c38eae77765247791576b437ec25ccfe2 Mon Sep 17 00:00:00 2001
|
||||
From: Serhiy Storchaka <storchaka@gmail.com>
|
||||
Date: Sun, 11 Feb 2024 12:08:39 +0200
|
||||
Subject: [PATCH] gh-115133: Fix tests for XMLPullParser with Expat 2.6.0
|
||||
(GH-115164)
|
||||
|
||||
Feeding the parser by too small chunks defers parsing to prevent
|
||||
CVE-2023-52425. Future versions of Expat may be more reactive.
|
||||
(cherry picked from commit 4a08e7b3431cd32a0daf22a33421cd3035343dc4)
|
||||
|
||||
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
|
||||
---
|
||||
Lib/test/test_xml_etree.py | 58 ++++++++++++-------
|
||||
...-02-08-14-21-28.gh-issue-115133.ycl4ko.rst | 2 +
|
||||
2 files changed, 38 insertions(+), 22 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Library/2024-02-08-14-21-28.gh-issue-115133.ycl4ko.rst
|
||||
|
||||
Index: Python-3.12.2/Lib/test/test_xml_etree.py
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Lib/test/test_xml_etree.py
|
||||
+++ Python-3.12.2/Lib/test/test_xml_etree.py
|
||||
@@ -13,6 +13,7 @@ import itertools
|
||||
import operator
|
||||
import os
|
||||
import pickle
|
||||
+import pyexpat
|
||||
import sys
|
||||
import textwrap
|
||||
import types
|
||||
@@ -120,6 +121,10 @@ ATTLIST_XML = """\
|
||||
</foo>
|
||||
"""
|
||||
|
||||
+fails_with_expat_2_6_0 = (unittest.expectedFailure
|
||||
+ if pyexpat.version_info >= (2, 6, 0) else
|
||||
+ lambda test: test)
|
||||
+
|
||||
def checkwarnings(*filters, quiet=False):
|
||||
def decorator(test):
|
||||
def newtest(*args, **kwargs):
|
||||
@@ -1400,28 +1405,37 @@ class XMLPullParserTest(unittest.TestCas
|
||||
self.assertEqual([(action, elem.tag) for action, elem in events],
|
||||
expected)
|
||||
|
||||
- def test_simple_xml(self):
|
||||
- for chunk_size in (None, 1, 5):
|
||||
- with self.subTest(chunk_size=chunk_size):
|
||||
- parser = ET.XMLPullParser()
|
||||
- self.assert_event_tags(parser, [])
|
||||
- self._feed(parser, "<!-- comment -->\n", chunk_size)
|
||||
- self.assert_event_tags(parser, [])
|
||||
- self._feed(parser,
|
||||
- "<root>\n <element key='value'>text</element",
|
||||
- chunk_size)
|
||||
- self.assert_event_tags(parser, [])
|
||||
- self._feed(parser, ">\n", chunk_size)
|
||||
- self.assert_event_tags(parser, [('end', 'element')])
|
||||
- self._feed(parser, "<element>text</element>tail\n", chunk_size)
|
||||
- self._feed(parser, "<empty-element/>\n", chunk_size)
|
||||
- self.assert_event_tags(parser, [
|
||||
- ('end', 'element'),
|
||||
- ('end', 'empty-element'),
|
||||
- ])
|
||||
- self._feed(parser, "</root>\n", chunk_size)
|
||||
- self.assert_event_tags(parser, [('end', 'root')])
|
||||
- self.assertIsNone(parser.close())
|
||||
+ def test_simple_xml(self, chunk_size=None):
|
||||
+ parser = ET.XMLPullParser()
|
||||
+ self.assert_event_tags(parser, [])
|
||||
+ self._feed(parser, "<!-- comment -->\n", chunk_size)
|
||||
+ self.assert_event_tags(parser, [])
|
||||
+ self._feed(parser,
|
||||
+ "<root>\n <element key='value'>text</element",
|
||||
+ chunk_size)
|
||||
+ self.assert_event_tags(parser, [])
|
||||
+ self._feed(parser, ">\n", chunk_size)
|
||||
+ self.assert_event_tags(parser, [('end', 'element')])
|
||||
+ self._feed(parser, "<element>text</element>tail\n", chunk_size)
|
||||
+ self._feed(parser, "<empty-element/>\n", chunk_size)
|
||||
+ self.assert_event_tags(parser, [
|
||||
+ ('end', 'element'),
|
||||
+ ('end', 'empty-element'),
|
||||
+ ])
|
||||
+ self._feed(parser, "</root>\n", chunk_size)
|
||||
+ self.assert_event_tags(parser, [('end', 'root')])
|
||||
+ self.assertIsNone(parser.close())
|
||||
+
|
||||
+ @fails_with_expat_2_6_0
|
||||
+ def test_simple_xml_chunk_1(self):
|
||||
+ self.test_simple_xml(chunk_size=1)
|
||||
+
|
||||
+ @fails_with_expat_2_6_0
|
||||
+ def test_simple_xml_chunk_5(self):
|
||||
+ self.test_simple_xml(chunk_size=5)
|
||||
+
|
||||
+ def test_simple_xml_chunk_22(self):
|
||||
+ self.test_simple_xml(chunk_size=22)
|
||||
|
||||
def test_feed_while_iterating(self):
|
||||
parser = ET.XMLPullParser()
|
||||
Index: Python-3.12.2/Misc/NEWS.d/next/Library/2024-02-08-14-21-28.gh-issue-115133.ycl4ko.rst
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ Python-3.12.2/Misc/NEWS.d/next/Library/2024-02-08-14-21-28.gh-issue-115133.ycl4ko.rst
|
||||
@@ -0,0 +1,2 @@
|
||||
+Fix tests for :class:`~xml.etree.ElementTree.XMLPullParser` with Expat
|
||||
+2.6.0.
|
@ -1,3 +1,340 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 15 10:31:32 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch to fix tests with
|
||||
patched libexpat below 2.6.0 that doesn't update the version number,
|
||||
just in 15.6.
|
||||
- Drop libexpat260.patch, not needed anymore. This patch is merged
|
||||
with the CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch to keep
|
||||
working on 15.6.
|
||||
- Add fix-test-recursion-limit-15.6.patch, gh#python/cpython#115083.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 10 14:41:07 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Update to 3.12.3:
|
||||
- Security
|
||||
- gh-115398: Allow controlling Expat >=2.6.0 reparse deferral
|
||||
(CVE-2023-52425, bsc#1219559) by adding five new methods:
|
||||
xml.etree.ElementTree.XMLParser.flush()
|
||||
xml.etree.ElementTree.XMLPullParser.flush()
|
||||
xml.parsers.expat.xmlparser.GetReparseDeferralEnabled()
|
||||
xml.parsers.expat.xmlparser.SetReparseDeferralEnabled()
|
||||
xml.sax.expatreader.ExpatParser.flush()
|
||||
- gh-115399: Update bundled libexpat to 2.6.0 (bsc#1222075)
|
||||
- gh-115243: Fix possible crashes in
|
||||
collections.deque.index() when the deque is concurrently
|
||||
modified.
|
||||
- gh-114572: ssl.SSLContext.cert_store_stats() and
|
||||
ssl.SSLContext.get_ca_certs() now correctly lock access to
|
||||
the certificate store, when the ssl.SSLContext is shared
|
||||
across multiple threads.
|
||||
- Core and Builtins
|
||||
- gh-109120: Added handle of incorrect star expressions, e.g
|
||||
f(3, *). Patch by Grigoryev Semyon
|
||||
- gh-99108: Updated the hashlib built-in HACL* project C code
|
||||
from upstream that we use for many implementations when
|
||||
they are not present via OpenSSL in a given build. This
|
||||
also avoids the rare potential for a C symbol name one
|
||||
definition rule linking issue.
|
||||
- gh-116735: For INSTRUMENTED_CALL_FUNCTION_EX, set arg0 to
|
||||
sys.monitoring.MISSING instead of None for CALL event.
|
||||
- gh-113964: Starting new threads and process creation
|
||||
through os.fork() are now only prevented once all
|
||||
non-daemon threads exit.
|
||||
- gh-116604: Respect the status of the garbage collector when
|
||||
indirect calls are made via PyErr_CheckSignals() and the
|
||||
evaluation breaker. Patch by Pablo Galindo
|
||||
- gh-116626: Ensure INSTRUMENTED_CALL_FUNCTION_EX always
|
||||
emits CALL
|
||||
- gh-116296: Fix possible refleak in object.__reduce__()
|
||||
internal error handling.
|
||||
- gh-116034: Fix location of the error on a failed assertion.
|
||||
- gh-115823: Properly calculate error ranges in the parser
|
||||
when raising SyntaxError exceptions caused by invalid byte
|
||||
sequences. Patch by Pablo Galindo
|
||||
- gh-112087: For an empty reverse iterator for list will be
|
||||
reduced to reversed(). Patch by Donghee Na.
|
||||
- gh-115154: Fix a bug that was causing the
|
||||
tokenize.untokenize() function to handle unicode named
|
||||
literals incorrectly. Patch by Pablo Galindo
|
||||
- gh-114828: Fix compilation crashes in uncommon code
|
||||
examples using super() inside a comprehension in a class
|
||||
body.
|
||||
- gh-115011: Setters for members with an unsigned integer
|
||||
type now support the same range of valid values for objects
|
||||
that has a __index__() method as for int.
|
||||
- gh-112215: Change the C recursion limits to more closely
|
||||
reflect the underlying platform limits.
|
||||
- gh-96497: Fix incorrect resolution of mangled class
|
||||
variables used in assignment expressions in comprehensions.
|
||||
- Library
|
||||
- gh-117467: Preserve mailbox ownership when rewriting in
|
||||
mailbox.mbox.flush(). Patch by Tony Mountifield.
|
||||
- gh-117310: Fixed an unlikely early & extra Py_DECREF
|
||||
triggered crash in ssl when creating a new _ssl._SSLContext
|
||||
if CPython was built implausibly such that the
|
||||
default cipher list is empty or the SSL library it
|
||||
was linked against reports a failure from its C
|
||||
SSL_CTX_set_cipher_list() API.
|
||||
- gh-117178: Fix regression in lazy loading of
|
||||
self-referential modules, introduced in gh-114781.
|
||||
- gh-117084: Fix zipfile extraction for directory entries
|
||||
with the name containing backslashes on Windows.
|
||||
- gh-117110: Fix a bug that prevents subclasses of typing.Any
|
||||
to be instantiated with arguments. Patch by Chris Fu.
|
||||
- gh-90872: On Windows, subprocess.Popen.wait() no longer
|
||||
calls WaitForSingleObject() with a negative timeout: pass 0
|
||||
ms if the timeout is negative. Patch by Victor Stinner.
|
||||
- gh-116957: configparser: Don’t leave ConfigParser values
|
||||
in an invalid state (stored as a list instead of a str)
|
||||
after an earlier read raised DuplicateSectionError or
|
||||
DuplicateOptionError.
|
||||
- gh-90095: Ignore empty lines and comments in .pdbrc
|
||||
- gh-116764: Restore support of None and other false values
|
||||
in urllib.parse functions parse_qs() and parse_qsl(). Also,
|
||||
they now raise a TypeError for non-zero integers and
|
||||
non-empty sequences.
|
||||
- gh-116811: In PathFinder.invalidate_caches, delegate to
|
||||
MetadataPathFinder.invalidate_caches.
|
||||
- gh-116600: Fix repr() for global Flag members.
|
||||
- gh-116484: Change automatically generated
|
||||
tkinter.Checkbutton widget names to avoid collisions with
|
||||
automatically generated tkinter.ttk.Checkbutton widget
|
||||
names within the same parent widget.
|
||||
- gh-116401: Fix blocking os.fwalk() and shutil.rmtree() on
|
||||
opening named pipe.
|
||||
- gh-116143: Fix a race in pydoc _start_server, eliminating a
|
||||
window in which _start_server can return a thread that is
|
||||
“serving” but without a docserver set.
|
||||
- gh-116325: typing: raise SyntaxError instead of
|
||||
AttributeError on forward references as empty strings.
|
||||
- gh-90535: Fix support of interval values > 1 in
|
||||
logging.TimedRotatingFileHandler for when='MIDNIGHT' and
|
||||
when='Wx'.
|
||||
- gh-115978: Disable preadv(), readv(), pwritev(), and
|
||||
writev() on WASI.
|
||||
- Under wasmtime for WASI 0.2, these
|
||||
functions don’t pass test_posix
|
||||
(https://github.com/bytecodealliance/wasmtime/issues/7830).
|
||||
- gh-88352: Fix the computation of the next rollover
|
||||
time in the logging.TimedRotatingFileHandler handler.
|
||||
computeRollover() now always returns a timestamp larger
|
||||
than the specified time and works correctly during the DST
|
||||
change. doRollover() no longer overwrite the already rolled
|
||||
over file, saving from data loss when run at midnight or
|
||||
during repeated time at the DST change.
|
||||
- gh-87115: Set __main__.__spec__ to None when running a
|
||||
script with pdb
|
||||
- gh-76511: Fix UnicodeEncodeError in
|
||||
email.Message.as_string() that results when a message
|
||||
that claims to be in the ascii character set actually has
|
||||
non-ascii characters. Non-ascii characters are now replaced
|
||||
with the U+FFFD replacement character, like in the replace
|
||||
error handler.
|
||||
- gh-116040: [Enum] fix by-value calls when second value is
|
||||
falsey; e.g. Cardinal(1, 0)
|
||||
- gh-75988: Fixed unittest.mock.create_autospec() to pass
|
||||
the call through to the wrapped object to return the real
|
||||
result.
|
||||
- gh-115881: Fix issue where ast.parse() would incorrectly
|
||||
flag conditional context managers (such as with (x() if y
|
||||
else z()): ...) as invalid syntax if feature_version=(3,
|
||||
8) was passed. This reverts changes to the grammar made as
|
||||
part of gh-94949.
|
||||
- gh-115886: Fix silent truncation of the
|
||||
name with an embedded null character in
|
||||
multiprocessing.shared_memory.SharedMemory.
|
||||
- gh-115809: Improve algorithm for computing
|
||||
which rolled-over log files to delete in
|
||||
logging.TimedRotatingFileHandler. It is now reliable for
|
||||
handlers without namer and with arbitrary deterministic
|
||||
namer that leaves the datetime part in the file name
|
||||
unmodified.
|
||||
- gh-74668: urllib.parse functions parse_qs() and
|
||||
parse_qsl() now support bytes arguments containing raw and
|
||||
percent-encoded non-ASCII data.
|
||||
- gh-67044: csv.writer() now always quotes or escapes '\r'
|
||||
and '\n', regardless of lineterminator value.
|
||||
- gh-115712: csv.writer() now quotes empty fields if
|
||||
delimiter is a space and skipinitialspace is true and
|
||||
raises exception if quoting is not possible.
|
||||
- gh-112364: Fixed ast.unparse() to handle format_spec with
|
||||
", ' or \\. Patched by Frank Hoffmann.
|
||||
- gh-111358: Fix a bug in
|
||||
asyncio.BaseEventLoop.shutdown_default_executor() to ensure
|
||||
the timeout passed to the coroutine behaves as expected.
|
||||
- gh-115618: Fix improper decreasing the reference count for
|
||||
None argument in property methods getter(), setter() and
|
||||
deleter().
|
||||
- gh-115570: A DeprecationWarning is no longer omitted
|
||||
on access to the __doc__ attributes of the deprecated
|
||||
typing.io and typing.re pseudo-modules.
|
||||
- gh-112006: Fix inspect.unwrap() for types with the
|
||||
__wrapper__ data descriptor.
|
||||
- gh-101293: Support callables with the __call__() method
|
||||
and types with __new__() and __init__() methods set to
|
||||
class methods, static methods, bound methods, partial
|
||||
functions, and other types of methods and descriptors in
|
||||
inspect.Signature.from_callable().
|
||||
- gh-115392: Fix a bug in doctest where incorrect line
|
||||
numbers would be reported for decorated functions.
|
||||
- gh-114563: Fix several format() bugs when using the C
|
||||
implementation of Decimal: * memory leak in some rare
|
||||
cases when using the z format option (coerce negative 0) *
|
||||
incorrect output when applying the z format option to type
|
||||
F (fixed-point with capital NAN / INF) * incorrect output
|
||||
when applying the # format option (alternate form)
|
||||
- gh-115197: urllib.request no longer resolves the hostname
|
||||
before checking it against the system’s proxy bypass list
|
||||
on macOS and Windows.
|
||||
- gh-115165: Most exceptions are now ignored when attempting
|
||||
to set the __orig_class__ attribute on objects returned
|
||||
when calling typing generic aliases (including generic
|
||||
aliases created using typing.Annotated). Previously only
|
||||
AttributeError was ignored. Patch by Dave Shawley.
|
||||
- gh-115133: Fix tests for XMLPullParser with Expat 2.6.0.
|
||||
- gh-115059: io.BufferedRandom.read1() now flushes the
|
||||
underlying write buffer.
|
||||
- gh-79382: Trailing ** no longer allows to match files and
|
||||
non-existing paths in recursive glob().
|
||||
- gh-114071: Support tuple subclasses using auto() for enum
|
||||
member value.
|
||||
- gh-114763: Protect modules loaded with
|
||||
importlib.util.LazyLoader from race conditions when
|
||||
multiple threads try to access attributes before the
|
||||
loading is complete.
|
||||
- gh-97959: Fix rendering class methods, bound methods,
|
||||
method and function aliases in pydoc. Class methods
|
||||
no longer have “method of builtins.type instance”
|
||||
note. Corresponding notes are now added for class and
|
||||
unbound methods. Method and function aliases now have
|
||||
references to the module or the class where the origin
|
||||
was defined if it differs from the current. Bound methods
|
||||
are now listed in the static methods section. Methods of
|
||||
builtin classes are now supported as well as methods of
|
||||
Python classes.
|
||||
- gh-112281: Allow creating union of types for
|
||||
typing.Annotated with unhashable metadata.
|
||||
- gh-111775: Fix
|
||||
importlib.resources.simple.ResourceHandle.open() for text
|
||||
mode, added missed stream argument.
|
||||
- gh-90095: Make .pdbrc and -c work with any valid pdb
|
||||
commands.
|
||||
- gh-107155: Fix incorrect output of help(x) where x is a
|
||||
lambda function, which has an __annotations__ dictionary
|
||||
attribute with a "return" key.
|
||||
- gh-105866: Fixed _get_slots bug which caused error when
|
||||
defining dataclasses with slots and a weakref_slot.
|
||||
- gh-60346: Fix ArgumentParser inconsistent with
|
||||
parse_known_args.
|
||||
- gh-100985: Update HTTPSConnection to consistently wrap IPv6
|
||||
Addresses when using a proxy.
|
||||
- gh-100884: email: fix misfolding of comma in address-lists
|
||||
over multiple lines in combination with unicode encoding.
|
||||
- gh-95782: Fix io.BufferedReader.tell(),
|
||||
io.BufferedReader.seek(), _pyio.BufferedReader.tell(),
|
||||
io.BufferedRandom.tell(), io.BufferedRandom.seek() and
|
||||
_pyio.BufferedRandom.tell() being able to return negative
|
||||
offsets.
|
||||
- gh-96310: Fix a traceback in argparse when all options in a
|
||||
mutually exclusive group are suppressed.
|
||||
- gh-93205: Fixed a bug in
|
||||
logging.handlers.TimedRotatingFileHandler where multiple
|
||||
rotating handler instances pointing to files with the same
|
||||
name but different extensions would conflict and not delete
|
||||
the correct files.
|
||||
- bpo-44865: Add missing call to localization function in
|
||||
argparse.
|
||||
- bpo-43952: Fix multiprocessing.connection.Listener.accept()
|
||||
to accept empty bytes as authkey. Not accepting empty bytes
|
||||
as key causes it to hang indefinitely.
|
||||
- bpo-42125: linecache: get module name from __spec__ if
|
||||
available. This allows getting source code for the __main__
|
||||
module when a custom loader is used.
|
||||
- gh-66543: Make mimetypes.guess_type() properly parsing
|
||||
of URLs with only a host name, URLs containing fragment
|
||||
or query, and filenames with only a UNC sharepoint on
|
||||
Windows. Based on patch by Dong-hee Na.
|
||||
- bpo-33775: Add ‘default’ and ‘version’ help text for
|
||||
localization in argparse.
|
||||
- Documentation
|
||||
- gh-115399: Document CVE-2023-52425 of Expat <2.6.0 under
|
||||
“XML vulnerabilities”.
|
||||
- gh-115233: Fix an example for LoggerAdapter in the Logging
|
||||
Cookbook.
|
||||
- Tests
|
||||
- gh-83434: Disable JUnit XML output (--junit-xml=FILE
|
||||
command line option) in regrtest when hunting for reference
|
||||
leaks (-R option). Patch by Victor Stinner.
|
||||
- gh-117187: Fix XML tests for vanilla Expat <2.6.0.
|
||||
- gh-116333: Tests of TLS related things (error codes, etc)
|
||||
were updated to be more lenient about specific error
|
||||
message strings and behaviors as seen in the BoringSSL and
|
||||
AWS-LC forks of OpenSSL.
|
||||
- gh-115979: Update test_importlib so that it passes under
|
||||
WASI SDK 21.
|
||||
- gh-112536: Add –tsan to test.regrtest for running TSAN
|
||||
tests in reasonable execution times. Patch by Donghee Na.
|
||||
- gh-116307: Added import helper isolated_modules as
|
||||
CleanImport does not remove modules imported during the
|
||||
context. Use it in importlib.resources tests to avoid
|
||||
leaving mod around to impede importlib.metadata tests.
|
||||
- gh-115720: Leak tests (-R, --huntrleaks) now show a summary
|
||||
of the number of leaks found in each iteration.
|
||||
- gh-115122: Add --bisect option to regrtest test runner:
|
||||
run failed tests with test.bisect_cmd to identify failing
|
||||
tests. Patch by Victor Stinner.
|
||||
- gh-115596: Fix ProgramPriorityTests in test_os permanently
|
||||
changing the process priority.
|
||||
- Build
|
||||
- gh-116313: Get WASI builds to work under wasmtime 18 w/
|
||||
WASI 0.2/preview2 primitives.
|
||||
- gh-116117: Backport libb2’s PR #42 to fix compiling CPython
|
||||
on 32-bit Windows with clang-cl.
|
||||
- gh-115167: Avoid vendoring vcruntime140_threads.dll when
|
||||
building with Visual Studio 2022 version 17.8.
|
||||
- gh-112536: Add support for thread sanitizer (TSAN)
|
||||
- Windows
|
||||
- gh-117267: Ensure DirEntry.stat().st_ctime behaves
|
||||
consistently with os.stat() during the deprecation
|
||||
period of st_ctime by containing the same value as
|
||||
st_birthtime. After the deprecation period, st_ctime
|
||||
will be the metadata change time (or unavailable through
|
||||
DirEntry), and only st_birthtime will contain the creation
|
||||
time.
|
||||
- gh-116773: Fix instances of <_overlapped.Overlapped object
|
||||
at 0xXXX> still has pending operation at deallocation, the
|
||||
process may crash.
|
||||
- gh-91227: Fix the asyncio ProactorEventLoop implementation
|
||||
so that sending a datagram to an address that is not
|
||||
listening does not prevent receiving any more datagrams.
|
||||
- gh-115554: The installer now has more strict rules about
|
||||
updating the Python Launcher for Windows. In general, most
|
||||
users only have a single launcher installed and will see no
|
||||
difference. When multiple launchers have been installed,
|
||||
the option to install the launcher is disabled until all
|
||||
but one have been removed. Downgrading the launcher (which
|
||||
was never allowed) is now more obviously blocked.
|
||||
- gh-115543: Python Launcher for Windows can now
|
||||
detect Python 3.13 when installed from the Microsoft
|
||||
Store, and will install Python 3.12 by default when
|
||||
PYLAUNCHER_ALLOW_INSTALL is set.
|
||||
- gh-115049: Fixes py.exe launcher failing when run as users
|
||||
without user profiles.
|
||||
- gh-115009: Update Windows installer to use SQLite 3.45.1.
|
||||
- IDLE
|
||||
- gh-88516: On macOS show a proxy icon in the title bar of
|
||||
editor windows to match platform behaviour.
|
||||
- Tools/Demos
|
||||
- gh-113516: Don’t set LDSHARED when building for WASI.
|
||||
- C API
|
||||
- gh-117021: Fix integer overflow in PyLong_AsPid() on
|
||||
non-Windows 64-bit platforms.
|
||||
- gh-116869: Make the C API compatible with
|
||||
-Werror=declaration-after-statement compiler flag
|
||||
again. Patch by Victor Stinner.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 6 14:13:58 UTC 2024 - Pedro Monreal <pmonreal@suse.com>
|
||||
|
||||
|
@ -105,7 +105,7 @@
|
||||
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
|
||||
%bcond_without profileopt
|
||||
Name: %{python_pkg_name}%{psuffix}
|
||||
Version: 3.12.2
|
||||
Version: 3.12.3
|
||||
Release: 0
|
||||
Summary: Python 3 Interpreter
|
||||
License: Python-2.0
|
||||
@ -160,12 +160,17 @@ Patch35: fix_configure_rst.patch
|
||||
# Detect email address parsing errors and return empty tuple to
|
||||
# indicate the parsing error (old API)
|
||||
Patch36: CVE-2023-27043-email-parsing-errors.patch
|
||||
# PATCH-FIX-UPSTREAM libexpat260.patch gh#python/cpython#115288
|
||||
# Fix tests for XMLPullParser with Expat 2.6.0
|
||||
Patch37: libexpat260.patch
|
||||
# PATCH-FIX-UPSTREAM CVE-2023-6597-TempDir-cleaning-symlink.patch bsc#1219666 mcepl@suse.com
|
||||
# tempfile.TemporaryDirectory: fix symlink bug in cleanup (from gh#python/cpython!99930)
|
||||
Patch38: CVE-2023-6597-TempDir-cleaning-symlink.patch
|
||||
# PATCH-FIX-OPENSUSE CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
|
||||
# This problem on libexpat is patched on 15.6 without version
|
||||
# update, this patch changes the tests to match the libexpat provided
|
||||
# by SUSE
|
||||
Patch39: CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
|
||||
# PATCH-FIX-OPENSUSE fix-test-recursion-limit-15.6.patch gh#python/cpython#115083
|
||||
# Skip some failing tests in test_compile for i586 arch in 15.6.
|
||||
Patch40: fix-test-recursion-limit-15.6.patch
|
||||
BuildRequires: autoconf-archive
|
||||
BuildRequires: automake
|
||||
BuildRequires: fdupes
|
||||
@ -527,6 +532,8 @@ LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH \
|
||||
%endif
|
||||
|
||||
%check
|
||||
export SUSE_VERSION="0%{?suse_version}"
|
||||
export SLE_VERSION="0%{?sle_version}"
|
||||
%if %{with general}
|
||||
# exclude test_gdb -- it doesn't run in buildservice anyway, and fails on missing debuginfos
|
||||
# when you install gdb into your test env
|
||||
|
Loading…
Reference in New Issue
Block a user