diff --git a/python-urllib3.changes b/python-urllib3.changes index 5951c38..89313d2 100644 --- a/python-urllib3.changes +++ b/python-urllib3.changes @@ -1,3 +1,45 @@ +------------------------------------------------------------------- +Wed Mar 2 15:54:26 UTC 2016 - jmatejek@suse.com + +- change Requires on pyopenssl, pyasn1 into Recommends, + add ndg-httpsclient as well + (these are dependencies of urrlib3's pyopenssl module, which can be + used if native python's ssl capabilities are not good enough) + +------------------------------------------------------------------- +Thu Feb 11 13:55:13 UTC 2016 - aplanas@suse.com + +- Update 1.14 source tar.gz from the source + * Rebase urllib3-test-no-coverage.patch + +------------------------------------------------------------------- +Tue Jan 5 14:40:22 UTC 2016 - hpj@urpla.net + +- Update to Version 1.14 (2015-12-29) + * contrib: SOCKS proxy support! (Issue #762) + * Fixed AppEngine handling of transfer-encoding header and bug in + Timeout defaults checking. (Issue #763) +- Update to Version 1.13.1 (2015-12-18) + * Fixed regression in IPv6 + SSL for match_hostname. (Issue #761) +- Update to Version 1.13 (2015-12-14) + * Fixed pip install urllib3[secure] on modern pip. (Issue #706) + * pyopenssl: Fixed SSL3_WRITE_PENDING error. (Issue #717) + * pyopenssl: Support for TLSv1.1 and TLSv1.2. (Issue #696) + * Close connections more defensively on exception. (Issue #734) + * Adjusted read_chunked to handle gzipped, chunk-encoded bodies + without repeatedly flushing the decoder, to function better on + Jython. (Issue #743) + * Accept ca_cert_dir for SSL-related PoolManager configuration. + (Issue #758) + +- removed ready-event.patch: applied upstream +- disabled more dysfunctional tests + +------------------------------------------------------------------- +Mon Nov 16 17:31:38 UTC 2015 - hpj@urpla.net + +- restored ability to build with openSUSE <= 13.2 + ------------------------------------------------------------------- Wed Oct 27 16:33:44 UTC 2015 - jmatejek@suse.com diff --git a/python-urllib3.spec b/python-urllib3.spec index dbfa34f..fb913b1 100644 --- a/python-urllib3.spec +++ b/python-urllib3.spec @@ -1,7 +1,7 @@ # # spec file for package python-urllib3 # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 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 @@ -17,7 +17,7 @@ Name: python-urllib3 -Version: 1.12 +Version: 1.14 Release: 0 Summary: HTTP library with thread-safe connection pooling, file post, and more License: MIT @@ -30,16 +30,16 @@ Patch1: urllib3-test-no-coverage.patch Patch2: urllib3-ssl-default-context.patch # PATCH-FIX-OPENSUSE -- do not use unsupported SSLv3 in tests Patch3: urllib3-test-ssl-drop-sslv3.patch -# PATCH-FIX-UPSTREAM -- fix race conditions with ready_event state variable in timeout tests -Patch4: ready-event.patch +BuildRequires: python-PySocks #!BuildIgnore: python-requests BuildRequires: python-devel BuildRequires: python-mock >= 1.3.0 BuildRequires: python-nose >= 1.3.7 BuildRequires: python-nose-exclude >= 0.4.1 BuildRequires: python-tornado >= 4.2.1 -Requires: python-pyOpenSSL -Requires: python-pyasn1 +Recommends: python-pyOpenSSL +Recommends: python-pyasn1 +Recommends: python-ndg-httpsclient BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} @@ -70,7 +70,6 @@ Highlights %if %(python -c "import ssl; print(hasattr(ssl,'PROTOCOL_TLSv1_2'))") == "True" %patch3 -p1 %endif -%patch4 -p1 %build python setup.py build @@ -82,7 +81,14 @@ python setup.py install --prefix=%{_prefix} --root=%{buildroot} rm -rf build PYTHONPATH="%{buildroot}%{python_sitelib}" nosetests \ --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestHTTPProxyManager.test_https_proxy_timeout \ - --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestHTTPProxyManager.test_https_proxy_pool_timeout + --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestHTTPProxyManager.test_https_proxy_pool_timeout \ +%if 0%{?suse_version} && 0%{?suse_version} <= 1320 + --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestIPv6HTTPProxyManager.test_basic_ipv6_proxy \ +%endif + --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestHTTPProxyManager.test_headerdict \ + --exclude-test=test.with_dummyserver.test_proxy_poolmanager.TestHTTPProxyManager.test_headers \ + --exclude-test=test.with_dummyserver.test_poolmanager.TestPoolManager.test_headers \ + --exclude-test=test.with_dummyserver.test_https.TestHTTPS_IPv6Addr #%pre # previous versions of the package installed .egg-info as a directory, diff --git a/ready-event.patch b/ready-event.patch deleted file mode 100644 index 474523a..0000000 --- a/ready-event.patch +++ /dev/null @@ -1,106 +0,0 @@ -Index: urllib3-1.12/dummyserver/testcase.py -=================================================================== ---- urllib3-1.12.orig/dummyserver/testcase.py -+++ urllib3-1.12/dummyserver/testcase.py -@@ -45,7 +45,7 @@ class SocketDummyServerTestCase(unittest - def socket_handler(listener): - for _ in range(num): - ready_event.set() -- ready_event.clear() -+ #ready_event.clear() - - sock = listener.accept()[0] - consume_socket(sock) -@@ -59,6 +59,11 @@ class SocketDummyServerTestCase(unittest - return ready_event - - @classmethod -+ def wait_for_socket(cls, ready_event): -+ ready_event.wait() -+ ready_event.clear() -+ -+ @classmethod - def start_basic_handler(cls, **kw): - return cls.start_response_handler( - b'HTTP/1.1 200 OK\r\n' -Index: urllib3-1.12/test/with_dummyserver/test_connectionpool.py -=================================================================== ---- urllib3-1.12.orig/test/with_dummyserver/test_connectionpool.py -+++ urllib3-1.12/test/with_dummyserver/test_connectionpool.py -@@ -57,11 +57,12 @@ class TestConnectionPoolTimeouts(SocketD - - # Pool-global timeout - pool = HTTPConnectionPool(self.host, self.port, timeout=SHORT_TIMEOUT, retries=False) -+ self.wait_for_socket(ready_event) - self.assertRaises(ReadTimeoutError, pool.request, 'GET', '/') - block_event.set() # Release block - - # Shouldn't raise this time -- ready_event.wait() -+ self.wait_for_socket(ready_event) - block_event.set() # Pre-release block - pool.request('GET', '/') - -@@ -92,12 +93,13 @@ class TestConnectionPoolTimeouts(SocketD - timeout = Timeout(read=SHORT_TIMEOUT) - pool = HTTPConnectionPool(self.host, self.port, timeout=timeout, retries=False) - -+ self.wait_for_socket(ready_event) - conn = pool._get_conn() - self.assertRaises(ReadTimeoutError, pool._make_request, conn, 'GET', '/') - pool._put_conn(conn) - block_event.set() # Release request - -- ready_event.wait() -+ self.wait_for_socket(ready_event) - block_event.clear() - self.assertRaises(ReadTimeoutError, pool.request, 'GET', '/') - block_event.set() # Release request -@@ -106,7 +108,7 @@ class TestConnectionPoolTimeouts(SocketD - pool = HTTPConnectionPool(self.host, self.port, timeout=LONG_TIMEOUT, retries=False) - - conn = pool._get_conn() -- ready_event.wait() -+ self.wait_for_socket(ready_event) - now = time.time() - self.assertRaises(ReadTimeoutError, pool._make_request, conn, 'GET', '/', timeout=timeout) - delta = time.time() - now -@@ -115,7 +117,7 @@ class TestConnectionPoolTimeouts(SocketD - self.assertTrue(delta < LONG_TIMEOUT, "timeout was pool-level LONG_TIMEOUT rather than request-level SHORT_TIMEOUT") - pool._put_conn(conn) - -- ready_event.wait() -+ self.wait_for_socket(ready_event) - now = time.time() - self.assertRaises(ReadTimeoutError, pool.request, 'GET', '/', timeout=timeout) - delta = time.time() - now -@@ -125,11 +127,11 @@ class TestConnectionPoolTimeouts(SocketD - - # Timeout int/float passed directly to request and _make_request should - # raise a request timeout -- ready_event.wait() -+ self.wait_for_socket(ready_event) - self.assertRaises(ReadTimeoutError, pool.request, 'GET', '/', timeout=SHORT_TIMEOUT) - block_event.set() # Release request - -- ready_event.wait() -+ self.wait_for_socket(ready_event) - conn = pool._new_conn() - # FIXME: This assert flakes sometimes. Not sure why. - self.assertRaises(ReadTimeoutError, pool._make_request, conn, 'GET', '/', timeout=SHORT_TIMEOUT) -@@ -183,13 +185,14 @@ class TestConnectionPoolTimeouts(SocketD - block_event = Event() - ready_event = self.start_basic_handler(block_send=block_event, num=2) - -+ self.wait_for_socket(ready_event) - # This will get the socket to raise an EAGAIN on the read - timeout = Timeout(connect=3, read=SHORT_TIMEOUT) - pool = HTTPConnectionPool(self.host, self.port, timeout=timeout, retries=False) - self.assertRaises(ReadTimeoutError, pool.request, 'GET', '/') - - block_event.set() -- ready_event.wait() -+ self.wait_for_socket(ready_event) - block_event.clear() - - # The connect should succeed and this should hit the read timeout diff --git a/urllib3-1.12.tar.gz b/urllib3-1.12.tar.gz deleted file mode 100644 index a214160..0000000 --- a/urllib3-1.12.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ea512776971fe4e76192600fe41e4e7ee96b4b9a5b15aefc1ac31d2a63872c6 -size 151072 diff --git a/urllib3-1.14.tar.gz b/urllib3-1.14.tar.gz new file mode 100644 index 0000000..6902501 --- /dev/null +++ b/urllib3-1.14.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd4fb13a4ce50b18338c7e4d665b21fd38632c5d4b1d9f1a1379276bd3c08d37 +size 161497 diff --git a/urllib3-ssl-default-context.patch b/urllib3-ssl-default-context.patch index 0d4c63e..5745aa9 100644 --- a/urllib3-ssl-default-context.patch +++ b/urllib3-ssl-default-context.patch @@ -1,8 +1,8 @@ -Index: urllib3-1.12/urllib3/util/ssl_.py +Index: b/urllib3/util/ssl_.py =================================================================== ---- urllib3-1.12.orig/urllib3/util/ssl_.py -+++ urllib3-1.12/urllib3/util/ssl_.py -@@ -278,6 +278,8 @@ def ssl_wrap_socket(sock, keyfile=None, +--- a/urllib3/util/ssl_.py ++++ b/urllib3/util/ssl_.py +@@ -299,6 +299,8 @@ def ssl_wrap_socket(sock, keyfile=None, if e.errno == errno.ENOENT: raise SSLError(e) raise diff --git a/urllib3-test-no-coverage.patch b/urllib3-test-no-coverage.patch index 4a36e21..7d56d25 100644 --- a/urllib3-test-no-coverage.patch +++ b/urllib3-test-no-coverage.patch @@ -1,6 +1,7 @@ -diff -ruN a/setup.cfg b/setup.cfg ---- a/setup.cfg 2014-03-06 01:26:02.000000000 +0100 -+++ b/setup.cfg 2014-03-20 15:31:36.249495224 +0100 +Index: b/setup.cfg +=================================================================== +--- a/setup.cfg ++++ b/setup.cfg @@ -1,9 +1,5 @@ [nosetests] logging-clear-handlers = true @@ -10,4 +11,4 @@ diff -ruN a/setup.cfg b/setup.cfg -cover-erase = true [flake8] - max-line-length = 99 + exclude = ./docs/conf.py,./test/*,./urllib3/packages/* diff --git a/urllib3-test-ssl-drop-sslv3.patch b/urllib3-test-ssl-drop-sslv3.patch index cb08018..39935b5 100644 --- a/urllib3-test-ssl-drop-sslv3.patch +++ b/urllib3-test-ssl-drop-sslv3.patch @@ -1,8 +1,8 @@ -Index: urllib3-1.12/test/with_dummyserver/test_https.py +Index: b/test/with_dummyserver/test_https.py =================================================================== ---- urllib3-1.12.orig/test/with_dummyserver/test_https.py -+++ urllib3-1.12/test/with_dummyserver/test_https.py -@@ -416,21 +416,21 @@ class TestHTTPS(HTTPSDummyServerTestCase +--- a/test/with_dummyserver/test_https.py ++++ b/test/with_dummyserver/test_https.py +@@ -425,21 +425,21 @@ class TestHTTPS(HTTPSDummyServerTestCase class TestHTTPS_TLSv1(HTTPSDummyServerTestCase): certs = DEFAULT_CERTS.copy()