- Update to 3.14.0~b4:

- Tools/Demos
    - gh-135968: Stubs for strip are now provided as part of an
      iOS install.
    - gh-133600: Backport file reorganization for               .
      Tools/wasm/wasi This should make backporting future code  .
      changes easier. It also simplifies instructions around how.
      to do WASI builds in the devguide                         .
  - Tests
    - gh-135966: The iOS testbed now handles the app_packages
      folder as a site directory.
    - gh-135494: Fix regrtest to support excluding tests from
      --pgo tests. Patch by Victor Stinner.
  - Security
    - gh-136053: marshal: fix a possible crash when deserializing
      slice objects.
    - gh-135661: Fix parsing start and end tags in
      html.parser.HTMLParser according to the HTML5 standard.
      - Whitespaces no longer accepted between </ and the tag
        name. E.g. </ script> does not end the script section.
      - Vertical tabulation (\v) and non-ASCII whitespaces no
        longer recognized as whitespaces. The only whitespaces
        are \t\n\r\f and space.
      - Null character (U+0000) no longer ends the tag name.
      - Attributes and slashes after the tag name in end tags are
        now ignored, instead of terminating after the first > in
        quoted attribute value. E.g. </script/foo=">"/>.
      - Multiple slashes and whitespaces between the last
        attribute and closing > are now ignored in both start and
        end tags. E.g. <a foo=bar/ //>.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=80
This commit is contained in:
2025-07-09 05:57:00 +00:00
committed by Matěj Cepl
parent bb3da16d4f
commit 60575468bf
8 changed files with 193 additions and 20 deletions

View File

