diff --git a/asyncio.patch b/asyncio.patch new file mode 100644 index 0000000..691326a --- /dev/null +++ b/asyncio.patch @@ -0,0 +1,51 @@ +From: Benjamin Drung +Date: Thu, 15 Nov 2018 16:18:51 +0100 +Subject: [PATCH] Add support for Python 3.7 + +--- + tornado/gen.py | 3 +-- + tornado/queues.py | 1 - + tornado/test/asyncio_test.py | 3 ++- + 3 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/tornado/gen.py b/tornado/gen.py +index 99f9106..bdb32ff 100644 +--- a/tornado/gen.py ++++ b/tornado/gen.py +@@ -482,9 +482,8 @@ class WaitIterator(object): + self.current_future = done + self.current_index = self._unfinished.pop(done) + +- @coroutine + def __aiter__(self): +- raise Return(self) ++ return self + + def __anext__(self): + if self.done(): +diff --git a/tornado/queues.py b/tornado/queues.py +index 0041a80..141c539 100644 +--- a/tornado/queues.py ++++ b/tornado/queues.py +@@ -253,7 +253,6 @@ class Queue(object): + """ + return self._finished.wait(timeout) + +- @gen.coroutine + def __aiter__(self): + return _QueueIterator(self) + +diff --git a/tornado/test/asyncio_test.py b/tornado/test/asyncio_test.py +index d0e3f2b..ae9125f 100644 +--- a/tornado/test/asyncio_test.py ++++ b/tornado/test/asyncio_test.py +@@ -46,7 +46,8 @@ class AsyncIOLoopTest(AsyncTestCase): + if hasattr(asyncio, 'ensure_future'): + ensure_future = asyncio.ensure_future + else: +- ensure_future = asyncio.async ++ # async is a reserved word in Python 3.7 ++ ensure_future = getattr(asyncio, "async") + + x = yield ensure_future( + asyncio.get_event_loop().run_in_executor(None, lambda: 42)) diff --git a/openssl-cert-size.patch b/openssl-cert-size.patch new file mode 100644 index 0000000..027c659 --- /dev/null +++ b/openssl-cert-size.patch @@ -0,0 +1,95 @@ +From: =?utf-8?b?T25kxZllaiBOb3bDvQ==?= +Date: Thu, 27 Dec 2018 01:18:41 +0000 +Subject: Regenerate test crt + +Forwarded: https://github.com/tornadoweb/tornado/pull/2509 +--- + tornado/test/test.crt | 31 ++++++++++++++++++------------- + tornado/test/test.key | 40 ++++++++++++++++++++++++++-------------- + 2 files changed, 44 insertions(+), 27 deletions(-) + +diff --git a/tornado/test/test.crt b/tornado/test/test.crt +index 25538c8..ffc49b0 100644 +--- a/tornado/test/test.crt ++++ b/tornado/test/test.crt +@@ -1,15 +1,20 @@ + -----BEGIN CERTIFICATE----- +-MIICSDCCAbGgAwIBAgIJAN1oTowzMbkzMA0GCSqGSIb3DQEBBQUAMD0xCzAJBgNV +-BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRkwFwYDVQQKDBBUb3JuYWRvIFdl +-YiBUZXN0MB4XDTEwMDgyNTE4MjQ0NFoXDTIwMDgyMjE4MjQ0NFowPTELMAkGA1UE +-BhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExGTAXBgNVBAoMEFRvcm5hZG8gV2Vi +-IFRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALirW3mX4jbdFse2aZwW +-zszCJ1IsRDrzALpbvMYLLbIZqo+Z8v5aERKTRQpXFqGaZyY+tdwYy7X7YXcLtKqv +-jnw/MSeIaqkw5pROKz5aR0nkPLvcTmhJVLVPCLc8dFnIlu8aC9TrDhr90P+PzU39 +-UG7zLweA9zXKBuW3Tjo5dMP3AgMBAAGjUDBOMB0GA1UdDgQWBBRhJjMBYrzddCFr +-/0vvPyHMeqgo0TAfBgNVHSMEGDAWgBRhJjMBYrzddCFr/0vvPyHMeqgo0TAMBgNV +-HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAGP6GaxSfb21bikcqaK3ZKCC1sRJ +-tiCuvJZbBUFUCAzl05dYUfJZim/oWK+GqyUkUB8ciYivUNnn9OtS7DnlTgT2ws2e +-lNgn5cuFXoAGcHXzVlHG3yoywYBf3y0Dn20uzrlLXUWJAzoSLOt2LTaXvwlgm7hF +-W1q8SQ6UBshRw2X0 ++MIIDWzCCAkOgAwIBAgIUV4spou0CenmvKqa7Hml/MC+JKiAwDQYJKoZIhvcNAQEL ++BQAwPTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExGTAXBgNVBAoM ++EFRvcm5hZG8gV2ViIFRlc3QwHhcNMTgwOTI5MTM1NjQ1WhcNMjgwOTI2MTM1NjQ1 ++WjA9MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEZMBcGA1UECgwQ ++VG9ybmFkbyBXZWIgVGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ++AKT0LdyI8tW5uwP3ahE8BFSz+j3SsKBDv/0cKvqxVVE6sLEST2s3HjArZvIIG5sb ++iBkWDrqnZ6UKDvB4jlobLGAkepxDbrxHWxK53n0C28XXGLqJQ01TlTZ5rpjttMeg ++5SKNjHbxpOvpUwwQS4br4WjZKKyTGiXpFkFUty+tYVU35/U2yyvreWHmzpHx/25t ++H7O2RBARVwJYKOGPtlH62lQjpIWfVfklY4Ip8Hjl3B6rBxPyBULmVQw0qgoZn648 ++oa4oLjs0wnYBz01gVjNMDHej52SsB/ieH7W1TxFMzqOlcvHh41uFbQJPgcXsruSS ++9Z4twzSWkUp2vk/C//4Sz38CAwEAAaNTMFEwHQYDVR0OBBYEFLf8fQ5+u8sDWAd3 ++r5ZjZ5MmDWJeMB8GA1UdIwQYMBaAFLf8fQ5+u8sDWAd3r5ZjZ5MmDWJeMA8GA1Ud ++EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBADkkm3pIb9IeqVNmQ2uhQOgw ++UwyToTYUHNTb/Nm5lzBTBqC8gbXAS24RQ30AB/7G115Uxeo+YMKfITxm/CgR+vhF ++F59/YrzwXj+G8bdbuVl/UbB6f9RSp+Zo93rUZAtPWr77gxLUrcwSRzzDwxFjC2nC ++6eigbkvt1OQY775RwnFAt7HKPclE0Out+cGJIboJuO1f3r57ZdyFH0GzbZEff/7K ++atGXohijWJjYvU4mk0KFHORZrcBpsv9cfkFbmgVmiRwxRJ1tLauHM3Ne+VfqYE5M ++4rTStSyz3ASqVKJ2iFMQueNR/tUOuDlfRt+0nhJMuYSSkW+KTgnwyOGU9cv+mxA= + -----END CERTIFICATE----- +diff --git a/tornado/test/test.key b/tornado/test/test.key +index 577d518..7cb7d8d 100644 +--- a/tornado/test/test.key ++++ b/tornado/test/test.key +@@ -1,16 +1,28 @@ + -----BEGIN PRIVATE KEY----- +-MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALirW3mX4jbdFse2 +-aZwWzszCJ1IsRDrzALpbvMYLLbIZqo+Z8v5aERKTRQpXFqGaZyY+tdwYy7X7YXcL +-tKqvjnw/MSeIaqkw5pROKz5aR0nkPLvcTmhJVLVPCLc8dFnIlu8aC9TrDhr90P+P +-zU39UG7zLweA9zXKBuW3Tjo5dMP3AgMBAAECgYEAiygNaWYrf95AcUQi9w00zpUr +-nj9fNvCwxr2kVbRMvd2balS/CC4EmXPCXdVcZ3B7dBVjYzSIJV0Fh/iZLtnVysD9 +-fcNMZ+Cz71b/T0ItsNYOsJk0qUVyP52uqsqkNppIPJsD19C+ZeMLZj6iEiylZyl8 +-2U16c/kVIjER63mUEGkCQQDayQOTGPJrKHqPAkUqzeJkfvHH2yCf+cySU+w6ezyr +-j9yxcq8aZoLusCebDVT+kz7RqnD5JePFvB38cMuepYBLAkEA2BTFdZx30f4moPNv +-JlXlPNJMUTUzsXG7n4vNc+18O5ous0NGQII8jZWrIcTrP8wiP9fF3JwUsKrJhcBn +-xRs3hQJBAIDUgz1YIE+HW3vgi1gkOh6RPdBAsVpiXtr/fggFz3j60qrO7FswaAMj +-SX8c/6KUlBYkNjgP3qruFf4zcUNvEzcCQQCaioCPFVE9ByBpjLG6IUTKsz2R9xL5 +-nfYqrbpLZ1aq6iLsYvkjugHE4X57sHLwNfdo4dHJbnf9wqhO2MVe25BhAkBdKYpY +-7OKc/2mmMbJDhVBgoixz/muN/5VjdfbvVY48naZkJF1p1tmogqPC5F1jPCS4rM+S +-FfPJIHRNEn2oktw5 ++MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCk9C3ciPLVubsD ++92oRPARUs/o90rCgQ7/9HCr6sVVROrCxEk9rNx4wK2byCBubG4gZFg66p2elCg7w ++eI5aGyxgJHqcQ268R1sSud59AtvF1xi6iUNNU5U2ea6Y7bTHoOUijYx28aTr6VMM ++EEuG6+Fo2Siskxol6RZBVLcvrWFVN+f1Nssr63lh5s6R8f9ubR+ztkQQEVcCWCjh ++j7ZR+tpUI6SFn1X5JWOCKfB45dweqwcT8gVC5lUMNKoKGZ+uPKGuKC47NMJ2Ac9N ++YFYzTAx3o+dkrAf4nh+1tU8RTM6jpXLx4eNbhW0CT4HF7K7kkvWeLcM0lpFKdr5P ++wv/+Es9/AgMBAAECggEABi6AaXtYXloPgB6NgwfUwbfc8OQsalUfpMShd7OdluW0 ++KW6eO05de0ClIvzay/1EJGyHMMeFQtIVrT1XWFkcWJ4FWkXMqJGkABenFtg8lDVz ++X8o1E3jGZrw4ptKBq9mDvL/BO9PiclTUH+ecbPn6AIvi0lTQ7grGIryiAM9mjmLy ++jpCwoutF2LD4RPNg8vqWe/Z1rQw5lp8FOHhRwPooHHeoq1bSrp8dqvVAwAam7Mmf ++uFgI8jrNycPgr2cwEEtbq2TQ625MhVnCpwT+kErmAStfbXXuqv1X1ZZgiNxf+61C ++OL0bhPRVIHmmjiK/5qHRuN4Q5u9/Yp2SJ4W5xadSQQKBgQDR7dnOlYYQiaoPJeD/ ++7jcLVJbWwbr7bE19O/QpYAtkA/FtGlKr+hQxPhK6OYp+in8eHf+ga/NSAjCWRBoh ++MNAVCJtiirHo2tFsLFOmlJpGL9n3sX8UnkJN90oHfWrzJ8BZnXaSw2eOuyw8LLj+ ++Q+ISl6Go8/xfsuy3EDv4AP1wCwKBgQDJJ4vEV3Kr+bc6N/xeu+G0oHvRAWwuQpcx ++9D+XpnqbJbFDnWKNE7oGsDCs8Qjr0CdFUN1pm1ppITDZ5N1cWuDg/47ZAXqEK6D1 ++z13S7O0oQPlnsPL7mHs2Vl73muAaBPAojFvceHHfccr7Z94BXqKsiyfaWz6kclT/ ++Nl4JTdsC3QKBgQCeYgozL2J/da2lUhnIXcyPstk+29kbueFYu/QBh2HwqnzqqLJ4 ++5+t2H3P3plQUFp/DdDSZrvhcBiTsKiNgqThEtkKtfSCvIvBf4a2W/4TJsW6MzxCm ++2KQDuK/UqM4Y+APKWN/N6Lln2VWNbNyBkWuuRVKFatccyJyJnSjxeqW7cwKBgGyN ++idCYPIrwROAHLItXKvOWE5t0ABRq3TsZC2RkdA/b5HCPs4pclexcEriRjvXrK/Yt ++MH94Ve8b+UftSUQ4ytjBMS6MrLg87y0YDhLwxv8NKUq65DXAUOW+8JsAmmWQOqY3 ++MK+m1BT4TMklgVoN3w3sPsKIsSJ/jLz5cv/kYweFAoGAG4iWU1378tI2Ts/Fngsv ++7eoWhoda77Y9D0Yoy20aN9VdMHzIYCBOubtRPEuwgaReNwbUBWap01J63yY/fF3K ++8PTz6covjoOJqxQJOvM7nM0CsJawG9ccw3YXyd9KgRIdSt6ooEhb7N8W2EXYoKl3 ++g1i2t41Q/SC3HUGC5mJjpO8= + -----END PRIVATE KEY----- diff --git a/python-tornado.changes b/python-tornado.changes index 4f62407..b9c9267 100644 --- a/python-tornado.changes +++ b/python-tornado.changes @@ -1,43 +1,16 @@ ------------------------------------------------------------------- -Wed Jan 9 23:12:44 UTC 2019 - Jonathan Brownell +Thu Jan 10 14:50:55 UTC 2019 - Tomáš Chvátal -- Import python-backports_abc on Red Hat, not just SUSE, platforms +- Add patch really fixing the tests/tool to work on py3.7: + * asyncio.patch +- Add patch to enlarge key size for openssl 1.1.1: + * openssl-cert-size.patch ------------------------------------------------------------------- -Tue Sep 18 15:10:56 UTC 2018 - sebix+novell.com@sebix.at +Thu Jan 10 14:47:39 UTC 2019 - Tomáš Chvátal -- update to version 5.1.1: - - Bug fixes - - Fixed an case in which the `.Future` returned by - `.RequestHandler.finish` could fail to resolve. - - The `.TwitterMixin.authenticate_redirect` method works again. - - Improved error handling in the `tornado.auth` module, fixing hanging - requests when a network or other error occurs. - -------------------------------------------------------------------- -Mon Sep 10 11:35:05 UTC 2018 - Jan Engelhardt - -- Update descriptions. - -------------------------------------------------------------------- -Fri Sep 7 23:07:29 CEST 2018 - Matěj Cepl - -- Remove simplejson also from Requires. - -------------------------------------------------------------------- -Thu Sep 6 12:39:11 UTC 2018 - Matěj Cepl - -- BuildRequires: simplejson is completely useless. - -------------------------------------------------------------------- -Sun Jul 15 21:17:57 UTC 2018 - mimi.vx@gmail.com - -- update to 5.1 -- drop tornado-async-deprecations.patch - tornado-testsuite_timeout.patch - * support python 3.7 - * big bunch of changes, please check: - http://www.tornadoweb.org/en/stable/releases.html +- Drop patch tornado-async-deprecations.patch that does not fix + stuff on py3.7 ------------------------------------------------------------------- Thu May 10 16:35:09 UTC 2018 - toddrme2178@gmail.com diff --git a/python-tornado.spec b/python-tornado.spec index e2b389b..45837c3 100644 --- a/python-tornado.spec +++ b/python-tornado.spec @@ -1,7 +1,7 @@ # # spec file for package python-tornado # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,33 +12,38 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without python2 +%{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-tornado -Version: 5.1.1 +Version: 4.5.3 Release: 0 -Summary: Python web framework and web server +Summary: Open source version of scalable, non-blocking web server that power FriendFeed License: Apache-2.0 Group: Development/Languages/Python -URL: http://www.tornadoweb.org +Url: http://www.tornadoweb.org Source: https://files.pythonhosted.org/packages/source/t/tornado/tornado-%{version}.tar.gz +Patch1: tornado-testsuite_timeout.patch +# meshed from upstream and local changes (Tornado 5 update blocked by salt) +Patch2: asyncio.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module pycurl} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module simplejson} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python -%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?rhel} >= 8 +Requires: python-simplejson +%if 0%{?suse_version} >= 1000 || 0%{?fedora_version} >= 24 Recommends: python-Twisted Recommends: python-pycares Recommends: python-pycurl Recommends: python-service_identity %endif -%if 0%{?sle_version} == 120300 || 0%{?fedora} || 0%{?rhel} +%if 0%{?sle_version} == 120300 BuildRequires: %{python_module backports_abc} %endif %if 0%{?sle_version} == 120000 && !0%{?is_opensuse} @@ -60,22 +65,34 @@ Requires: python-backports_abc %endif %ifpython2 Requires: python-singledispatch -%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?rhel} >= 8 +%if 0%{?suse_version} >= 1000 || 0%{?fedora_version} >= 24 Recommends: python-futures %endif %endif %python_subpackages %description -Tornado is a Python web framework and asynchronous networking library, -originally developed at FriendFeed. It uses non-blocking network I/O, and -supports long polling, WebSockets, and other applications that require a -long-lived connection to each user. +Tornado is an open source version of the scalable, non-blocking web server and +tools that power FriendFeed. The FriendFeed application is written using a web +framework that looks a bit like web.py or Google's webapp, but with additional +tools and optimizations to take advantage of the underlying non-blocking +infrastructure. + +The framework is distinct from most mainstream web server frameworks (and +certainly most Python frameworks) because it is non-blocking and reasonably +fast. Because it is non-blocking and uses epoll, it can handle thousands of +simultaneous standing connections, which means it is ideal for real-time web +services. We built the web server specifically to handle FriendFeed's real-time +features — every active user of FriendFeed maintains an open connection to the +FriendFeed servers. (For more information on scaling servers to support +thousands of clients, see The C10K problem.) %prep %setup -q -n tornado-%{version} # Fix non-executable script rpmlint issue: find demos tornado -name "*.py" -exec sed -i "/#\!\/usr\/bin\/.*/d" {} \; +%patch1 -p1 +%patch2 -p1 %pre # remove egg-info _file_, being replaced by an egg-info directory @@ -96,8 +113,7 @@ export ASYNC_TEST_TIMEOUT=30 %python_exec -m tornado.test.runtests %files %{python_files} -%license LICENSE -%doc demos +%doc demos LICENSE %{python_sitearch}/tornado %{python_sitearch}/tornado-%{version}-py*.egg-info diff --git a/tornado-4.5.3.tar.gz b/tornado-4.5.3.tar.gz new file mode 100644 index 0000000..59cb582 --- /dev/null +++ b/tornado-4.5.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d14e47eab0e15799cf3cdcc86b0b98279da68522caace2bd7ce644287685f0a +size 484221 diff --git a/tornado-5.1.1.tar.gz b/tornado-5.1.1.tar.gz deleted file mode 100644 index 5cf9a73..0000000 --- a/tornado-5.1.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409 -size 516819 diff --git a/tornado-testsuite_timeout.patch b/tornado-testsuite_timeout.patch new file mode 100644 index 0000000..092be36 --- /dev/null +++ b/tornado-testsuite_timeout.patch @@ -0,0 +1,49 @@ +--- tornado-4.5.3/tornado/test/simple_httpclient_test.py 2018/03/16 13:18:41 1.1 ++++ tornado-4.5.3/tornado/test/simple_httpclient_test.py 2018/03/16 13:41:14 +@@ -239,7 +239,7 @@ + @skipOnTravis + def test_connect_timeout(self): + timeout = 0.1 +- timeout_min, timeout_max = 0.099, 1.0 ++ timeout_min, timeout_max = 0.099, 3.0 + + class TimeoutResolver(Resolver): + def resolve(self, *args, **kwargs): +@@ -257,7 +257,7 @@ + @skipOnTravis + def test_request_timeout(self): + timeout = 0.1 +- timeout_min, timeout_max = 0.099, 0.15 ++ timeout_min, timeout_max = 0.099, 0.25 + if os.name == 'nt': + timeout = 0.5 + timeout_min, timeout_max = 0.4, 0.6 +@@ -360,7 +360,7 @@ + response = self.wait() + + self.assertEqual(response.code, 599) +- self.assertTrue(response.request_time < 1, response.request_time) ++ self.assertTrue(response.request_time < 2.5, response.request_time) + self.assertEqual(str(response.error), "HTTP 599: Timeout in request queue") + self.triggers.popleft()() + self.wait() +--- tornado-4.5.3/tornado/test/testing_test.py 2018/03/16 13:18:44 1.1 ++++ tornado-4.5.3/tornado/test/testing_test.py 2018/03/16 13:18:56 +@@ -61,7 +61,7 @@ + self.io_loop.add_timeout(self.io_loop.time() + 0.00, self.stop) + self.wait(timeout=0.02) + self.io_loop.add_timeout(self.io_loop.time() + 0.03, self.stop) +- self.wait(timeout=0.15) ++ self.wait(timeout=0.25) + + def test_multiple_errors(self): + def fail(message): +@@ -206,7 +206,7 @@ + self.finished = True + + def test_timeout_environment_variable(self): +- @gen_test(timeout=0.5) ++ @gen_test(timeout=0.9) + def test_long_timeout(self): + time = self.io_loop.time + yield gen.Task(self.io_loop.add_timeout, time() + 0.25)