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 2021-03-12 13:30:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Twisted (Old)
 and      /work/SRC/openSUSE:Factory/.python-Twisted.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Twisted"

Fri Mar 12 13:30:22 2021 rev:45 rq:878146 version:21.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Twisted/python-Twisted.changes    
2021-03-02 15:26:10.521803684 +0100
+++ /work/SRC/openSUSE:Factory/.python-Twisted.new.2401/python-Twisted.changes  
2021-03-12 13:30:32.830092508 +0100
@@ -1,0 +2,40 @@
+Wed Mar 10 06:11:42 UTC 2021 - Steve Kowalik <[email protected]>
+
+- Update to 21.2.0:
+  * Features
+    + The enableSessions argument to twisted.internet.ssl.CertificateOptions 
now
+    + actually enables/disables OpenSSL's session cache. Also, due to
+    + session-related bugs, it defaults to False. (#9583)
+    + twisted.internet.defer.inlineCallbacks and ensureDeferred will now 
associate a contextvars.Context with the coroutines they run, meaning that 
ContextVar objects will maintain their value within the same coroutine, 
similarly to asyncio Tasks. This functionality requires Python 3.7+, or the 
contextvars PyPI backport to be installed for Python 3.5-3.6. (#9719, #9826)
+    + twisted.internet.defer.Deferred.fromCoroutine has been added. This is 
similar to the existing ensureDeferred function, but is named more consistently 
inside Twisted and does not pass through Deferreds. (#9825)
+    + trial now allows the @unittest.skipIf decorator to specify that an 
entire test class should be skipped. (#9829)
+    + The twisted.python.deprecate.deprecatedKeywordParameter decorator can be 
used to mark a keyword paramater of a function or method as deprecated. (#9844)
+    + Projects using Twisted can now perform type checking against a Twisted
+    + installation, for example using mypy. (#9908)
+    + twisted.python.util.InsensitiveDict now fully implements MutableMapping. 
(#9919)
+    + Python 3.8 is now tested and supported. (#9955)
+    + Support a coroutine function in twisted.internet.task.react (#9974)
+    + PyPy 3.7 is now tested and supported. (#10093)
+  * Bugfixes
+    + twisted.web.twcgi.CGIProcessProtocol.processEnded(...) now handles an 
already-finished request, for example when request.connectionLost(...) was 
called previously. (#9468)
+    + Twisted's dependency on PyHamcrest has been moved from the base package 
to the new "test" extra. Consequently the test extra must be installed for 
Twisted's test suite to pass. (#9509)
+    + Fixed serialization of timedelta, date, and time objects in 
twisted.spread. (#9716)
+    + twisted.internet.asyncioreactor.AsyncioSelectorReactor now raises an 
exception if instantiated with an event loop which is not compatible with 
asyncio.SelectorEventLoop. This fixes the AsyncioSelectorReactor in Python 3.8+ 
on Windows, where in bp-34687 the default Windows asyncio event loop was 
changed to ProactorEventLoop. Applications that use AsyncioSelectorReactor on 
Windows with Python 3.8+ must call 
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) before 
instantiating and running AsyncioSelectorReactor. (#9766)
+    + twisted.internet.process.registerReapProcessHandler and 
._BaseProcess.reapProcess will no longer raise a TypeError when processing a 
None PID (#9775)
+    + INotify will close its file descriptor if a directory is automatically 
removed by twisted from the watchlist because it's deleted, avoiding orphaned 
filedescriptors. (#9777)
+    + DelayedCall.reset() is now working properly with asyncioreactor (#9780)
+    + AsyncioSelectorReactor.seconds() now correctly returns an epoch time. 
(#9787)
+    + The _connDone parameter has been removed from 
twisted.internet.abstract.FileDescriptor.loseConnection()'s signature in order 
to match the signature in the base class 
twisted.internet._newtls.ConnectionMixin loseConnection(). (#9849)
+    + The Gtk3 reactor now runs on Wayland-only sessions (#9904)
+    + Descriptive error messages from twisted.internet.error are now present 
when running with 'python -OO'. (#9918)
+    + Comparator methods such as eq() now always return NotImplemented for 
uncomparable types. (#9919)
+    + When installing Twisted it now requires a minimum Python 3.5.4 version 
to match the version used with automated testing. This is the minimum Python 
version that we know that Twisted works with. (#10098)
+- Drop patches no-pygtkcompat.patch, python-38-hmac-digestmod.patch,
+  python-38-no-cgi-parseqs.patch, twisted-pr1369-remove-pyopenssl-npn.patch,
+  twisted-pr1487-increase-ffdh-keysize.patch and
+  test-mktime-invalid-tm_isdst.patch as they have been merged.
+- Refresh other patches.
+- Add no-cython_test_exception_raiser.patch to avoid another dependency.
+- Update URL and make use of sitelib, not sitearch macros
+
+-------------------------------------------------------------------

Old:
----
  Twisted-20.3.0.tar.bz2
  no-pygtkcompat.patch
  python-38-hmac-digestmod.patch
  python-38-no-cgi-parseqs.patch
  test-mktime-invalid-tm_isdst.patch
  twisted-pr1369-remove-pyopenssl-npn.patch
  twisted-pr1487-increase-ffdh-keysize.patch

New:
----
  Twisted-21.2.0.tar.gz
  no-cython_test_exception_raiser.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Twisted.spec ++++++
--- /var/tmp/diff_new_pack.xal84a/_old  2021-03-12 13:30:33.722093759 +0100
+++ /var/tmp/diff_new_pack.xal84a/_new  2021-03-12 13:30:33.726093765 +0100
@@ -20,30 +20,23 @@
 %define modname Twisted
 %define skip_python2 1
 Name:           python-Twisted
-Version:        20.3.0
+Version:        21.2.0
 Release:        0
 Summary:        An asynchronous networking framework written in Python
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://twistedmatrix.com/
-Source:         
https://files.pythonhosted.org/packages/source/T/Twisted/%{modname}-%{version}.tar.bz2
-Patch1:         skip_MultiCast.patch
-Patch2:         no-pygtkcompat.patch
-Patch3:         test-mktime-invalid-tm_isdst.patch
-Patch5:         python-38-hmac-digestmod.patch
-Patch6:         python-38-no-cgi-parseqs.patch
-Patch7:         true-binary.patch
+Source:         
https://files.pythonhosted.org/packages/source/T/Twisted/%{modname}-%{version}.tar.gz
+Patch0:         skip_MultiCast.patch
+Patch1:         true-binary.patch
 # PATCH-FIX-UPSTREAM no-test_successResultOfWithFailureHasTraceback.patch 
https://twistedmatrix.com/trac/ticket/9665 [email protected]
 # skip over the test test_successResultOfWithFailureHasTraceback
-Patch8:         no-test_successResultOfWithFailureHasTraceback.patch
-# PATCH-FIX-UPSTREAM gh#twisted/twisted#1369 
https://twistedmatrix.com/trac/ticket/9928
-Patch9:         twisted-pr1369-remove-pyopenssl-npn.patch
-# PATCH-FIX-UPSTRAM gh#twisted/twisted#1487 
https://twistedmatrix.com/trac/ticket/10061
-Patch10:        twisted-pr1487-increase-ffdh-keysize.patch
+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.
-Patch0:         1521_delegate_parseqs_stdlib_bpo42967.patch
-BuildRequires:  %{python_module Automat >= 0.3.0}
+Patch3:         1521_delegate_parseqs_stdlib_bpo42967.patch
+# We don't want to package yet another module, and it is easily skippable
+Patch4:         no-cython_test_exception_raiser.patch
+BuildRequires:  %{python_module Automat >= 0.8.0}
 BuildRequires:  %{python_module PyHamcrest >= 1.9.0}
 BuildRequires:  %{python_module appdirs >= 1.4.0}
 BuildRequires:  %{python_module attrs >= 19.2.0}
@@ -66,8 +59,9 @@
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module zope.interface >= 4.4.2}
 BuildRequires:  fdupes
+BuildRequires:  git-core
 BuildRequires:  python-rpm-macros
-Requires:       python-Automat >= 0.3.0
+Requires:       python-Automat >= 0.8.0
 Requires:       python-PyHamcrest >= 1.9.0
 Requires:       python-appdirs >= 1.4.0
 Requires:       python-attrs >= 19.2.0
@@ -93,7 +87,6 @@
 
 %package -n %{name}-doc
 Summary:        An asynchronous networking framework written in Python - 
Documentation
-Group:          Development/Languages/Python
 
 %description -n %{name}-doc
 An extensible framework for Python programming, with special focus
@@ -137,7 +130,7 @@
 export OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file
 export OPENSSL_CONF=''
 
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} $python -m 
twisted.trial twisted
+%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python -m 
twisted.trial twisted
 
 %post
 # these were master alternatives until Dec 2020. Remove before the install as 
slave links
@@ -171,7 +164,7 @@
 %python_alternative %{_mandir}/man1/pyhtmlizer.1%{?ext_man}
 %python_alternative %{_mandir}/man1/tkconch.1%{?ext_man}
 %python_alternative %{_mandir}/man1/trial.1%{?ext_man}
-%{python_sitearch}/twisted
-%{python_sitearch}/Twisted-%{version}*-info
+%{python_sitelib}/twisted
+%{python_sitelib}/Twisted-%{version}*-info
 
 %changelog

++++++ 1521_delegate_parseqs_stdlib_bpo42967.patch ++++++
--- /var/tmp/diff_new_pack.xal84a/_old  2021-03-12 13:30:33.750093798 +0100
+++ /var/tmp/diff_new_pack.xal84a/_new  2021-03-12 13:30:33.750093798 +0100
@@ -9,28 +9,22 @@
  2 files changed, 2 insertions(+), 26 deletions(-)
  create mode 100644 src/twisted/web/newsfragments/10096.bugfix
 
---- a/src/twisted/web/http.py
-+++ b/src/twisted/web/http.py
-@@ -70,12 +70,12 @@ from io import BytesIO as StringIO
- 
- try:
-     from urlparse import (
--        ParseResult as ParseResultBytes, urlparse as _urlparse)
-+        ParseResult as ParseResultBytes, urlparse as _urlparse, parse_qs)
-     from urllib import unquote
-     from cgi import parse_header as _parseHeader
- except ImportError:
-     from urllib.parse import (
--        ParseResultBytes, urlparse as _urlparse, unquote_to_bytes as unquote)
-+        ParseResultBytes, urlparse as _urlparse, parse_qs)
- 
-     def _parseHeader(line):
-         # cgi.parse_header requires a str
-@@ -191,33 +191,6 @@ def urlparse(url):
+Index: Twisted-21.2.0/src/twisted/web/http.py
+===================================================================
+--- Twisted-21.2.0.orig/src/twisted/web/http.py
++++ Twisted-21.2.0/src/twisted/web/http.py
+@@ -110,6 +110,7 @@ from urllib.parse import (
+     ParseResultBytes,
+     urlparse as _urlparse,
+     unquote_to_bytes as unquote,
++    parse_qs,
+ )
+ 
+ from zope.interface import Attribute, Interface, implementer, provider
+@@ -261,31 +262,6 @@ def urlparse(url):
      return ParseResultBytes(scheme, netloc, path, params, query, fragment)
  
  
--
 -def parse_qs(qs, keep_blank_values=0, strict_parsing=0):
 -    """
 -    Like C{cgi.parse_qs}, but with support for parsing byte strings on Python 
3.
@@ -56,29 +50,29 @@
 -    return d
 -
 -
--
  def datetimeToString(msSinceEpoch=None):
      """
      Convert seconds since epoch to HTTP datetime string.
+Index: Twisted-21.2.0/src/twisted/web/newsfragments/10096.bugfix
+===================================================================
 --- /dev/null
-+++ b/src/twisted/web/newsfragments/10096.bugfix
++++ Twisted-21.2.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
---- a/src/twisted/web/server.py
-+++ b/src/twisted/web/server.py
-@@ -19,9 +19,9 @@ import copy
- import os
+Index: Twisted-21.2.0/src/twisted/web/server.py
+===================================================================
+--- Twisted-21.2.0.orig/src/twisted/web/server.py
++++ Twisted-21.2.0/src/twisted/web/server.py
+@@ -19,7 +19,7 @@ import os
  import re
- try:
--    from urllib import quote
-+    from urllib import quote, unquote_to_bytes as _unquote_to_bytes
- except ImportError:
--    from urllib.parse import quote as _quote
-+    from urllib.parse import quote as _quote, unquote_to_bytes as 
_unquote_to_bytes
- 
-     def quote(string, *args, **kwargs):
-         return _quote(
-@@ -37,7 +37,6 @@ from twisted.spread.pb import Copyable,
+ from html import escape
+ from typing import List, Optional
+-from urllib.parse import quote as _quote
++from urllib.parse import quote as _quote, unquote_to_bytes as 
_unquote_to_bytes
+ 
+ import zlib
+ from binascii import hexlify
+@@ -31,7 +31,6 @@ from twisted.spread.pb import Copyable,
  from twisted.internet import address, interfaces
  from twisted.internet.error import AlreadyCalled, AlreadyCancelled
  from twisted.web import iweb, http, util
@@ -86,12 +80,12 @@
  from twisted.python import reflect, failure, components
  from twisted import copyright
  from twisted.web import resource
-@@ -219,7 +218,7 @@ class Request(Copyable, http.Request, co
+@@ -213,7 +212,7 @@ class Request(Copyable, http.Request, co
  
          # Resource Identification
          self.prepath = []
--        self.postpath = list(map(unquote, self.path[1:].split(b'/')))
+-        self.postpath = list(map(unquote, self.path[1:].split(b"/")))
 +        self.postpath = [_unquote_to_bytes(v) for v in 
self.path[1:].split(b"/")]
  
          # Short-circuit for requests whose path is '*'.
-         if self.path == b'*':
+         if self.path == b"*":

++++++ no-cython_test_exception_raiser.patch ++++++
Index: Twisted-21.2.0/src/twisted/test/test_failure.py
===================================================================
--- Twisted-21.2.0.orig/src/twisted/test/test_failure.py
+++ Twisted-21.2.0/src/twisted/test/test_failure.py
@@ -22,7 +22,8 @@ from twisted.python import failure
 from twisted.trial.unittest import SynchronousTestCase
 
 
-from cython_test_exception_raiser import raiser
+#from cython_test_exception_raiser import raiser
+raiser = None
 
 
 def getDivisionFailure(*args, **kwargs):
++++++ no-test_successResultOfWithFailureHasTraceback.patch ++++++
--- /var/tmp/diff_new_pack.xal84a/_old  2021-03-12 13:30:33.778093838 +0100
+++ /var/tmp/diff_new_pack.xal84a/_new  2021-03-12 13:30:33.778093838 +0100
@@ -2,21 +2,22 @@
  src/twisted/conch/test/test_keys.py |    4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)
 
---- a/src/twisted/conch/test/test_keys.py
-+++ b/src/twisted/conch/test/test_keys.py
-@@ -6,6 +6,7 @@ Tests for L{twisted.conch.ssh.keys}.
- """
- 
- from __future__ import absolute_import, division
+Index: Twisted-21.2.0/src/twisted/conch/test/test_keys.py
+===================================================================
+--- Twisted-21.2.0.orig/src/twisted/conch/test/test_keys.py
++++ Twisted-21.2.0/src/twisted/conch/test/test_keys.py
+@@ -15,6 +15,7 @@ from twisted.python import randbytes
+ from twisted.python.filepath import FilePath
+ from twisted.python.reflect import requireModule
+ from twisted.trial import unittest
 +import unittest as pyunit
  
- from twisted.python.reflect import requireModule
  
-@@ -225,7 +226,8 @@ class KeyTests(unittest.TestCase):
+ cryptography = requireModule("cryptography")
+@@ -253,6 +254,8 @@ class KeyTests(unittest.TestCase):
          for k, v in data.items():
              self.assertEqual(privateKey.data()[k], v)
  
--
 +    @pyunit.skip('Upstream ticket https://twistedmatrix.com/trac/ticket/9665' 
+
 +                 ' has still not been resolved.')
      def test_fromOpenSSH(self):

++++++ skip_MultiCast.patch ++++++
--- /var/tmp/diff_new_pack.xal84a/_old  2021-03-12 13:30:33.794093860 +0100
+++ /var/tmp/diff_new_pack.xal84a/_new  2021-03-12 13:30:33.794093860 +0100
@@ -1,12 +1,21 @@
-Index: Twisted-19.7.0/src/twisted/test/test_udp.py
+Index: Twisted-21.2.0/src/twisted/test/test_udp.py
 ===================================================================
---- Twisted-19.7.0.orig/src/twisted/test/test_udp.py
-+++ Twisted-19.7.0/src/twisted/test/test_udp.py
-@@ -514,6 +514,7 @@ class MulticastTests(unittest.TestCase):
-         skip = "Does not work on Azure Pipelines"
+--- Twisted-21.2.0.orig/src/twisted/test/test_udp.py
++++ Twisted-21.2.0/src/twisted/test/test_udp.py
+@@ -9,7 +9,7 @@ Tests for implementations of L{IReactorU
+ 
+ import os
+ 
+-from unittest import skipIf
++from unittest import skipIf, SkipTest
+ from twisted.trial.unittest import TestCase
+ 
+ from twisted.internet.defer import Deferred, gatherResults, maybeDeferred
+@@ -522,6 +522,7 @@ class MulticastTests(TestCase):
+         skip = "This reactor does not support multicast"
  
      def setUp(self):
-+        raise unittest.SkipTest("Multicast networking doesn't work with OBS")
++        raise SkipTest("Multicast networking doesn't work with OBS")
          self.server = Server()
          self.client = Client()
          # multicast won't work if we listen over loopback, apparently

++++++ true-binary.patch ++++++
--- /var/tmp/diff_new_pack.xal84a/_old  2021-03-12 13:30:33.806093877 +0100
+++ /var/tmp/diff_new_pack.xal84a/_new  2021-03-12 13:30:33.806093877 +0100
@@ -1,22 +1,22 @@
-Index: Twisted-20.3.0/src/twisted/conch/test/test_ckeygen.py
+Index: Twisted-21.2.0/src/twisted/conch/test/test_ckeygen.py
 ===================================================================
---- Twisted-20.3.0.orig/src/twisted/conch/test/test_ckeygen.py
-+++ Twisted-20.3.0/src/twisted/conch/test/test_ckeygen.py
-@@ -66,7 +66,7 @@ class KeyGenTests(TestCase):
+--- Twisted-21.2.0.orig/src/twisted/conch/test/test_ckeygen.py
++++ Twisted-21.2.0/src/twisted/conch/test/test_ckeygen.py
+@@ -73,7 +73,7 @@ class KeyGenTests(TestCase):
  
      def _testrun(self, keyType, keySize=None, privateKeySubtype=None):
          filename = self.mktemp()
--        args = ['ckeygen', '-t', keyType, '-f', filename, '--no-passphrase']
-+        args = ['ckeygen-' + sys.version[:3], '-t', keyType, '-f', filename, 
'--no-passphrase']
+-        args = ["ckeygen", "-t", keyType, "-f", filename, "--no-passphrase"]
++        args = ["ckeygen-" + sys.version[:3], "-t", keyType, "-f", filename, 
"--no-passphrase"]
          if keySize is not None:
-             args.extend(['-b', keySize])
+             args.extend(["-b", keySize])
          if privateKeySubtype is not None:
-@@ -100,7 +100,7 @@ class KeyGenTests(TestCase):
+@@ -107,7 +107,7 @@ class KeyGenTests(TestCase):
      def test_runBadKeytype(self):
          filename = self.mktemp()
          with self.assertRaises(subprocess.CalledProcessError):
--            subprocess.check_call(['ckeygen', '-t', 'foo', '-f', filename])
-+            subprocess.check_call(['ckeygen-' + sys.version[:3], '-t', 'foo', 
'-f', filename])
- 
- 
+-            subprocess.check_call(["ckeygen", "-t", "foo", "-f", filename])
++            subprocess.check_call(["ckeygen-" + sys.version[:3], "-t", "foo", 
"-f", filename])
  
+     def test_enumrepresentation(self):
+         """

Reply via email to