diff --git a/py314.patch b/py314.patch new file mode 100644 index 0000000..21d3d64 --- /dev/null +++ b/py314.patch @@ -0,0 +1,50 @@ +Index: twisted-25.5.0/src/twisted/internet/asyncioreactor.py +=================================================================== +--- twisted-25.5.0.orig/src/twisted/internet/asyncioreactor.py ++++ twisted-25.5.0/src/twisted/internet/asyncioreactor.py +@@ -9,7 +9,7 @@ asyncio-based reactor implementation. + + import errno + import sys +-from asyncio import AbstractEventLoop, get_event_loop ++from asyncio import AbstractEventLoop, get_running_loop, new_event_loop, set_event_loop + from typing import Dict, Optional, Type + + from zope.interface import implementer +@@ -47,7 +47,11 @@ class AsyncioSelectorReactor(PosixReacto + + def __init__(self, eventloop: Optional[AbstractEventLoop] = None): + if eventloop is None: +- _eventloop: AbstractEventLoop = get_event_loop() ++ try: ++ _eventloop: AbstractEventLoop = get_running_loop() ++ except RuntimeError: ++ _eventloop: AbstractEventLoop = new_event_loop() ++ set_event_loop(_eventloop) + else: + _eventloop = eventloop + +Index: twisted-25.5.0/src/twisted/web/test/test_webclient.py +=================================================================== +--- twisted-25.5.0.orig/src/twisted/web/test/test_webclient.py ++++ twisted-25.5.0/src/twisted/web/test/test_webclient.py +@@ -5,7 +5,8 @@ + Tests L{twisted.web.client} helper APIs + """ + +- ++import sys ++from unittest import SkipTest + from urllib.parse import urlparse + + from twisted.trial import unittest +@@ -23,6 +24,9 @@ class URLJoinTests(unittest.TestCase): + resulting URL if neither the base nor the new path include a fragment + identifier. + """ ++ if sys.version_info[1] == 14: ++ raise SkipTest("https://github.com/twisted/twisted/issues/12427") ++ + self.assertEqual( + client._urljoin(b"http://foo.com/bar", b"/quux"), b"http://foo.com/quux" + ) diff --git a/python-Twisted.changes b/python-Twisted.changes index f417575..12a308a 100644 --- a/python-Twisted.changes +++ b/python-Twisted.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Sep 26 09:06:02 UTC 2025 - Markéta Machová + +- Update to 25.5.0 + * twisted.internet.interfaces.IReactorMulticast now accept IPv6 + literals and allow for IPv6 multicast. + * TCP throughput when sending data is slightly faster. + * twisted.trial.unittest.TestCase.defer* methods were removed and + converted to private methods. + * Deprecations and removals in twisted.internet.defer + * twisted.conch.client.direct.SSHClientTransport.verifyHostKey no + longer crashes with an encoding error while attempting to verify + the peer's IP address. + * The twisted.web.websockets module has been added, adding a + websockets server and client based on the wsproto library. +- Add py314.patch to fix or skip tests failing with Python 3.14 + ------------------------------------------------------------------- Tue Aug 12 12:32:55 UTC 2025 - Markéta Machová diff --git a/python-Twisted.spec b/python-Twisted.spec index 24c4b1a..664e3a8 100644 --- a/python-Twisted.spec +++ b/python-Twisted.spec @@ -1,7 +1,7 @@ # # spec file for package python-Twisted # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 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: 24.10.0 +Version: 25.5.0 Release: 0 Summary: An asynchronous networking framework written in Python License: MIT @@ -49,6 +49,8 @@ Patch3: 1521_delegate_parseqs_stdlib_bpo42967.patch Patch5: 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 BuildRequires: %{python_module hatch-fancy-pypi-readme} BuildRequires: %{python_module hatchling} BuildRequires: %{python_module incremental >= 24.7.0} diff --git a/remove-dependency-version-upper-bounds.patch b/remove-dependency-version-upper-bounds.patch index f0852c0..8191452 100644 --- a/remove-dependency-version-upper-bounds.patch +++ b/remove-dependency-version-upper-bounds.patch @@ -1,7 +1,7 @@ -Index: twisted-24.10.0/pyproject.toml +Index: twisted-25.5.0/pyproject.toml =================================================================== ---- twisted-24.10.0.orig/pyproject.toml -+++ twisted-24.10.0/pyproject.toml +--- twisted-25.5.0.orig/pyproject.toml ++++ twisted-25.5.0/pyproject.toml @@ -97,8 +97,8 @@ serial = [ ] @@ -12,4 +12,4 @@ Index: twisted-24.10.0/pyproject.toml + "priority >= 1.1.0", ] - all-non-platform = [ + websocket = [ diff --git a/skip_MultiCast.patch b/skip_MultiCast.patch index 85e4709..a07ea9a 100644 --- a/skip_MultiCast.patch +++ b/skip_MultiCast.patch @@ -2,21 +2,21 @@ src/twisted/test/test_udp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -Index: twisted-24.3.0/src/twisted/test/test_udp.py +Index: twisted-25.5.0/src/twisted/test/test_udp.py =================================================================== ---- twisted-24.3.0.orig/src/twisted/test/test_udp.py -+++ twisted-24.3.0/src/twisted/test/test_udp.py -@@ -8,7 +8,7 @@ Tests for implementations of L{IReactorU - - - import os +--- 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 ( + inet_pton, + socket, + ) -from unittest import skipIf +from unittest import skipIf, SkipTest from twisted.internet import defer, error, interfaces, protocol, reactor, udp - from twisted.internet.defer import Deferred, gatherResults, maybeDeferred -@@ -578,6 +578,7 @@ class MulticastTests(TestCase): - skip = "This reactor does not support multicast" + from twisted.internet.address import IPv4Address, IPv6Address +@@ -638,6 +638,7 @@ class MulticastTests(TestCase): + wrongAddressFamily: str = "::1" def setUp(self): + raise SkipTest("Multicast networking doesn't work with OBS") diff --git a/twisted-24.10.0.tar.gz b/twisted-24.10.0.tar.gz deleted file mode 100644 index 7fdb4a3..0000000 --- a/twisted-24.10.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02951299672595fea0f70fa2d5f7b5e3d56836157eda68859a6ad6492d36756e -size 3525999 diff --git a/twisted-25.5.0.tar.gz b/twisted-25.5.0.tar.gz new file mode 100644 index 0000000..5c24210 --- /dev/null +++ b/twisted-25.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1deb272358cb6be1e3e8fc6f9c8b36f78eb0fa7c2233d2dbe11ec6fee04ea316 +size 3545725