From dc3d451550e1690866075b05fa630ab0e9b5f8bf1db42ab0f788d66f24990387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20S=C3=BAkup?= Date: Sun, 15 Jul 2018 22:34:22 +0000 Subject: [PATCH] Accepting request 622951 from home:mimi_vx:branches:devel:languages:python - update to 1.23 - add 1414.patch - fix tests with new tornado - refresh python-urllib3-recent-date.patch - drop urllib3-test-no-coverage.patch * Allow providing a list of headers to strip from requests when redirecting to a different host. Defaults to the Authorization header. Different headers can be set via Retry.remove_headers_on_redirect. * Fix util.selectors._fileobj_to_fd to accept long * Dropped Python 3.3 support. * Put the connection back in the pool when calling stream() or read_chunked() on a chunked HEAD response. * Fixed pyOpenSSL-specific ssl client authentication issue when clients attempted to auth via certificate + chain * Add the port to the connectionpool connect print * Don't use the uuid module to create multipart data boundaries. * read_chunked() on a closed response returns no chunks. * Add Python 2.6 support to contrib.securetransport * Added support for auth info in url for SOCKS proxy OBS-URL: https://build.opensuse.org/request/show/622951 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-urllib3?expand=0&rev=40 --- 1414.patch | 83 ++++++++++++++++++++++++++++++++ python-urllib3-recent-date.patch | 27 ++++------- python-urllib3.changes | 22 +++++++++ python-urllib3.spec | 30 ++++++------ urllib3-1.22.tar.gz | 3 -- urllib3-1.23.tar.gz | 3 ++ urllib3-test-no-coverage.patch | 13 ----- 7 files changed, 134 insertions(+), 47 deletions(-) create mode 100644 1414.patch delete mode 100644 urllib3-1.22.tar.gz create mode 100644 urllib3-1.23.tar.gz delete mode 100644 urllib3-test-no-coverage.patch diff --git a/1414.patch b/1414.patch new file mode 100644 index 0000000..6286c61 --- /dev/null +++ b/1414.patch @@ -0,0 +1,83 @@ +From f8c3e96df731eccda202e0dc909f0a51cdc41267 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 14 Jul 2018 12:21:50 +0200 +Subject: [PATCH 1/2] dummyserver: Update for tornado-5 API changes + +Tornado 5 has apparently removed support for multiple IOLoops, +and appropriately removed the io_loop parameter to the server class +in favor of using IOLoop.current(). Update the tests to use the latter. +The code remains compatible with tornado-4. +--- + dummyserver/server.py | 9 +++++---- + dummyserver/testcase.py | 4 ++-- + 2 files changed, 7 insertions(+), 6 deletions(-) + +Index: urllib3-1.23/dummyserver/server.py +=================================================================== +--- urllib3-1.23.orig/dummyserver/server.py ++++ urllib3-1.23/dummyserver/server.py +@@ -226,15 +226,16 @@ def bind_sockets(port, address=None, fam + + + def run_tornado_app(app, io_loop, certs, scheme, host): ++ assert io_loop == tornado.ioloop.IOLoop.current() ++ + # We can't use fromtimestamp(0) because of CPython issue 29097, so we'll + # just construct the datetime object directly. + app.last_req = datetime(1970, 1, 1) + + if scheme == 'https': +- http_server = tornado.httpserver.HTTPServer(app, ssl_options=certs, +- io_loop=io_loop) ++ http_server = tornado.httpserver.HTTPServer(app, ssl_options=certs) + else: +- http_server = tornado.httpserver.HTTPServer(app, io_loop=io_loop) ++ http_server = tornado.httpserver.HTTPServer(app) + + sockets = bind_sockets(None, address=host) + port = sockets[0].getsockname()[1] +@@ -268,7 +269,7 @@ if __name__ == '__main__': + from .testcase import TestingApp + host = '127.0.0.1' + +- io_loop = tornado.ioloop.IOLoop() ++ io_loop = tornado.ioloop.IOLoop.current() + app = tornado.web.Application([(r".*", TestingApp)]) + server, port = run_tornado_app(app, io_loop, None, + 'http', host) +Index: urllib3-1.23/dummyserver/testcase.py +=================================================================== +--- urllib3-1.23.orig/dummyserver/testcase.py ++++ urllib3-1.23/dummyserver/testcase.py +@@ -124,7 +124,7 @@ class HTTPDummyServerTestCase(unittest.T + + @classmethod + def _start_server(cls): +- cls.io_loop = ioloop.IOLoop() ++ cls.io_loop = ioloop.IOLoop.current() + app = web.Application([(r".*", TestingApp)]) + cls.server, cls.port = run_tornado_app(app, cls.io_loop, cls.certs, + cls.scheme, cls.host) +@@ -170,7 +170,7 @@ class HTTPDummyProxyTestCase(unittest.Te + + @classmethod + def setUpClass(cls): +- cls.io_loop = ioloop.IOLoop() ++ cls.io_loop = ioloop.IOLoop.current() + + app = web.Application([(r'.*', TestingApp)]) + cls.http_server, cls.http_port = run_tornado_app( +Index: urllib3-1.23/dev-requirements.txt +=================================================================== +--- urllib3-1.23.orig/dev-requirements.txt ++++ urllib3-1.23/dev-requirements.txt +@@ -3,7 +3,8 @@ coverage==3.7.1 + tox==2.1.1 + twine==1.5.0 + wheel==0.24.0 +-tornado==4.2.1 ++tornado==5.0.2; python_version>"2.6" ++tornado==4.2.1; python_version<="2.6" + PySocks==1.5.6 + pkginfo>=1.0,!=1.3.0 + psutil==4.3.1 diff --git a/python-urllib3-recent-date.patch b/python-urllib3-recent-date.patch index 4df98e6..5b83dc1 100644 --- a/python-urllib3-recent-date.patch +++ b/python-urllib3-recent-date.patch @@ -13,23 +13,16 @@ Fixes #1303 urllib3/connection.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/urllib3/connection.py b/urllib3/connection.py -index 06bcbde..9ea04bb 100644 ---- a/urllib3/connection.py -+++ b/urllib3/connection.py -@@ -57,9 +57,9 @@ port_by_scheme = { - } - - # When updating RECENT_DATE, move it to --# within two years of the current date, and no --# earlier than 6 months ago. --RECENT_DATE = datetime.date(2016, 1, 1) -+# within two years of the current date, and not -+# less than 6 months ago. -+RECENT_DATE = datetime.date(2017, 6, 30) +Index: urllib3-1.23/urllib3/connection.py +=================================================================== +--- urllib3-1.23.orig/urllib3/connection.py ++++ urllib3-1.23/urllib3/connection.py +@@ -60,7 +60,7 @@ port_by_scheme = { + # and not less than 6 months ago. + # Example: if Today is 2018-01-01, then RECENT_DATE should be any date on or + # after 2016-01-01 (today - 2 years) AND before 2017-07-01 (today - 6 months) +-RECENT_DATE = datetime.date(2017, 6, 30) ++RECENT_DATE = datetime.date(2018, 1, 30) class DummyConnection(object): --- -2.15.1 - diff --git a/python-urllib3.changes b/python-urllib3.changes index 00f80d8..0001ec0 100644 --- a/python-urllib3.changes +++ b/python-urllib3.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Sun Jul 15 22:30:26 UTC 2018 - mimi.vx@gmail.com + +- update to 1.23 +- add 1414.patch - fix tests with new tornado +- refresh python-urllib3-recent-date.patch +- drop urllib3-test-no-coverage.patch + * Allow providing a list of headers to strip from requests when redirecting + to a different host. Defaults to the Authorization header. Different + headers can be set via Retry.remove_headers_on_redirect. + * Fix util.selectors._fileobj_to_fd to accept long + * Dropped Python 3.3 support. + * Put the connection back in the pool when calling stream() + or read_chunked() on a chunked HEAD response. + * Fixed pyOpenSSL-specific ssl client authentication issue when clients + attempted to auth via certificate + chain + * Add the port to the connectionpool connect print + * Don't use the uuid module to create multipart data boundaries. + * read_chunked() on a closed response returns no chunks. + * Add Python 2.6 support to contrib.securetransport + * Added support for auth info in url for SOCKS proxy + ------------------------------------------------------------------- Wed Mar 7 15:52:54 UTC 2018 - aplanas@suse.com diff --git a/python-urllib3.spec b/python-urllib3.spec index ec9675b..81ecf5b 100644 --- a/python-urllib3.spec +++ b/python-urllib3.spec @@ -18,15 +18,15 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-urllib3 -Version: 1.22 +Version: 1.23 Release: 0 Summary: HTTP library with thread-safe connection pooling, file post, and more License: MIT Group: Development/Languages/Python -Url: http://urllib3.readthedocs.org/ +URL: http://urllib3.readthedocs.org/ Source: https://files.pythonhosted.org/packages/source/u/urllib3/urllib3-%{version}.tar.gz -# PATCH-FIX-OPENSUSE speilicke@suse.com -- We need no coverage report -Patch1: urllib3-test-no-coverage.patch +# PATCH-FIX-UPSTREAM -- tornado 5.x support for tests +Patch1: 1414.patch # PATCH-FEATURE-UPSTREAM -- use set_default_verify_paths() if no certificate path is supplied # should be removed in the future, see SR#437853 Patch2: urllib3-ssl-default-context.patch @@ -34,8 +34,6 @@ Patch2: urllib3-ssl-default-context.patch Patch3: urllib3-test-ssl-drop-sslv3.patch # PATCH-FIX-UPSTREAM python-urllib3-recent-date.patch gh#shazow/urllib3#1303, boo#1074247 dimstar@opensuse.org -- Fix test suite, use correct date Patch4: python-urllib3-recent-date.patch -BuildRequires: python-rpm-macros -#!BuildIgnore: python-requests BuildRequires: %{python_module PySocks} BuildRequires: %{python_module devel} BuildRequires: %{python_module mock >= 1.3.0} @@ -43,15 +41,17 @@ BuildRequires: %{python_module nose >= 1.3.7} BuildRequires: %{python_module psutil} BuildRequires: %{python_module pytest} BuildRequires: %{python_module tornado >= 4.2.1} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +#!BuildIgnore: python-requests +BuildArch: noarch %if 0%{?suse_version} >= 1000 || 0%{?fedora_version} >= 24 -Recommends: python-pyOpenSSL +Recommends: ca-certificates-mozilla Recommends: python-cryptography Recommends: python-idna Recommends: python-ndg-httpsclient -Recommends: ca-certificates-mozilla +Recommends: python-pyOpenSSL %endif -BuildArch: noarch - %python_subpackages %description @@ -78,16 +78,18 @@ Highlights %patch3 -p1 %endif %patch4 -p1 +find . -type f -exec chmod a-x '{}' \; %build %python_build %install %python_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} %check -skiplist='not test_select_interrupt_exception and not test_selector_error and not timeout' +skiplist='not test_select_interrupt_exception and not test_selector_error and not timeout and not test_request_host_header_ignores_fqdn_dot and not test_dotted_fqdn' case $(uname -m) in ppc*) skiplist="$skiplist and not test_select_timing and not test_select_multiple_interrupts_with_event and not test_interrupt_wait_for_read_with_event and not test_select_interrupt_with_event";; @@ -96,7 +98,7 @@ esac rm -rf build # pretend to be TRAVIS (this triggers timing tolerance) export TRAVIS=1 -%{python_expand PYTHONPATH="%{buildroot}%{$python_sitelib}" py.test \ +%{python_expand PYTHONPATH="%{buildroot}%{$python_sitelib}" py.test-%$python_bin_suffix \ --ignore=test/appengine \ --ignore=test/with_dummyserver/test_proxy_poolmanager.py \ --ignore=test/with_dummyserver/test_poolmanager.py \ @@ -104,8 +106,8 @@ export TRAVIS=1 urllib3 test} %files %{python_files} -%defattr(-,root,root,-) -%doc CHANGES.rst CONTRIBUTORS.txt LICENSE.txt README.rst +%license LICENSE.txt +%doc CHANGES.rst CONTRIBUTORS.txt README.rst %{python_sitelib}/urllib3 %{python_sitelib}/urllib3-%{version}-py*.egg-info diff --git a/urllib3-1.22.tar.gz b/urllib3-1.22.tar.gz deleted file mode 100644 index 558840e..0000000 --- a/urllib3-1.22.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f -size 226083 diff --git a/urllib3-1.23.tar.gz b/urllib3-1.23.tar.gz new file mode 100644 index 0000000..c15aa1e --- /dev/null +++ b/urllib3-1.23.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf +size 228314 diff --git a/urllib3-test-no-coverage.patch b/urllib3-test-no-coverage.patch deleted file mode 100644 index b6d60e2..0000000 --- a/urllib3-test-no-coverage.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: urllib3-1.21.1/setup.cfg -=================================================================== ---- urllib3-1.21.1.orig/setup.cfg -+++ urllib3-1.21.1/setup.cfg -@@ -1,8 +1,5 @@ - [nosetests] - logging-clear-handlers = true --with-coverage = true --cover-package = urllib3 --cover-erase = true - - [flake8] - exclude = ./docs/conf.py,./urllib3/packages/*