@@ -4,9 +4,11 @@
Lib/test/test_xml_etree.py | 10 ++++++++++
3 files changed, 17 insertions(+)
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -791,6 +791,10 @@ class ReparseDeferralTest(unittest.TestC
Index: Python-3.14.0b4/Lib/test/test_pyexpat.py
===================================================================
--- Python-3.14.0b4.orig/Lib/test/test_pyexpat.py 2025-07-09 07:53:01.180304305 +0200
+++ Python-3.14.0b4/Lib/test/test_pyexpat.py 2025-07-09 07:55:44.221539903 +0200
@@ -791,6 +791,10 @@
self.assertEqual(started, ['doc'])
def test_reparse_deferral_disabled(self):
@@ -17,9 +19,11 @@
started = []
def start_element(name, _):
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
@@ -1241,6 +1241,9 @@ class ExpatReaderTest(XmlTestBase):
Index: Python-3.14.0b4/Lib/test/test_sax.py
===================================================================
--- Python-3.14.0b4.orig/Lib/test/test_sax.py 2025-07-09 07:53:01.235965215 +0200
+++ Python-3.14.0b4/Lib/test/test_sax.py 2025-07-09 07:55:44.222266328 +0200
@@ -1241,6 +1241,9 @@
self.assertEqual(result.getvalue(), start + b"<doc></doc>")
@@ -29,9 +33,11 @@
def test_flush_reparse_deferral_disabled(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -138,6 +138,11 @@ def equal_wrapper(cls):
Index: Python-3.14.0b4/Lib/test/test_xml_etree.py
===================================================================
--- Python-3.14.0b4.orig/Lib/test/test_xml_etree.py 2025-07-09 07:53:01.649732434 +0200
+++ Python-3.14.0b4/Lib/test/test_xml_etree.py 2025-07-09 07:55:44.223264648 +0200
@@ -138,6 +138,11 @@
return mock.patch.object(cls, "__eq__", autospec=True, wraps=eq)
@@ -43,7 +49,7 @@
def checkwarnings(*filters, quiet=False):
def decorator(test):
def newtest(*args, **kwargs):
@@ -1520,9 +1525,11 @@ class XMLPullParserTest(unittest.TestCas
@@ -1547,9 +1552,11 @@
self.assert_event_tags(parser, [('end', 'root')])
self.assertIsNone(parser.close())
@@ -55,7 +61,7 @@
def test_simple_xml_chunk_5(self):
self.test_simple_xml(chunk_size=5, flush=True)
@@ -1747,6 +1754,9 @@ class XMLPullParserTest(unittest.TestCas
@@ -1774,6 +1781,9 @@
self.assert_event_tags(parser, [('end', 'doc')])

BIN
Python-3.14.0b3.tar.xz (Stored with Git LFS)

Binary file not shown.

File diff suppressed because one or more lines are too long

BIN
Python-3.14.0b4.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,168 @@
-------------------------------------------------------------------
Wed Jul 9 05:50:32 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~b4:
- Tools/Demos
- gh-135968: Stubs for strip are now provided as part of an
iOS install.
- gh-133600: Backport file reorganization for .
Tools/wasm/wasi This should make backporting future code .
changes easier. It also simplifies instructions around how.
to do WASI builds in the devguide .
- Tests
- gh-135966: The iOS testbed now handles the app_packages
folder as a site directory.
- gh-135494: Fix regrtest to support excluding tests from
--pgo tests. Patch by Victor Stinner.
- Security
- gh-136053: marshal: fix a possible crash when deserializing
slice objects.
- gh-135661: Fix parsing start and end tags in
html.parser.HTMLParser according to the HTML5 standard.
- Whitespaces no longer accepted between </ and the tag
name. E.g. </ script> does not end the script section.
- Vertical tabulation (\v) and non-ASCII whitespaces no
longer recognized as whitespaces. The only whitespaces
are \t\n\r\f and space.
- Null character (U+0000) no longer ends the tag name.
- Attributes and slashes after the tag name in end tags are
now ignored, instead of terminating after the first > in
quoted attribute value. E.g. </script/foo=">"/>.
- Multiple slashes and whitespaces between the last
attribute and closing > are now ignored in both start and
end tags. E.g. <a foo=bar/ //>.
- Multiple = between attribute name and value are no longer
collapsed. E.g. <a foo==bar> produces attribute “foo”
with value “=bar”.
- Whitespaces between the = separator and attribute name or
value are no longer ignored. E.g. <a foo =bar> produces
two attributes “foo” and “=bar”, both with value None; <a
foo= bar> produces two attributes: “foo” with value “”
and “bar” with value None.
- gh-102555: Fix comment parsing in html.parser.HTMLParser
according to the HTML5 standard. --!> now ends the comment.
-- > no longer ends the comment. Support abnormally ended
empty comments <--> and <--->.
- Library
- gh-136286: Fix pickling failures for protocols 0 and 1 for
many objects realted to subinterpreters.
- gh-136316: Improve support for evaluating nested forward
references in typing.evaluate_forward_ref().
- gh-85702: If zoneinfo._common.load_tzdata is given a
package without a resource a zoneinfo.ZoneInfoNotFoundError
is raised rather than a PermissionError. Patch by Victor
Stinner.
- gh-136028: Fix parsing month names containing “İ”
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE) in
time.strptime(). This affects locales az_AZ, ber_DZ, ber_MA
and crh_UA.
- gh-135995: In the palmos encoding, make byte 0x9b decode to
(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK).
- gh-53203: Fix time.strptime() for %c and %x formats on
locales byn_ER, wal_ET and lzh_TW, and for %X format on
locales ar_SA, bg_BG and lzh_TW.
- gh-91555: An earlier change, which was introduced in
3.14.0b2, has been reverted. It disabled logging for
a logger during handling of log messages for that
logger. Since the reversion, the behaviour should be as it
was before 3.14.0b2.
- gh-135878: Fixes a crash of types.SimpleNamespace on free
threading builds, when several threads were calling its
__repr__() method at the same time.
- gh-135836: Fix IndexError in
asyncio.loop.create_connection() that could occur when
non-OSError exception is raised during connection and
sockets close() raises OSError.
- gh-135836: Fix IndexError in
asyncio.loop.create_connection() that could occur when the
Happy Eyeballs algorithm resulted in an empty exceptions
list during connection attempts.
- gh-135855: Raise TypeError instead of SystemError when
_interpreters.set___main___attrs() is passed a non-dict
object. Patch by Brian Schubert.
- gh-135815: netrc: skip security checks if os.getuid() is
missing. Patch by Bénédikt Tran.
- gh-135640: Address bug where it was possible to call
xml.etree.ElementTree.ElementTree.write() on an ElementTree
object with an invalid root element. This behavior blanked
the file passed to write if it already existed.
- gh-135645: Added supports_isolated_interpreters field to
sys.implementation.
- gh-135646: Raise consistent NameError exceptions in
annotationlib.ForwardRef.evaluate()
- gh-135557: Fix races on heapq updates and list reads on the
free threaded build.
- gh-119180: Only fetch globals and locals if necessary in
annotationlib.get_annotations()
- gh-135561: Fix a crash on DEBUG builds when an HACL* HMAC
routine fails. Patch by Bénédikt Tran.
- gh-135487: Fix reprlib.Repr.repr_int() when given integers
with more than sys.get_int_max_str_digits() digits. Patch
by Bénédikt Tran.
- gh-135335: multiprocessing: Flush stdout and stderr after
preloading modules in the forkserver.
- gh-135069: Fix the “Invalid error handling” exception in
encodings.idna.IncrementalDecoder to correctly replace the
errors parameter.
- gh-130662: +Accept leading zeros in precision and width
fields for +:class:Decimal formatting, for example
format(Decimal(1.25), '.016f').
- gh-130662: Accept leading zeros in precision and
width fields for Fraction formatting, for example
format(Fraction(1, 3), '.016f').
- gh-87790: Support underscore and comma as thousands
separators in the fractional part for Fractions
formatting. Patch by Sergey B Kirpichev.
- gh-87790: Support underscore and comma as thousands
separators in the fractional part for Decimals
formatting. Patch by Sergey B Kirpichev.
- gh-130664: Handle corner-case for Fractions formatting:
treat zero-padding (preceding the width field by a zero
('0') character) as an equivalent to a fill character of
'0' with an alignment type of '=', just as in case of
floats.
- Documentation
- gh-136155: EPUB builds are fixed by excluding
non-XHTML-compatible tags.
- Core and Builtins
- gh-109700: Fix memory error handling in
PyDict_SetDefault().
- gh-78465: Fix error message for cls.__new__(cls, ...) where
cls is not instantiable builtin or extension type (with
tp_new set to NULL).
- gh-129958: Differentiate between t-strings and f-strings
in syntax error for newlines in format specifiers of
single-quoted interpolated strings.
- gh-135871: Non-blocking mutex lock attempts now return
immediately when the lock is busy instead of briefly
spinning in the free threading build.
- gh-135106: Restrict the trashcan mechanism to GCed objects
and untrack them while in the trashcan to prevent the GC
and trashcan mechanisms conflicting.
- gh-135607: Fix potential weakref races in an objects
destructor on the free threaded build.
- gh-135608: Fix a crash in the JIT involving attributes of
modules.
- gh-135543: Emit sys.remote_exec audit event
when sys.remote_exec() is called and migrate
remote_debugger_script to cpython.remote_debugger_script.
- gh-134280: Disable constant folding for ~ with a boolean
argument. This moves the deprecation warning from compile
time to runtime.
- C API
- gh-135906: Fix compilation errors when compiling the
internal headers with a C++ compiler.
- Build
- gh-134273: Add support for configuring compiler flags for
the JIT with CFLAGS_JIT
-------------------------------------------------------------------
Wed Jul 2 13:14:28 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Add bsc1243155-sphinx-non-determinism.patch (bsc#1243155) to
generate ids for audit_events using docname (reproducible
builds).
-------------------------------------------------------------------
Tue Jul 1 08:24:53 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>

View File

@@ -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.14.0~b3
%define tarversion 3.14.0b3
Version: 3.14.0~b4
%define tarversion 3.14.0b4
%define tarname Python-%{tarversion}
Release: 0
Summary: Python 3 Interpreter

View File

@@ -2,9 +2,11 @@
Lib/test/test_capi/test_mem.py | 1 +
1 file changed, 1 insertion(+)
--- a/Lib/test/test_capi/test_mem.py
+++ b/Lib/test/test_capi/test_mem.py
@@ -114,6 +114,7 @@ class PyMemDebugTests(unittest.TestCase)
Index: Python-3.14.0b4/Lib/test/test_capi/test_mem.py
===================================================================
--- Python-3.14.0b4.orig/Lib/test/test_capi/test_mem.py 2025-07-09 07:53:00.072386821 +0200
+++ Python-3.14.0b4/Lib/test/test_capi/test_mem.py 2025-07-09 07:55:44.206338886 +0200
@@ -114,6 +114,7 @@
def test_pyobject_forbidden_bytes_is_freed(self):
self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed')