Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Twisted for openSUSE:Factory checked in at 2026-05-12 19:26:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Twisted (Old) and /work/SRC/openSUSE:Factory/.python-Twisted.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Twisted" Tue May 12 19:26:03 2026 rev:78 rq:1352593 version:26.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Twisted/python-Twisted.changes 2026-01-15 16:43:39.145785663 +0100 +++ /work/SRC/openSUSE:Factory/.python-Twisted.new.1966/python-Twisted.changes 2026-05-12 19:26:07.845750486 +0200 @@ -1,0 +2,61 @@ +Tue May 12 04:51:36 UTC 2026 - Steve Kowalik <[email protected]> + +- Update to 26.4.0: + ## Security + * Prevent a Denial of Service (DoS) attack via resource exhaustion during + DNS name decompression. (CVE-2026-42304) + ## Features + * twisted.internet.ssl.CertificateOptions has a new constructor argument, + contextForServerName, which takes a callback that will get invoked when a + client sends a server name indication, with the sent servername, and + returns a new OpenSSL.SSL.Context that the connection will switch to. + * twisted.internet.endpoints.serverFromString now supports the tls endpoint + type, which allows you to do twist web + --listen=tls:.../certbot-dir/config/live pointed at a certbot live + configuration directory and have your certbot certificates automatically + discovered and served appropriately. + * twisted.internet.reactor now has type annotations and will appear to be + an object of an appropriate type, allowing for idiomatic common usages + with correct type information. + * twisted.conch.ssh.SSHUserAuthServer now supports the security key ssh + types "[email protected]" and + "[email protected]" and extracting the application property from + these new key types. + ## Bugfixes + * twisted.mail.smtp will now return a meaningful Failure when TLS + validation fails. + * TLS version range constraints passed to + twisted.internet.ssl.CertificateOptions are now properly respected rather + than excluding the version being passed as the desired constraint. + * A potential reference cycle that might cause intermittent memory spikes + while using twisted.internet.defer.inlineCallbacks was removed. + * Trial no longer emits the error RuntimeWarning: TestResult has no + addDuration method when running PyUnit tests. + * twisted.python.rebuild.rebuild() now handles changes to sys.modules + gracefully. Prior to the change, it could possibly raise a "dictionary + changed size during iteration" error if the module list changed. + * twisted.internet.protocol.ReconnectingClientFactory: Don't multiply by + factor for initial delay, but use initialDelay directly. + * twisted.internet.ssl and twisted.protocols.tls no longer mutate the + pyOpenSSL context after creating pyOpenSSL connections, maintaining + compatibility with an upcoming version of pyOpenSSL and increasing + reliability. + * twisted.internet.testing.MemoryReactor.callWhenRunning now invokes the + callback immediately, if already started. + * Twisted now correctly detects EOF on OpenSSL 4. + ## Deprecations and Removals + * Support for the obsolete TLS "Next Protocol Negotiation" has been removed + from twisted.protocols.tls. + * Remove support for python3.8. +- Dropped patches: + * no-test_successResultOfWithFailureHasTraceback.patch, no longer required + * py314.patch, merged upstream + * createElement.patch, merged upstream +- Rebased patches: + * skip_MultiCast.patch + * 1521_delegate_parseqs_stdlib_bpo42967.patch + * no-cython_test_exception_raiser.patch + * remove-dependency-version-upper-bounds.patch +- Drop unneeded BuildRequires on setuptools and wheel. + +------------------------------------------------------------------- Old: ---- createElement.patch no-test_successResultOfWithFailureHasTraceback.patch py314.patch twisted-25.5.0.tar.gz New: ---- twisted-26.4.0.tar.gz ----------(Old B)---------- Old: * py314.patch, merged upstream * createElement.patch, merged upstream - Rebased patches: Old:- Dropped patches: * no-test_successResultOfWithFailureHasTraceback.patch, no longer required * py314.patch, merged upstream Old: * no-test_successResultOfWithFailureHasTraceback.patch, no longer required * py314.patch, merged upstream * createElement.patch, merged upstream ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Twisted.spec ++++++ --- /var/tmp/diff_new_pack.muU2o3/_old 2026-05-12 19:26:09.021799228 +0200 +++ /var/tmp/diff_new_pack.muU2o3/_new 2026-05-12 19:26:09.025799393 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-Twisted # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -31,7 +31,7 @@ %endif %{?sle15_python_module_pythons} Name: python-Twisted%{psuffix} -Version: 25.5.0 +Version: 26.4.0 Release: 0 Summary: An asynchronous networking framework written in Python License: MIT @@ -39,26 +39,18 @@ Source0: https://files.pythonhosted.org/packages/source/t/twisted/twisted-%{version}.tar.gz Source99: python-Twisted.rpmlintrc Patch0: skip_MultiCast.patch -# PATCH-FIX-UPSTREAM no-test_successResultOfWithFailureHasTraceback.patch https://twistedmatrix.com/trac/ticket/9665 [email protected] -# skip over the test test_successResultOfWithFailureHasTraceback -Patch2: no-test_successResultOfWithFailureHasTraceback.patch # PATCH-FIX-UPSTREAM 1521_delegate_parseqs_stdlib_bpo42967.patch https://twistedmatrix.com/trac/ticket/10096 [email protected] # overcome incompatibility with the solution for bpo#42967. -Patch3: 1521_delegate_parseqs_stdlib_bpo42967.patch +Patch1: 1521_delegate_parseqs_stdlib_bpo42967.patch # PATCH-FIX-OPENSUSE We don't want to package yet another module, and it is easily skippable -Patch5: no-cython_test_exception_raiser.patch +Patch2: no-cython_test_exception_raiser.patch # PATCH-FIX-OPENSUSE remove-dependency-version-upper-bounds.patch boo#1190036 -- run with h2 >= 4.0.0 and priority >= 2.0 -Patch6: remove-dependency-version-upper-bounds.patch -# PATCH-FIX-UPSTREAM https://github.com/twisted/twisted/issues/12430 Add support for Python 3.14 -Patch7: py314.patch -# PATCH-FIX-UPSTREAM https://github.com/twisted/twisted/pull/12551 use createElement in the test rather than instantiating Element -Patch8: createElement.patch +Patch3: remove-dependency-version-upper-bounds.patch +BuildRequires: %{python_module base >= 3.9} BuildRequires: %{python_module hatch-fancy-pypi-readme} BuildRequires: %{python_module hatchling} BuildRequires: %{python_module incremental >= 24.7.0} BuildRequires: %{python_module pip} -BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: git-core BuildRequires: python-rpm-macros @@ -66,13 +58,13 @@ Requires: python-Twisted-tls = %{version} BuildArch: noarch # SECTION install requires -Requires: python-Automat >= 0.8.0 -Requires: python-attrs >= 19.2.0 +Requires: python-Automat >= 24.8.0 +Requires: python-attrs >= 22.2 Requires: python-constantly >= 15.1 Requires: python-hyperlink >= 17.1.1 Requires: python-incremental >= 24.7.0 -Requires: python-typing_extensions >= 3.6.5 -Requires: python-zope.interface >= 4.4.2 +Requires: python-typing_extensions >= 4.2 +Requires: python-zope.interface >= 5 # /SECTION %if %{with libalternatives} BuildRequires: alts @@ -110,7 +102,7 @@ Summary: TLS support for Twisted Requires: python-Twisted = %{version} Requires: python-idna >= 2.4 -Requires: python-pyOpenSSL >= 16.0.0 +Requires: python-pyOpenSSL >= 25.2 Requires: python-service_identity >= 18.1.0 %description tls @@ -123,8 +115,8 @@ Summary: Conch for Twisted Requires: python-Twisted = %{version} Requires: python-appdirs >= 1.4.0 -Requires: python-bcrypt >= 3.0.0 -Requires: python-cryptography >= 2.6 +Requires: python-bcrypt >= 3.2.1 +Requires: python-cryptography >= 38 %description conch Twisted is an extensible framework for Python programming, with special focus @@ -154,7 +146,7 @@ %package http2 Summary: HTTP/2 support for Twisted Requires: python-Twisted = %{version} -Requires: python-h2 >= 3.0 +Requires: python-h2 >= 3.2 Requires: python-priority >= 1.1.0 %description http2 ++++++ 1521_delegate_parseqs_stdlib_bpo42967.patch ++++++ --- /var/tmp/diff_new_pack.muU2o3/_old 2026-05-12 19:26:09.053800553 +0200 +++ /var/tmp/diff_new_pack.muU2o3/_new 2026-05-12 19:26:09.057800720 +0200 @@ -9,11 +9,11 @@ 2 files changed, 2 insertions(+), 28 deletions(-) create mode 100644 src/twisted/web/newsfragments/10096.bugfix -Index: twisted-24.10.0/src/twisted/web/http.py +Index: twisted-26.4.0/src/twisted/web/http.py =================================================================== ---- twisted-24.10.0.orig/src/twisted/web/http.py -+++ twisted-24.10.0/src/twisted/web/http.py -@@ -125,6 +125,7 @@ from urllib.parse import ( +--- twisted-26.4.0.orig/src/twisted/web/http.py ++++ twisted-26.4.0/src/twisted/web/http.py +@@ -118,6 +118,7 @@ from urllib.parse import ( ParseResultBytes, unquote_to_bytes as unquote, urlparse as _urlparse, @@ -21,7 +21,7 @@ ) from zope.interface import Attribute, Interface, implementer, provider -@@ -371,34 +372,6 @@ def urlparse(url): +@@ -363,34 +364,6 @@ def urlparse(url): return ParseResultBytes(scheme, netloc, path, params, query, fragment) @@ -56,10 +56,10 @@ def datetimeToString(msSinceEpoch=None): """ Convert seconds since epoch to HTTP datetime string. -Index: twisted-24.10.0/src/twisted/web/newsfragments/10096.bugfix +Index: twisted-26.4.0/src/twisted/web/newsfragments/10096.bugfix =================================================================== --- /dev/null -+++ twisted-24.10.0/src/twisted/web/newsfragments/10096.bugfix ++++ twisted-26.4.0/src/twisted/web/newsfragments/10096.bugfix @@ -0,0 +1 @@ +delegate to urllib.parse:parse_qs in twisted.web.http:parse_qs to avoid CVE-2021-23336 and the associated CI failures ++++++ no-cython_test_exception_raiser.patch ++++++ --- /var/tmp/diff_new_pack.muU2o3/_old 2026-05-12 19:26:09.089802045 +0200 +++ /var/tmp/diff_new_pack.muU2o3/_new 2026-05-12 19:26:09.093802212 +0200 @@ -1,9 +1,9 @@ -diff --git a/src/twisted/test/test_failure.py b/src/twisted/test/test_failure.py -index a9e920c10e..de9c499972 100644 ---- a/src/twisted/test/test_failure.py -+++ b/src/twisted/test/test_failure.py -@@ -19,7 +19,8 @@ from types import TracebackType - from typing import Any, Generator, cast +Index: twisted-26.4.0/src/twisted/test/test_failure.py +=================================================================== +--- twisted-26.4.0.orig/src/twisted/test/test_failure.py ++++ twisted-26.4.0/src/twisted/test/test_failure.py +@@ -20,7 +20,8 @@ from types import TracebackType + from typing import Any, cast from unittest import skipIf -from cython_test_exception_raiser import raiser ++++++ remove-dependency-version-upper-bounds.patch ++++++ --- /var/tmp/diff_new_pack.muU2o3/_old 2026-05-12 19:26:09.125803537 +0200 +++ /var/tmp/diff_new_pack.muU2o3/_new 2026-05-12 19:26:09.129803703 +0200 @@ -1,8 +1,8 @@ -Index: twisted-25.5.0/pyproject.toml +Index: twisted-26.4.0/pyproject.toml =================================================================== ---- twisted-25.5.0.orig/pyproject.toml -+++ twisted-25.5.0/pyproject.toml -@@ -97,8 +97,8 @@ serial = [ +--- twisted-26.4.0.orig/pyproject.toml ++++ twisted-26.4.0/pyproject.toml +@@ -96,8 +96,8 @@ serial = [ ] http2 = [ ++++++ skip_MultiCast.patch ++++++ --- /var/tmp/diff_new_pack.muU2o3/_old 2026-05-12 19:26:09.145804367 +0200 +++ /var/tmp/diff_new_pack.muU2o3/_new 2026-05-12 19:26:09.149804532 +0200 @@ -2,11 +2,11 @@ src/twisted/test/test_udp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -Index: twisted-25.5.0/src/twisted/test/test_udp.py +Index: twisted-26.4.0/src/twisted/test/test_udp.py =================================================================== ---- twisted-25.5.0.orig/src/twisted/test/test_udp.py -+++ twisted-25.5.0/src/twisted/test/test_udp.py -@@ -22,7 +22,7 @@ from socket import ( +--- twisted-26.4.0.orig/src/twisted/test/test_udp.py ++++ twisted-26.4.0/src/twisted/test/test_udp.py +@@ -23,7 +23,7 @@ from socket import ( inet_pton, socket, ) @@ -15,7 +15,7 @@ from twisted.internet import defer, error, interfaces, protocol, reactor, udp from twisted.internet.address import IPv4Address, IPv6Address -@@ -638,6 +638,7 @@ class MulticastTests(TestCase): +@@ -665,6 +665,7 @@ class MulticastTests(TestCase): wrongAddressFamily: str = "::1" def setUp(self): ++++++ twisted-25.5.0.tar.gz -> twisted-26.4.0.tar.gz ++++++ ++++ 25911 lines of diff (skipped)
