diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index e3fee0e..052920f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,57 +1 @@ /urllib3-1.5.tar.gz -/urllib3-1.7.tar.gz -/urllib3-1.7.1.tar.gz -/urllib3-1.8.2.tar.gz -/urllib3-1.9.1.tar.gz -/urllib3-1.10.tar.gz -/urllib3-1.10.1.tar.gz -/urllib3-1.10.2.tar.gz -/urllib3-1.10.3.tar.gz -/urllib3-585983ab3f7fb7a0e0b223ebdab1b45471dbefe4.tar.gz -/urllib3-a91975b77a2e28394859487fe5ebbf4a3a74e634.tar.gz -/urllib3-1.10.4.tar.gz -/urllib3-1.12.tar.gz -/urllib3-1.13.tar.gz -/urllib3-1.13.1.tar.gz -/urllib3-1.15.1.tar.gz -/urllib3-1.16.tar.gz -/urllib3-1.19.1.tar.gz -/urllib3-1.20.tar.gz -/urllib3-1.21.1.tar.gz -/urllib3-1.22.tar.gz -/urllib3-1.23.tar.gz -/urllib3-1.24.tar.gz -/urllib3-1.24.1.tar.gz -/urllib3-1.24.2.tar.gz -/urllib3-1.25.2.tar.gz -/urllib3-1.25.3.tar.gz -/urllib3-1.25.6.tar.gz -/urllib3-1.25.7.tar.gz -/urllib3-1.25.8.tar.gz -/urllib3-1.25.10.tar.gz -/urllib3-1.26.4.tar.gz -/urllib3-1.26.5.tar.gz -/urllib3-1.26.6.tar.gz -/urllib3-1.26.7.tar.gz -/urllib3-1.26.8.tar.gz -/urllib3-1.26.9.tar.gz -/urllib3-1.26.12.tar.gz -/urllib3-1.26.15.tar.gz -/urllib3-1.26.16.tar.gz -/urllib3-1.26.17.tar.gz -/urllib3-1.26.18.tar.gz -/urllib3-1.26.19.tar.gz -/urllib3-2.0.7.tar.gz -/urllib3-2.1.0.tar.gz -/urllib3-2.2.0.tar.gz -/hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.tar.gz -/urllib3-2.2.1.tar.gz -/urllib3-2.2.2.tar.gz -/urllib3-2.2.3.tar.gz -/urllib3-2.3.0.tar.gz -/urllib3-2.4.0.tar.gz -/urllib3-2.5.0.tar.gz -/urllib3-2.6.0.tar.gz -/urllib3-2.6.1.tar.gz -/urllib3-2.6.2.tar.gz -/urllib3-2.6.3.tar.gz diff --git a/changelog b/changelog deleted file mode 100644 index cb8c68f..0000000 --- a/changelog +++ /dev/null @@ -1,362 +0,0 @@ -* Fri Jan 26 2024 Fedora Release Engineering - 1.26.18-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 1.26.18-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Oct 17 2023 Maxwell G - 1.26.18-1 -- Update to 1.26.18. -- Mitigates CVE-2023-45803 / GHSA-g4mx-q9vg-27p4. - -* Mon Oct 09 2023 Miro Hrončok - 1.26.17-2 -- Switch the hardcoded dependency on urllib3[socks] to a weak one - -* Mon Oct 02 2023 Benjamin A. Beasley - 1.26.17-1 -- Update to 1.26.17: fix CVE-2023-43804 (GHSA-v845-jxx5-vc9f) - -* Wed Aug 30 2023 Yaakov Selkowitz - 1.26.16-3 -- Use bundled six - -* Fri Jul 21 2023 Fedora Release Engineering - 1.26.16-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jul 01 2023 Benjamin A. Beasley - 1.26.16-1 -- Update to 1.26.16 - -* Sat Jul 01 2023 Python Maint - 1.26.15-3 -- Rebuilt for Python 3.12 - -* Tue Jun 13 2023 Python Maint - 1.26.15-2 -- Bootstrap for Python 3.12 - -* Thu May 18 2023 Benjamin A. Beasley - 1.26.15-1 -- Update to 1.26.15 - -* Thu May 18 2023 Benjamin A. Beasley - 1.26.12-5 -- Confirm the License is SPDX MIT -- Update Summary and description based on upstream -- Add metapackages for brotli and socks extras -- Port to pyproject-rpm-macros - -* Tue May 16 2023 Yaakov Selkowitz - 1.26.12-4 -- Disable tests by default in RHEL builds - -* Tue May 16 2023 Tomáš Hrnčiar - 1.26.12-3 -- Accomodate the test to the changed behavior of SSLContext.shared_ciphers() in CPython -- Fixes: rhbz#2203773 - -* Fri Jan 20 2023 Fedora Release Engineering - 1.26.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Sep 15 2022 Kevin Fenzi - 1.26.12-1 -- Update to 1.26.12. Fixes rhbz#2104964 - -* Fri Jul 22 2022 Fedora Release Engineering - 1.26.9-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jun 14 2022 Python Maint - 1.26.9-3 -- Rebuilt for Python 3.11 - -* Mon Jun 13 2022 Python Maint - 1.26.9-2 -- Bootstrap for Python 3.11 - -* Mon May 30 2022 Kevin Fenzi - 1.26.9-1 -- Update to 1.26.9. fixes rhbz#2064777 - -* Fri Jan 21 2022 Fedora Release Engineering - 1.26.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Jan 08 2022 Kevin Fenzi - 1.26.8-1 -- Update to 1.26.8. Fixes rhbz#2038246 - -* Tue Jan 04 2022 Adam Williamson - 1.26.7-2 -- Stop unbundling ssl.match_hostname, it's deprecated upstream (#2009550) - -* Sun Sep 26 2021 Kevin Fenzi - 1.26.7-1 -- Update to 1.26.7. Fixes rhbz#2006973 - -* Fri Jul 23 2021 Fedora Release Engineering - 1.26.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Sun Jul 11 2021 Kevin Fenzi - 1.26.6-1 -- Update to 1.26.1. Fixes rhbz#1976190 -- Fix FTBFS. Fixes rhbz#1966120 - -* Wed Jun 30 2021 Yatin Karel - 1.26.5-2 -- Update minimal requirement of six to >= 1.16.0 - -* Wed Jun 16 2021 Karolina Surma - 1.26.5-1 -- Update to 1.26.5 -- Fixes rhbz#1965056 - -* Fri Jun 04 2021 Python Maint - 1.26.4-3 -- Rebuilt for Python 3.10 - -* Wed Jun 02 2021 Python Maint - 1.26.4-2 -- Bootstrap for Python 3.10 - -* Tue May 18 2021 Miro Hrončok - 1.26.4-1 -- Update to 1.26.4 -- Fixes rhbz#1889391 - -* Wed Jan 27 2021 Fedora Release Engineering - 1.25.10-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 15 2021 Miro Hrončok - 1.25.10-3 -- Drop redundant BuildRequires for nose -- Instead of the mock backport, use unittest.mock from the standard library - -* Tue Jan 05 2021 Anna Khaitovich - 1.25.10-2 -- Update RECENT_DATE dynamically - -* Sun Sep 27 2020 Kevin Fenzi - 1.25.10-1 -- Update to 1.25.10. Fixed bug #1824900 - -* Wed Jul 29 2020 Fedora Release Engineering - 1.25.8-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sun May 24 2020 Miro Hrončok - 1.25.8-3 -- Rebuilt for Python 3.9 - -* Fri May 22 2020 Miro Hrončok - 1.25.8-2 -- Bootstrap for Python 3.9 - -* Sun Mar 22 2020 Carl George - 1.25.8-1 -- Latest upstream rhbz#1771186 - -* Thu Jan 30 2020 Fedora Release Engineering - 1.25.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Nov 18 2019 Miro Hrončok - 1.25.7-2 -- Subpackage python2-urllib3 has been removed - See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal - -* Tue Oct 15 2019 Jeremy Cline - 1.25.6-1 -- Update to v1.25.6 - -* Thu Oct 03 2019 Miro Hrončok - 1.25.3-7 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Sun Aug 18 2019 Miro Hrončok - 1.25.3-6 -- Rebuilt for Python 3.8 - -* Thu Aug 15 2019 Miro Hrončok - 1.25.3-5 -- Bootstrap for Python 3.8 - -* Fri Jul 26 2019 Fedora Release Engineering - 1.25.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon Jul 08 2019 Miro Hrončok - 1.25.3-3 -- Set RECENT_DATE not to be older than 2 years (#1727796) - -* Tue May 28 2019 Jeremy Cline - 1.25.3-2 -- Drop the Python 2 tests since Tornado is going away - -* Tue May 28 2019 Jeremy Cline - 1.25.3-1 -- Update to 1.25.3 - -* Sat Feb 02 2019 Fedora Release Engineering - 1.24.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Nov 13 2018 Jeremy Cline - 1.24.1-2 -- Adjust unbundling of ssl_match_hostname - -* Mon Oct 29 2018 Jeremy Cline - 1.24.1-1 -- Update to v1.24.1 - -* Wed Jun 20 2018 Lumír Balhar - 1.23-4 -- Removed unneeded dependency python[23]-psutil - -* Mon Jun 18 2018 Miro Hrončok - 1.23-3 -- Rebuilt for Python 3.7 - -* Thu Jun 14 2018 Miro Hrončok - 1.23-2 -- Bootstrap for Python 3.7 - -* Tue Jun 05 2018 Jeremy Cline - 1.23-1 -- Update to the latest upstream release (rhbz 1586072) - -* Wed May 30 2018 Jeremy Cline - 1.22-10 -- Backport patch to support Python 3.7 (rhbz 1584112) - -* Thu May 03 2018 Lukas Slebodnik - 1.22-9 -- Do not lowercase hostnames with custom-protocol (rhbz 1567862) -- upstream: https://github.com/urllib3/urllib3/issues/1267 - -* Wed Apr 18 2018 Jeremy Cline - 1.22-8 -- Drop the dependency on idna and cryptography (rhbz 1567862) - -* Mon Apr 16 2018 Jeremy Cline - 1.22-7 -- Drop the dependency on PyOpenSSL, it's not needed (rhbz 1567862) - -* Fri Feb 09 2018 Fedora Release Engineering - 1.22-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jan 31 2018 Iryna Shcherbina - 1.22-5 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Thu Jan 25 2018 Tomas Hoger - 1.22-4 -- Fix FTBFS - Move RECENT_DATE to 2017-06-30 - -* Fri Dec 01 2017 Jeremy Cline - 1.22-3 -- Symlink the Python 3 bytecode for six (rbhz 1519147) - -* Thu Jul 27 2017 Fedora Release Engineering - 1.22-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Jul 21 2017 Jeremy Cline - 1.22-1 -- Update to 1.22 (#1473293) - -* Wed May 17 2017 Jeremy Cline - 1.21.1-1 -- Update to 1.21.1 (#1445280) - -* Thu Feb 09 2017 Jeremy Cline - 1.20-1 -- Update to 1.20 (#1414775) - -* Tue Dec 13 2016 Stratakis Charalampos - 1.19.1-2 -- Rebuild for Python 3.6 - -* Thu Nov 17 2016 Jeremy Cline 1.19.1-1 -- Update to 1.19.1 -- Clean up the specfile to only support Fedora 26 - -* Wed Aug 10 2016 Kevin Fenzi - 1.16-3 -- Rebuild now that python-requests is ready to update. - -* Tue Jul 19 2016 Fedora Release Engineering - 1.16-2 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Wed Jun 15 2016 Kevin Fenzi - 1.16-1 -- Update to 1.16 - -* Thu Jun 02 2016 Ralph Bean - 1.15.1-3 -- Create python2 subpackage to comply with guidelines. - -* Wed Jun 01 2016 Ralph Bean - 1.15.1-2 -- Remove broken symlinks to unbundled python3-six files - https://bugzilla.redhat.com/show_bug.cgi?id=1295015 - -* Fri Apr 29 2016 Ralph Bean - 1.15.1-1 -- Removed patch for ipv6 support, now applied upstream. -- Latest version. -- New dep on pysocks. - -* Fri Feb 26 2016 Ralph Bean - 1.13.1-3 -- Apply patch from upstream to fix ipv6. - -* Thu Feb 04 2016 Fedora Release Engineering - 1.13.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Dec 21 2015 Ralph Bean - 1.13.1-1 -- new version - -* Fri Dec 18 2015 Ralph Bean - 1.13-1 -- new version - -* Mon Dec 14 2015 Ralph Bean - 1.12-1 -- new version - -* Thu Oct 15 2015 Robert Kuska - 1.10.4-7 -- Rebuilt for Python3.5 rebuild - -* Sat Oct 10 2015 Ralph Bean - 1.10.4-6 -- Sync from PyPI instead of a git checkout. - -* Tue Sep 08 2015 Ralph Bean - 1.10.4-5.20150503gita91975b -- Drop requirement on python-backports-ssl_match_hostname on F22 and newer. - -* Thu Jun 18 2015 Fedora Release Engineering - 1.10.4-4.20150503gita91975b -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon Jun 08 2015 Ralph Bean - 1.10.4-3.20150503gita91975b -- Apply pyopenssl injection for an outdated cpython as per upstream advice - https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning - https://urllib3.readthedocs.org/en/latest/security.html#pyopenssl - -* Tue May 19 2015 Ralph Bean - 1.10.4-2.20150503gita91975b -- Specify symlinks for six.py{c,o}, fixing rhbz #1222142. - -* Sun May 03 2015 Ralph Bean - 1.10.4-1.20150503gita91975b -- Latest release for python-requests-2.7.0 - -* Wed Apr 29 2015 Ralph Bean - 1.10.3-2.20150429git585983a -- Grab a git snapshot to get around this chunked encoding failure. - -* Wed Apr 22 2015 Ralph Bean - 1.10.3-1 -- new version - -* Thu Feb 26 2015 Ralph Bean - 1.10.2-1 -- new version - -* Wed Feb 18 2015 Ralph Bean - 1.10.1-1 -- new version - -* Wed Feb 18 2015 Ralph Bean - 1.10.1-1 -- new version - -* Mon Jan 05 2015 Ralph Bean - 1.10-2 -- Copy in a shim for ssl_match_hostname on python3. - -* Sun Dec 14 2014 Ralph Bean - 1.10-1 -- Latest upstream 1.10, for python-requests-2.5.0. -- Re-do unbundling without patch, with symlinks. -- Modernize python2 macros. -- Remove the with_dummyserver tests which fail only sometimes. - -* Wed Nov 05 2014 Ralph Bean - 1.9.1-1 -- Latest upstream, 1.9.1 for latest python-requests. - -* Mon Aug 4 2014 Tom Callaway - 1.8.2-4 -- fix license handling - -* Sun Jun 08 2014 Fedora Release Engineering - 1.8.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 14 2014 Bohuslav Kabrda - 1.8.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 - -* Mon Apr 21 2014 Arun S A G - 1.8.2-1 -- Update to latest upstream version - -* Mon Oct 28 2013 Ralph Bean - 1.7.1-2 -- Update patch to find ca_certs in the correct location. - -* Wed Sep 25 2013 Ralph Bean - 1.7.1-1 -- Latest upstream with support for a new timeout class and py3.4. - -* Wed Aug 28 2013 Ralph Bean - 1.7-3 -- Bump release again, just to push an unpaired update. - -* Mon Aug 26 2013 Ralph Bean - 1.7-2 -- Bump release to pair an update with python-requests. - -* Thu Aug 22 2013 Ralph Bean - 1.7-1 -- Update to latest upstream. -- Removed the accept-header proxy patch which is included in upstream now. -- Removed py2.6 compat patch which is included in upstream now. - -* Sun Aug 04 2013 Fedora Release Engineering - 1.5-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jun 11 2013 Toshio Kuratomi - 1.5-6 -- Fix Requires of python-ordereddict to only apply to RHEL - -* Fri Mar 1 2013 Toshio Kuratomi - 1.5-5 -- Unbundling finished! - -* Fri Mar 01 2013 Ralph Bean - 1.5-4 -- Upstream patch to fix Accept header when behind a proxy. -- Reorganize patch numbers to more clearly distinguish them. - -* Wed Feb 27 2013 Ralph Bean - 1.5-3 -- Renamed patches to python-urllib3-* -- Fixed ssl check patch to use the correct cert path for Fedora. -- Included dependency on ca-certificates -- Cosmetic indentation changes to the .spec file. - -* Tue Feb 5 2013 Toshio Kuratomi - 1.5-2 -- python3-tornado BR and run all unittests on python3 - -* Mon Feb 04 2013 Toshio Kuratomi 1.5-1 -- Initial fedora build. diff --git a/plans.fmf b/plans.fmf deleted file mode 100644 index 2bb6f53..0000000 --- a/plans.fmf +++ /dev/null @@ -1,4 +0,0 @@ -discover: - how: fmf -execute: - how: tmt \ No newline at end of file diff --git a/python-urllib3-accept-header-for-proxy.patch b/python-urllib3-accept-header-for-proxy.patch new file mode 100644 index 0000000..8d89f27 --- /dev/null +++ b/python-urllib3-accept-header-for-proxy.patch @@ -0,0 +1,28 @@ +From ea36acfc8a997a19ba1ead58de0d1f01e9eb540f Mon Sep 17 00:00:00 2001 +From: kevin +Date: Thu, 30 Aug 2012 00:14:12 -0400 +Subject: [PATCH 1/4] Fix overwritten Accept header when proxy is used + +When a request specifies both an Accept header and a proxy server, the +Accept header value is overwritten. +--- + urllib3/poolmanager.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/urllib3/poolmanager.py b/urllib3/poolmanager.py +index 8f5b54c..7d7d6e4 100644 +--- a/urllib3/poolmanager.py ++++ b/urllib3/poolmanager.py +@@ -141,7 +141,8 @@ def _set_proxy_headers(self, headers=None): + headers = headers or {} + + # Same headers are curl passes for --proxy1.0 +- headers['Accept'] = '*/*' ++ if 'Accept' not in headers: ++ headers['Accept'] = '*/*' + headers['Proxy-Connection'] = 'Keep-Alive' + + return headers +-- +1.7.10 + diff --git a/python-urllib3-default-ssl-cert-validate.patch b/python-urllib3-default-ssl-cert-validate.patch new file mode 100644 index 0000000..38eea0f --- /dev/null +++ b/python-urllib3-default-ssl-cert-validate.patch @@ -0,0 +1,20 @@ +Author: Jamie Strandboge +Description: require SSL certificate validation by default by using + CERT_REQUIRED and using the system /etc/ssl/certs/ca-certificates.crt +Bug-Ubuntu: https://launchpad.net/bugs/1047054 +Modified for Fedora by Ralph Bean +Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=855320 + +Index: urllib3-1.5/urllib3/connectionpool.py +=================================================================== +--- urllib3-1.5.orig/urllib3/connectionpool.py ++++ urllib3-1.5/urllib3/connectionpool.py +@@ -504,7 +504,7 @@ class HTTPSConnectionPool(HTTPConnection + strict=False, timeout=None, maxsize=1, + block=False, headers=None, + key_file=None, cert_file=None, +- cert_reqs='CERT_NONE', ca_certs=None): ++ cert_reqs='CERT_REQUIRED', ca_certs='/etc/ssl/certs/ca-bundle.crt'): + + super(HTTPSConnectionPool, self).__init__(host, port, + strict, timeout, maxsize, diff --git a/python-urllib3-old-nose-compat.patch b/python-urllib3-old-nose-compat.patch new file mode 100644 index 0000000..e76dda5 --- /dev/null +++ b/python-urllib3-old-nose-compat.patch @@ -0,0 +1,10 @@ +Index: urllib3-1.5/setup.cfg +=================================================================== +--- urllib3-1.5.orig/setup.cfg ++++ urllib3-1.5/setup.cfg +@@ -1,5 +1,4 @@ + [nosetests] +-logging-clear-handlers = true + with-coverage = true + cover-package = urllib3 + diff --git a/python-urllib3-py2.6-compat.patch b/python-urllib3-py2.6-compat.patch new file mode 100644 index 0000000..afcb355 --- /dev/null +++ b/python-urllib3-py2.6-compat.patch @@ -0,0 +1,89 @@ +Index: urllib3-1.5/test/test_collections.py +=================================================================== +--- urllib3-1.5.orig/test/test_collections.py ++++ urllib3-1.5/test/test_collections.py +@@ -122,9 +122,11 @@ class TestLRUContainer(unittest.TestCase + def test_iter(self): + d = Container() + +- with self.assertRaises(NotImplementedError): ++ def to_test(): + for i in d: + self.fail("Iteration shouldn't be implemented.") + ++ self.assertRaises(NotImplementedError, to_test) ++ + if __name__ == '__main__': + unittest.main() +Index: urllib3-1.5/test/test_connectionpool.py +=================================================================== +--- urllib3-1.5.orig/test/test_connectionpool.py ++++ urllib3-1.5/test/test_connectionpool.py +@@ -98,8 +98,7 @@ class TestConnectionPool(unittest.TestCa + + def _test(exception, expect): + pool._make_request = lambda *args, **kwargs: _raise(exception) +- with self.assertRaises(expect): +- pool.request('GET', '/') ++ self.assertRaises(expect, pool.request, 'GET', '/') + + self.assertEqual(pool.pool.qsize(), POOL_SIZE) + +@@ -114,15 +113,13 @@ class TestConnectionPool(unittest.TestCa + # MaxRetryError, not EmptyPoolError + # See: https://github.com/shazow/urllib3/issues/76 + pool._make_request = lambda *args, **kwargs: _raise(HTTPException) +- with self.assertRaises(MaxRetryError): +- pool.request('GET', '/', retries=1, pool_timeout=0.01) ++ self.assertRaises(MaxRetryError, pool.request, 'GET', '/', retries=1, pool_timeout=0.01) + self.assertEqual(pool.pool.qsize(), POOL_SIZE) + + def test_assert_same_host(self): + c = connection_from_url('http://google.com:80') + +- with self.assertRaises(HostChangedError): +- c.request('GET', 'http://yahoo.com:80', assert_same_host=True) ++ self.assertRaises(HostChangedError, c.request, 'GET', 'http://yahoo.com:80', assert_same_host=True) + + def test_pool_close(self): + pool = connection_from_url('http://google.com:80') +@@ -139,16 +136,13 @@ class TestConnectionPool(unittest.TestCa + pool.close() + self.assertEqual(pool.pool, None) + +- with self.assertRaises(ClosedPoolError): +- pool._get_conn() ++ self.assertRaises(ClosedPoolError, pool._get_conn) + + pool._put_conn(conn3) + +- with self.assertRaises(ClosedPoolError): +- pool._get_conn() ++ self.assertRaises(ClosedPoolError, pool._get_conn) + +- with self.assertRaises(Empty): +- old_pool_queue.get(block=False) ++ self.assertRaises(Empty, old_pool_queue.get, block=False) + + + if __name__ == '__main__': +Index: urllib3-1.5/test/test_poolmanager.py +=================================================================== +--- urllib3-1.5.orig/test/test_poolmanager.py ++++ urllib3-1.5/test/test_poolmanager.py +@@ -54,13 +54,11 @@ class TestPoolManager(unittest.TestCase) + p.clear() + self.assertEqual(len(p.pools), 0) + +- with self.assertRaises(ClosedPoolError): +- conn_pool._get_conn() ++ self.assertRaises(ClosedPoolError, conn_pool._get_conn) + + conn_pool._put_conn(conn) + +- with self.assertRaises(ClosedPoolError): +- conn_pool._get_conn() ++ self.assertRaises(ClosedPoolError, conn_pool._get_conn) + + self.assertEqual(len(p.pools), 0) + diff --git a/python-urllib3-unbundle.patch b/python-urllib3-unbundle.patch new file mode 100644 index 0000000..1b5dd64 --- /dev/null +++ b/python-urllib3-unbundle.patch @@ -0,0 +1,162 @@ +Index: urllib3-1.5/urllib3/_collections.py +=================================================================== +--- urllib3-1.5.orig/urllib3/_collections.py ++++ urllib3-1.5/urllib3/_collections.py +@@ -10,7 +10,10 @@ from threading import Lock + try: # Python 2.7+ + from collections import OrderedDict + except ImportError: +- from .packages.ordered_dict import OrderedDict ++ try: # backport package ++ from ordereddict import OrderedDict ++ except ImportError: ++ from .packages.ordered_dict import OrderedDict + + + __all__ = ['RecentlyUsedContainer'] +Index: urllib3-1.5/urllib3/connectionpool.py +=================================================================== +--- urllib3-1.5.orig/urllib3/connectionpool.py ++++ urllib3-1.5/urllib3/connectionpool.py +@@ -51,8 +51,20 @@ from .exceptions import ( + TimeoutError, + ) + +-from .packages.ssl_match_hostname import match_hostname, CertificateError +-from .packages import six ++try: ++ # python3.2+ ++ from ssl import match_hostname, CertificateError ++except ImportError: ++ try: ++ # Older python where the backport from pypi is installed ++ from backports.ssl_match_hostname import match_hostname, CertificateError ++ except ImportError: ++ # Other older python we use our bundled copy ++ from .packages.ssl_match_hostname import match_hostname, CertificateError ++try: ++ import six ++except ImportError: ++ from .packages import six + + + xrange = six.moves.xrange +Index: urllib3-1.5/urllib3/filepost.py +=================================================================== +--- urllib3-1.5.orig/urllib3/filepost.py ++++ urllib3-1.5/urllib3/filepost.py +@@ -10,8 +10,12 @@ import mimetypes + from uuid import uuid4 + from io import BytesIO + +-from .packages import six +-from .packages.six import b ++try: ++ import six ++ from six import b ++except ImportError: ++ from .packages import six ++ from .packages.six import b + + writer = codecs.lookup('utf-8')[3] + +Index: urllib3-1.5/urllib3/response.py +=================================================================== +--- urllib3-1.5.orig/urllib3/response.py ++++ urllib3-1.5/urllib3/response.py +@@ -11,7 +11,10 @@ import zlib + from io import BytesIO + + from .exceptions import DecodeError +-from .packages.six import string_types as basestring ++try: ++ from six import string_types as basestring ++except ImportError: ++ from .packages.six import string_types as basestring + + + log = logging.getLogger(__name__) +Index: urllib3-1.5/urllib3/util.py +=================================================================== +--- urllib3-1.5.orig/urllib3/util.py ++++ urllib3-1.5/urllib3/util.py +@@ -18,7 +18,10 @@ except ImportError: # `poll` doesn't exi + except ImportError: # `select` doesn't exist on AppEngine. + select = False + +-from .packages import six ++try: ++ import six ++except ImporError: ++ from .packages import six + from .exceptions import LocationParseError + + +Index: urllib3-1.5/test/test_collections.py +=================================================================== +--- urllib3-1.5.orig/test/test_collections.py ++++ urllib3-1.5/test/test_collections.py +@@ -1,7 +1,10 @@ + import unittest + + from urllib3._collections import RecentlyUsedContainer as Container +-from urllib3.packages import six ++try: ++ import six ++except ImportError: ++ from urllib3.packages import six + xrange = six.moves.xrange + + +Index: urllib3-1.5/test/test_connectionpool.py +=================================================================== +--- urllib3-1.5.orig/test/test_connectionpool.py ++++ urllib3-1.5/test/test_connectionpool.py +@@ -1,7 +1,16 @@ + import unittest + + from urllib3.connectionpool import connection_from_url, HTTPConnectionPool +-from urllib3.packages.ssl_match_hostname import CertificateError ++try: ++ # python3.2+ ++ from ssl import CertificateError ++except ImportError: ++ try: ++ # Older python where the backport from pypi is installed ++ from backports.ssl_match_hostname import CertificateError ++ except ImportError: ++ # Other older python we use our bundled copy ++ from urllib3.packages.ssl_match_hostname import CertificateError + from urllib3.exceptions import ( + ClosedPoolError, + EmptyPoolError, +Index: urllib3-1.5/test/test_filepost.py +=================================================================== +--- urllib3-1.5.orig/test/test_filepost.py ++++ urllib3-1.5/test/test_filepost.py +@@ -1,7 +1,10 @@ + import unittest + + from urllib3.filepost import encode_multipart_formdata, iter_fields +-from urllib3.packages.six import b, u ++try: ++ from six import b, u ++except ImportError: ++ from urllib3.packages.six import b, u + + + BOUNDARY = '!! test boundary !!' +Index: urllib3-1.5/setup.py +=================================================================== +--- urllib3-1.5.orig/setup.py ++++ urllib3-1.5/setup.py +@@ -44,8 +44,7 @@ setup(name='urllib3', + author_email='andrey.petrov@shazow.net', + url='http://urllib3.readthedocs.org/', + license='MIT', +- packages=['urllib3', 'dummyserver', 'urllib3.packages', +- 'urllib3.packages.ssl_match_hostname', ++ packages=['urllib3', 'dummyserver', 'urllib3', + ], + requires=requirements, + tests_require=tests_requirements, diff --git a/python-urllib3.rpmlintrc b/python-urllib3.rpmlintrc deleted file mode 100644 index e9bd352..0000000 --- a/python-urllib3.rpmlintrc +++ /dev/null @@ -1 +0,0 @@ -addFilter(r"spelling-error \('(gzip|brotli|zstd)',") diff --git a/python-urllib3.spec b/python-urllib3.spec index 5b863bf..eef1de7 100644 --- a/python-urllib3.spec +++ b/python-urllib3.spec @@ -1,188 +1,166 @@ -# When bootstrapping Python, we cannot test this yet -# RHEL does not include the test dependencies and the dependencies for extras -%bcond tests %{undefined rhel} -%bcond extras %[%{undefined rhel} || %{defined eln}] -%bcond extradeps %{undefined rhel} +%if 0%{?fedora} +%global with_python3 1 +%else +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} +%endif -Name: python-urllib3 -Version: 2.6.3 -Release: %autorelease -Summary: HTTP library with thread-safe connection pooling, file post, and more +%global srcname urllib3 + +Name: python-%{srcname} +Version: 1.5 +Release: 7%{?dist} +Summary: Python HTTP library with thread-safe connection pooling and file post -# SPDX License: MIT -URL: https://github.com/urllib3/urllib3 -Source0: %{url}/archive/%{version}/urllib3-%{version}.tar.gz -# A special forked copy of Hypercorn is required for testing. We asked about -# the possiblility of using a released version in the future in: -# Path toward testing with a released version of hypercorn? -# https://github.com/urllib3/urllib3/3334 -# Upstream would like to get the necessary changes merged into Hypercorn, but -# explained clearly why the forked copy is needed for now. -# -# Note that tool.uv.sources.hypercorn in pyproject.toml references the -# urllib3-changes branch of https://github.com/urllib3/hypercorn/, and we -# should use the latest commit from that branch, but we package using a commit -# hash for reproducibility. -# -# We do not need to treat this as a bundled dependency because it is not -# installed in the buildroot or otherwise included in any of the binary RPMs. -%global hypercorn_url https://github.com/urllib3/hypercorn -%global hypercorn_commit d1719f8c1570cbd8e6a3719ffdb14a4d72880abb -Source1: %{hypercorn_url}/archive/%{hypercorn_commit}/hypercorn-%{hypercorn_commit}.tar.gz +URL: http://urllib3.readthedocs.org/ +Source0: http://pypi.python.org/packages/source/u/%{srcname}/%{srcname}-%{version}.tar.gz + +# Patch to change default behaviour to check SSL certs for validity +# https://bugzilla.redhat.com/show_bug.cgi?id=855320 +Patch0: python-urllib3-default-ssl-cert-validate.patch + +### TODO: Send this to upstream urllib3 +# make all imports of things in packages try system copies first +Patch1: python-urllib3-unbundle.patch + +# Fix accept header when behind a proxy +#https://github.com/shazow/urllib3/pull/93 +#https://github.com/shazow/urllib3/pull/93.patch +Patch2: python-urllib3-accept-header-for-proxy.patch + +# Remove logging-clear-handlers from setup.cfg because it's not available in RHEL6's nose +Patch100: python-urllib3-old-nose-compat.patch +### TODO: Send this upstream +# Compatibility with python-2.6's unittest +Patch101: python-urllib3-py2.6-compat.patch BuildArch: noarch -BuildRequires: python3-devel -# The conditional is important: we benefit from tomcli for editing dependency -# groups, but we do not want it when bootstrapping or in RHEL. -%if %{with tests} -BuildRequires: tomcli -%endif - -%global _description %{expand: -urllib3 is a powerful, user-friendly HTTP client for Python. urllib3 brings -many critical features that are missing from the Python standard libraries: - - • Thread safety. - • Connection pooling. - • Client-side SSL/TLS verification. - • File uploads with multipart encoding. - • Helpers for retrying requests and dealing with HTTP redirects. - • Support for gzip, deflate, brotli, and zstd encoding. - • Proxy support for HTTP and SOCKS. - • 100% test coverage.} - -%description %{_description} - - -%package -n python3-urllib3 -Summary: %{summary} - -BuildRequires: ca-certificates Requires: ca-certificates +Requires: python-six -# There has historically been a manual hard dependency on python3-idna. -BuildRequires: %{py3_dist idna} -Requires: %{py3_dist idna} - -%if %{with extradeps} -# There has historically been a manual hard dependency on python3-pysocks; -# since bringing it in is the sole function of python3-urllib3+socks, -# we recommend it, so it is installed by default. -Recommends: python3-urllib3+socks +Requires: python-backports-ssl_match_hostname +%if 0%{?rhel} && 0%{?rhel} <= 6 +BuildRequires: python-ordereddict +Requires: python-ordereddict %endif -%description -n python3-urllib3 %{_description} +BuildRequires: python2-devel +# For unittests +BuildRequires: python-nose +BuildRequires: python-six +BuildRequires: python-tornado +BuildRequires: python-backports-ssl_match_hostname +%if 0%{?with_python3} +BuildRequires: python3-devel +# For unittests +BuildRequires: python3-nose +BuildRequires: python3-six +BuildRequires: python3-tornado +%endif # with_python3 -%if %{with extras} -%pyproject_extras_subpkg -n python3-urllib3 brotli zstd socks h2 -%endif +%description +Python HTTP module with connection pooling and file POST abilities. + +%if 0%{?with_python3} +%package -n python3-%{srcname} +Requires: ca-certificates +Requires: python3-six +# Note: Will not run with python3 < 3.2 (unless python3-backports-ssl_match_hostname is created) +Summary: Python3 HTTP library with thread-safe connection pooling and file post +%description -n python3-%{srcname} +Python3 HTTP module with connection pooling and file POST abilities. +%endif # with_python3 %prep -%autosetup -n urllib3-%{version} -%setup -q -n urllib3-%{version} -T -D -b 1 +%setup -q -n %{srcname}-%{version} -# Make sure that the RECENT_DATE value doesn't get too far behind what the current date is. -# RECENT_DATE must not be older that 2 years from the build time, or else test_recent_date -# (from test/test_connection.py) would fail. However, it shouldn't be to close to the build time either, -# since a user's system time could be set to a little in the past from what build time is (because of timezones, -# corner cases, etc). As stated in the comment in src/urllib3/connection.py: -# When updating RECENT_DATE, move it to within two years of the current date, -# 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) -# There is also a test_ssl_wrong_system_time test (from test/with_dummyserver/test_https.py) that tests if -# user's system time isn't set as too far in the past, because it could lead to SSL verification errors. -# That is why we need RECENT_DATE to be set at most 2 years ago (or else test_ssl_wrong_system_time would -# result in false positive), but before at least 6 month ago (so this test could tolerate user's system time being -# set to some time in the past, but not to far away from the present). -# Next few lines update RECENT_DATE dynamically. -recent_date=$(date --date "7 month ago" +"%Y, %_m, %_d") -sed -i "s/^RECENT_DATE = datetime.date(.*)/RECENT_DATE = datetime.date($recent_date)/" src/urllib3/connection.py +rm -rf urllib3/packages/ -%if %{with tests} -# Possible improvements to dependency groups -# https://github.com/urllib3/urllib3/issues/3594 -# Adjust the contents of the "dev" dependency group by removing: -remove_from_dev() { - tomcli set pyproject.toml lists delitem 'dependency-groups.dev' "($1)\b.*" -} -# - Linters, coverage tools, profilers, etc.: -# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters -remove_from_dev 'coverage|pytest-memray' -# - Dependencies for maintainer tasks -remove_from_dev 'build|towncrier' -# - Dependencies that are not packaged and not strictly required -remove_from_dev 'pytest-socket' -# - Hypercorn, because we have a special forked version we must use for -# testing instead, so we do not want to generate a dependency on the system -# copy. Note that the system copy is still an indirect dependency via quart -# and quart-trio. -remove_from_dev 'hypercorn' - -# Remove all version bounds for test dependencies. We must attempt to make do -# with what we have. (This also removes any python version or platform -# constraints, which is currently fine, but could theoretically cause trouble -# in the future. We’ll cross that bridge if we ever arrive at it.) -tomcli set pyproject.toml lists replace --type regex_search \ - 'dependency-groups.dev' '[>=]=.*' '' +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%if 0%{?rhel} && 0%{?rhel} <= 6 +%patch100 -p1 +%patch101 -p1 %endif - -%generate_buildrequires -export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' -# Generate BR’s from packaged extras even when tests are disabled, to ensure -# the extras metapackages are installable if the build succeeds. -%pyproject_buildrequires %{?with_extradeps:-x brotli,zstd,socks,h2} %{?with_tests:-g dev} - +%if 0%{?with_python3} +rm -rf %{py3dir} +cp -a . %{py3dir} +%endif # with_python3 %build -export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' -%pyproject_wheel +%{__python} setup.py build +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} setup.py build +popd +%endif # with_python3 %install -%pyproject_install +rm -rf %{buildroot} +%{__python} setup.py install --skip-build --root %{buildroot} -%pyproject_save_files -l urllib3 +# dummyserver is part of the unittest framework +rm -rf %{buildroot}%{python_sitelib}/dummyserver +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} setup.py install --skip-build --root %{buildroot} + +# dummyserver is part of the unittest framework +rm -rf %{buildroot}%{python3_sitelib}/dummyserver +popd +%endif # with_python3 %check -# urllib3.contrib.socks requires urllib3[socks] -# -# urllib3.contrib.emscripten is “special” (import js will fail) -# urllib3.contrib.ntlmpool is deprecated and requires ntlm -# urllib3.contrib.securetransport is macOS only -# urllib3.contrib.pyopenssl requires pyOpenSSL -%{pyproject_check_import %{!?with_extradeps:-e urllib3.contrib.socks -e urllib3.http2*} - -e urllib3.contrib.emscripten* - -e urllib3.contrib.ntlmpool - -e urllib3.contrib.securetransport - -e urllib3.contrib.pyopenssl} +nosetests -# Increase the “long timeout” for slower environments; as of this writing, it -# is increased from 0.1 to 0.5 second. -export CI=1 -# Interpose the special forked copy of Hypercorn. -hypercorndir="${PWD}/../hypercorn-%{hypercorn_commit}/src" -export PYTHONPATH="${hypercorndir}:%{buildroot}%{python3_sitelib}" +%if 0%{?with_python3} +pushd %{py3dir} +nosetests-%{python3_version} +popd +%endif # with_python3 -%if %{with tests} -# This test still times out sometimes, especially on certain architectures, -# even when we export the CI environment variable to increase timeouts. -k="${k-}${k+ and }not (TestHTTPProxyManager and test_tunneling_proxy_request_timeout[https-https])" - -%pytest -v -rs ${ignore-} -k "${k-}" -%pytest -v -rs ${ignore-} -k "${k-}" --integration -%endif - - -%files -n python3-urllib3 -f %{pyproject_files} -%doc CHANGES.rst README.md +%files +%doc CHANGES.rst LICENSE.txt README.rst CONTRIBUTORS.txt +# For noarch packages: sitelib +%{python_sitelib}/* +%if 0%{?with_python3} +%files -n python3-%{srcname} +%doc LICENSE.txt +# For noarch packages: sitelib +%{python3_sitelib}/* +%endif # with_python3 %changelog -%autochangelog +* Mon Oct 28 2013 Ralph Bean - 1.5-7 +- Update patch to find ca_certs in the correct place. + +* Tue Jun 11 2013 Toshio Kuratomi - 1.5-6 +- Fix Requires of python-ordereddict to only apply to RHEL + +* Fri Mar 1 2013 Toshio Kuratomi - 1.5-5 +- Unbundling finished! + +* Fri Mar 01 2013 Ralph Bean - 1.5-4 +- Upstream patch to fix Accept header when behind a proxy. +- Reorganize patch numbers to more clearly distinguish them. + +* Wed Feb 27 2013 Ralph Bean - 1.5-3 +- Renamed patches to python-urllib3-* +- Fixed ssl check patch to use the correct cert path for Fedora. +- Included dependency on ca-certificates +- Cosmetic indentation changes to the .spec file. + +* Tue Feb 5 2013 Toshio Kuratomi - 1.5-2 +- python3-tornado BR and run all unittests on python3 + +* Mon Feb 04 2013 Toshio Kuratomi 1.5-1 +- Initial fedora build. + diff --git a/sources b/sources index d7b27ef..24f2a19 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (urllib3-2.6.3.tar.gz) = 554cedfd97d411fffa9a8ba46f592eab9e58c5fa8822ecd5a73ab45d6adfc188a6b9c4e238d02a4fbd3a1067a25a1de841a33d398d0641e22a32ea414876b615 -SHA512 (hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.tar.gz) = 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b +3ee4b375a095bb6098f1ed75f8058e48 urllib3-1.5.tar.gz diff --git a/tests/smoke/smoke.fmf b/tests/smoke/smoke.fmf deleted file mode 100644 index 69c01da..0000000 --- a/tests/smoke/smoke.fmf +++ /dev/null @@ -1,5 +0,0 @@ -test: python3 test.py -framework: shell -require: -- python3 -- python3-urllib3 diff --git a/tests/smoke/test.py b/tests/smoke/test.py deleted file mode 100644 index 9ac5805..0000000 --- a/tests/smoke/test.py +++ /dev/null @@ -1,8 +0,0 @@ -import urllib3 - -http = urllib3.PoolManager() -r = http.request('GET', 'http://example.com/') -print('status = {0}'.format(r.status)) -print(r.data) -if r.status != 200 or not r.data: - raise SystemExit(1)