[packages/python3-urllib3] - python-urllib3.spec updated to 2.6.2 for python 3.9+

qboosh qboosh at pld-linux.org
Tue Jan 27 09:41:26 CET 2026


commit b75b360fca10ebb57abb4b137c4173f5de701927
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Jan 27 09:41:36 2026 +0100

    - python-urllib3.spec updated to 2.6.2 for python 3.9+

 python-urllib3-httplib.patch |  14 ---
 python-urllib3-mock.patch    | 163 --------------------------------
 python-urllib3.spec          | 214 -------------------------------------------
 python3-urllib3.spec         | 142 ++++++++++++++++++++++++++++
 4 files changed, 142 insertions(+), 391 deletions(-)
---
diff --git a/python-urllib3.spec b/python-urllib3.spec
deleted file mode 100644
index da10a92..0000000
--- a/python-urllib3.spec
+++ /dev/null
@@ -1,214 +0,0 @@
-# TODO: use system six, [backports.]ssl_match_hostname
-#
-# Conditional build:
-%bcond_without	python2	# CPython 2.x module
-%bcond_without	python3	# CPython 3.x module
-%bcond_without	doc	# Sphinx documentation
-%bcond_with	tests	# test target (uses network etc., few failures)
-
-%define		module		urllib3
-Summary:	HTTP library with thread-safe connection pooling, file post, and more
-Summary(pl.UTF-8):	Biblioteka HTTP z bezpieczną wątkowo pulą połączeń, wysyłaniem plików itd.
-Name:		python-%{module}
-# note: maintain versions compatible with python-requests.spec
-Version:	1.26.20
-Release:	1
-License:	MIT
-Group:		Development/Languages/Python
-#Source0Download: https://pypi.org/simple/urllib3/
-Source0:	https://files.pythonhosted.org/packages/source/u/urllib3/%{module}-%{version}.tar.gz
-# Source0-md5:	a2720182586f0ccb1ac34df9f24b0aee
-Patch0:		%{name}-mock.patch
-Patch1:		%{name}-httplib.patch
-URL:		https://urllib3.readthedocs.io/
-%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
-BuildRequires:	glibc-localedb-all
-%endif
-%if %{with python2}
-BuildRequires:	python >= 1:2.7
-BuildRequires:	python-modules >= 1:2.7
-BuildRequires:	python-setuptools
-%if %{with tests}
-BuildRequires:	python-PySocks >= 1.7.1
-BuildRequires:	python-PySocks < 2.0
-BuildRequires:	python-cryptography >= 2.8
-BuildRequires:	python-dateutil >= 2.8.1
-BuildRequires:	python-flaky >= 3.6.1
-# TODO
-#BuildRequires:	python-gcp_devrel-py-tools >= 0.0.15
-BuildRequires:	python-mock >= 3.0.5
-BuildRequires:	python-pytest >= 4.6.9
-BuildRequires:	python-pytest-freezegun >= 0.3.0
-BuildRequires:	python-pytest-timeout >= 1.3.4
-BuildRequires:	python-tornado >= 5.1.1
-BuildRequires:	python-trustme >= 0.5.3
-# SO_REUSEPORT option
-BuildRequires:	uname(release) >= 3.9
-%endif
-%endif
-%if %{with python3}
-BuildRequires:	python3 >= 1:3.5
-BuildRequires:	python3-modules >= 1:3.5
-BuildRequires:	python3-setuptools
-%if %{with tests}
-BuildRequires:	python3-PySocks >= 1.7.1
-BuildRequires:	python3-PySocks < 2.0
-BuildRequires:	python3-cryptography >= 2.8
-BuildRequires:	python3-dateutil >= 2.8.1
-BuildRequires:	python3-flaky >= 3.6.1
-#BuildRequires:	python3-gcp_devrel-py-tools >= 0.0.15
-BuildRequires:	python3-pytest >= 4.6.9
-BuildRequires:	python3-pytest-freezegun >= 0.4.2
-BuildRequires:	python3-pytest-timeout >= 1.3.4
-BuildRequires:	python3-tornado >= 6.0.3
-BuildRequires:	python3-trustme >= 0.5.3
-# SO_REUSEPORT option
-BuildRequires:	uname(release) >= 3.9
-%endif
-%endif
-BuildRequires:	rpm-pythonprov
-BuildRequires:	rpmbuild(macros) >= 1.714
-%if %{with doc}
-BuildRequires:	python3-furo
-BuildRequires:	python3-requests >= 2
-BuildRequires:	sphinx-pdg-3 >= 3.0
-%endif
-Requires:	python-modules >= 1:2.7
-BuildArch:	noarch
-BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-
-%description
-Python 2 HTTP module with connection pooling and file POST abilities.
-Features are:
-- Re-use the same socket connection for multiple requests (with
-  optional client-side certificate verification).
-- File posting (encode_multipart_formdata).
-- Built-in redirection and retries (optional).
-- Supports gzip and deflate decoding.
-- Thread-safe and sanity-safe.
-
-%description -l pl.UTF-8
-Moduł HTTP dla Pythona 2 z pulą połączeń i możliwością wysyłania
-plików metodą POST. Możliwości:
-- używanie tego samego połączenia dla wielu żądań (z opcjonalną
-  weryfikacją certyfikatu po stronie klienta)
-- wysyłanie plików (encode_multipart_formdata)
-- wbudowane przekierowania i ponawianie prób (opcjonalne)
-- obsługa kodowań gzip i deflate
-- bezpieczeństwo względem wątków.
-
-%package -n python3-urllib3
-Summary:	HTTP library with thread-safe connection pooling, file post, and more
-Summary(pl.UTF-8):	Biblioteka HTTP z bezpieczną wątkowo pulą połączeń, wysyłaniem plików itd.
-Group:		Development/Languages/Python
-Requires:	python3-modules >= 1:3.5
-
-%description -n python3-urllib3
-Python 3 HTTP module with connection pooling and file POST abilities.
-Features are:
-- Re-use the same socket connection for multiple requests (with
-  optional client-side certificate verification).
-- File posting (encode_multipart_formdata).
-- Built-in redirection and retries (optional).
-- Supports gzip and deflate decoding.
-- Thread-safe and sanity-safe.
-
-%description -n python3-urllib3 -l pl.UTF-8
-Moduł HTTP dla Pythona 3 z pulą połączeń i możliwością wysyłania
-plików metodą POST. Możliwości:
-- używanie tego samego połączenia dla wielu żądań (z opcjonalną
-  weryfikacją certyfikatu po stronie klienta)
-- wysyłanie plików (encode_multipart_formdata)
-- wbudowane przekierowania i ponawianie prób (opcjonalne)
-- obsługa kodowań gzip i deflate
-- bezpieczeństwo względem wątków.
-
-%package apidocs
-Summary:	API documentation for Python urllib3 module
-Summary(pl.UTF-8):	Dokumentacja API modułu Pythona urllib3
-Group:		Documentation
-
-%description apidocs
-API documentation for Python urllib3 module.
-
-%description apidocs -l pl.UTF-8
-Dokumentacja API modułu Pythona urllib3.
-
-%prep
-%setup -q -n %{module}-%{version}
-%patch -P 0 -p1
-%patch -P 1 -p1
-
-%build
-%if %{with python2}
-%py_build
-
-%if %{with tests}
-# RECENT_DATE is too old
-# test_retry.py: many failures with py2
-# TestSSL: unknown ca, timeout errors etc.
-LC_ALL=C.UTF-8 \
-PYTHONPATH=$(pwd)/src \
-PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
-PYTEST_PLUGINS="flaky.flaky_pytest_plugin,pytest_freezegun,pytest_timeout" \
-%{__python} -m pytest test -k 'not (test_recent_date or test_retry or test_ssl_read_timeout or test_ssl_failed_fingerprint_verification)'
-# or TestSSL)'
-%endif
-%endif
-
-%if %{with python3}
-%py3_build
-
-%if %{with tests}
-# RECENT_DATE is too old
-# TestSSL: verification errors
-PYTHONPATH=$(pwd)/src \
-PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
-PYTEST_PLUGINS="flaky.flaky_pytest_plugin,pytest_freezegun,pytest_timeout" \
-%{__python3} -m pytest test -k 'not (test_recent_date or test_ssl_read_timeout or test_ssl_failed_fingerprint_verification)'
-%endif
-%endif
-
-%if %{with doc}
-%{__make} -C docs html \
-	SPHINXBUILD=sphinx-build-3 \
-	SPHINXOPTS=
-%endif
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-%if %{with python2}
-%py_install
-
-%py_postclean
-%endif
-
-%if %{with python3}
-%py3_install
-%endif
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%if %{with python2}
-%files
-%defattr(644,root,root,755)
-%doc CHANGES.rst LICENSE.txt README.rst
-%{py_sitescriptdir}/%{module}
-%{py_sitescriptdir}/%{module}-%{version}-py*.egg-info
-%endif
-
-%if %{with python3}
-%files -n python3-urllib3
-%defattr(644,root,root,755)
-%doc CHANGES.rst LICENSE.txt README.rst
-%{py3_sitescriptdir}/%{module}
-%{py3_sitescriptdir}/%{module}-%{version}-py*.egg-info
-%endif
-
-%if %{with doc}
-%files apidocs
-%defattr(644,root,root,755)
-%doc docs/_build/html/{_static,reference,*.html,*.js}
-%endif
diff --git a/python3-urllib3.spec b/python3-urllib3.spec
new file mode 100644
index 0000000..5551c28
--- /dev/null
+++ b/python3-urllib3.spec
@@ -0,0 +1,142 @@
+# TODO: use system [backports.]ssl_match_hostname
+#
+# Conditional build:
+%bcond_without	doc	# Sphinx documentation
+%bcond_without	tests	# unit tests
+
+%define		module		urllib3
+Summary:	HTTP library with thread-safe connection pooling, file post, and more
+Summary(pl.UTF-8):	Biblioteka HTTP z bezpieczną wątkowo pulą połączeń, wysyłaniem plików itd.
+Name:		python3-%{module}
+Version:	2.6.2
+Release:	1
+License:	MIT
+Group:		Development/Languages/Python
+#Source0Download: https://pypi.org/simple/urllib3/
+Source0:	https://files.pythonhosted.org/packages/source/u/urllib3/%{module}-%{version}.tar.gz
+# Source0-md5:	838e0ffee00ec870a3ba6727a7832ab8
+URL:		https://urllib3.readthedocs.io/
+%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
+BuildRequires:	glibc-localedb-all
+%endif
+BuildRequires:	python3 >= 1:3.9
+BuildRequires:	python3-build >= 1.2.2.post1
+BuildRequires:	python3-hatch-vcs >= 0.4.0
+BuildRequires:	python3-hatch-vcs < 0.6
+BuildRequires:	python3-hatchling >= 1.27.0
+BuildRequires:	python3-hatchling < 2
+BuildRequires:	python3-installer
+BuildRequires:	python3-modules >= 1:3.9
+BuildRequires:	python3-setuptools_scm >= 8
+BuildRequires:	python3-setuptools_scm < 10
+%if %{with tests}
+BuildRequires:	python3-PySocks >= 1.7.1
+BuildRequires:	python3-PySocks < 2
+BuildRequires:	python3-anyio >= 4.8.0
+%if "%{_ver_lt %{py3_ver} 3.14}" == "1"
+BuildRequires:	python3-backports.zstd >= 1.0.0
+%endif
+BuildRequires:	python3-brotli >= 1.2.0
+BuildRequires:	python3-cryptography >= 44.0.2
+BuildRequires:	python3-h2 >= 4.1.0
+BuildRequires:	python3-h2 < 5
+BuildRequires:	python3-httpx >= 0.28.1
+BuildRequires:	python3-hypercorn >= 0.15.0
+BuildRequires:	python3-idna >= 3.10
+BuildRequires:	python3-pyOpenSSL >= 25.0.0
+BuildRequires:	python3-pytest >= 8.3.4
+BuildRequires:	python3-pytest-memray >= 1.8.0
+BuildRequires:	python3-pytest-socket >= 0.7.0
+BuildRequires:	python3-pytest-timeout >= 2.3.1
+BuildRequires:	python3-quart >= 0.20.0
+BuildRequires:	python3-quart-trio >= 0.12.0
+BuildRequires:	python3-trio >= 0.27.0
+BuildRequires:	python3-trustme >= 1.2.1
+# SO_REUSEPORT option
+BuildRequires:	uname(release) >= 3.9
+%endif
+BuildRequires:	rpm-pythonprov
+BuildRequires:	rpmbuild(macros) >= 2.044
+%if %{with doc}
+BuildRequires:	python3-furo >= 2024.8.6
+BuildRequires:	python3-requests >= 2.32.3
+BuildRequires:	python3-sphinx_copybutton >= 0.5.2
+BuildRequires:	python3-sphinxext.opengraph >= 0.9.1
+BuildRequires:	sphinx-pdg-3 >= 7.2.6
+%endif
+Requires:	python3-modules >= 1:3.9
+BuildArch:	noarch
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Python HTTP module with connection pooling and file POST abilities.
+Features are:
+- Re-use the same socket connection for multiple requests (with
+  optional client-side certificate verification).
+- File posting (encode_multipart_formdata).
+- Built-in redirection and retries (optional).
+- Supports gzip and deflate decoding.
+- Thread-safe and sanity-safe.
+
+%description -l pl.UTF-8
+Moduł HTTP dla Pythona z pulą połączeń i możliwością wysyłania
+plików metodą POST. Możliwości:
+- używanie tego samego połączenia dla wielu żądań (z opcjonalną
+  weryfikacją certyfikatu po stronie klienta)
+- wysyłanie plików (encode_multipart_formdata)
+- wbudowane przekierowania i ponawianie prób (opcjonalne)
+- obsługa kodowań gzip i deflate
+- bezpieczeństwo względem wątków.
+
+%package apidocs
+Summary:	API documentation for Python urllib3 module
+Summary(pl.UTF-8):	Dokumentacja API modułu Pythona urllib3
+Group:		Documentation
+
+%description apidocs
+API documentation for Python urllib3 module.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API modułu Pythona urllib3.
+
+%prep
+%setup -q -n %{module}-%{version}
+
+%build
+%py3_build_pyproject
+
+%if %{with tests}
+# TestHTTPS_TLSv1_[23] tests: fail because of no ["extensions"]["tls"] key in quart request scope(???)
+# TestHTTPProxyManager and TestHTTPSProxyVerification: fail because of no ["extension"]["_transport"] key in quart request scope(???)
+PYTHONPATH=$(pwd)/src \
+PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
+PYTEST_PLUGINS="anyio.pytest_plugin,pytest_memray.plugin,pytest_socket,pytest_timeout" \
+%{__python3} -m pytest test -k 'not (test_client_intermediate or test_client_key_password or test_alpn_default or test_http2_probe_result_is_cached or test_basic_proxy or test_https_proxy or test_is_verified_http_proxy_to_https_target or test_is_verified_https_proxy_to_https_target or test_http_and_https_kwarg_ca_cert_data_proxy or test_https_proxy_with_proxy_ssl_context or test_oldapi or test_proxy_verified or test_headers or test_https_headers or test_proxy_pooling or test_scheme_host_case_insensitive or test_https_proxy_assert_fingerprint_md5 or test_https_proxy_assert_hostname or test_https_proxy_ipv4_san or test_https_proxy_ipv6_san or test_https_proxy_no_san_hostname_checks_common_name)'
+# -k 'not (test_recent_date or test_ssl_read_timeout or test_ssl_failed_fingerprint_verification)'
+%endif
+
+%if %{with doc}
+%{__make} -C docs html \
+	SPHINXBUILD=sphinx-build-3 \
+	SPHINXOPTS=
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%py3_install_pyproject
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc CHANGES.rst LICENSE.txt README.md
+%{py3_sitescriptdir}/urllib3
+%{py3_sitescriptdir}/urllib3-%{version}.dist-info
+
+%if %{with doc}
+%files apidocs
+%defattr(644,root,root,755)
+%doc docs/_build/html/{_images,_static,reference,*.html,*.js}
+%endif
diff --git a/python-urllib3-httplib.patch b/python-urllib3-httplib.patch
deleted file mode 100644
index c454bcf..0000000
--- a/python-urllib3-httplib.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- urllib3-1.26.2/test/appengine/test_urlfetch.py.orig	2021-01-17 21:19:07.753047443 +0100
-+++ urllib3-1.26.2/test/appengine/test_urlfetch.py	2021-01-17 21:20:34.032580026 +0100
-@@ -2,7 +2,10 @@
- App Engine sandbox enabled that urllib3 appropriately uses the App
- Engine-patched version of httplib to make requests."""
- 
--import httplib
-+try:
-+    import httplib
-+except ImportError:
-+    import http.client as httplib
- import pytest
- import StringIO
- from mock import patch
diff --git a/python-urllib3-mock.patch b/python-urllib3-mock.patch
deleted file mode 100644
index 3df5f61..0000000
--- a/python-urllib3-mock.patch
+++ /dev/null
@@ -1,163 +0,0 @@
---- urllib3-1.24.1/docs/conf.py.orig	2018-10-05 23:00:05.000000000 +0200
-+++ urllib3-1.24.1/docs/conf.py	2018-12-02 09:35:52.593757249 +0100
-@@ -27,7 +27,10 @@
- # Mock some expensive/platform-specific modules so build will work.
- # (https://read-the-docs.readthedocs.io/en/latest/faq.html#\
- #  i-get-import-errors-on-libraries-that-depend-on-c-modules)
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- 
- 
- class MockModule(mock.Mock):
---- urllib3-1.26.2/test/test_connection.py.orig	2021-01-17 21:03:32.174782572 +0100
-+++ urllib3-1.26.2/test/test_connection.py	2021-01-17 21:06:45.107070701 +0100
-@@ -1,6 +1,9 @@
- import datetime
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- 
- from urllib3.connection import RECENT_DATE, CertificateError, _match_hostname
---- urllib3-1.26.2/test/test_queue_monkeypatch.py.orig	2021-01-17 21:03:32.174782572 +0100
-+++ urllib3-1.26.2/test/test_queue_monkeypatch.py	2021-01-17 21:07:04.446965928 +0100
-@@ -1,6 +1,9 @@
- from __future__ import absolute_import
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- 
- from urllib3 import HTTPConnectionPool
---- urllib3-1.26.2/test/test_response.py.orig	2021-01-17 21:03:32.174782572 +0100
-+++ urllib3-1.26.2/test/test_response.py	2021-01-17 21:07:27.800172746 +0100
-@@ -9,7 +9,10 @@
- from io import BufferedReader, BytesIO, TextIOWrapper
- from test import onlyBrotlipy
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- import six
- 
---- urllib3-1.26.2/test/test_retry.py.orig	2021-01-17 21:03:32.174782572 +0100
-+++ urllib3-1.26.2/test/test_retry.py	2021-01-17 21:07:44.043418082 +0100
-@@ -1,6 +1,9 @@
- import warnings
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- 
- from urllib3.exceptions import (
---- urllib3-1.26.2/test/test_ssl.py.orig	2021-01-17 21:03:32.174782572 +0100
-+++ urllib3-1.26.2/test/test_ssl.py	2021-01-17 21:07:59.646666886 +0100
-@@ -1,6 +1,9 @@
- from test import notPyPy2
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- 
- from urllib3.exceptions import SNIMissingWarning
---- urllib3-1.26.2/test/test_util.py.orig	2021-01-17 21:03:32.178115887 +0100
-+++ urllib3-1.26.2/test/test_util.py	2021-01-17 21:08:29.376505825 +0100
-@@ -9,7 +9,10 @@
- from test import notBrotlipy, onlyBrotlipy, onlyPy2, onlyPy3
- 
- import pytest
--from mock import Mock, patch
-+try:
-+    from mock import Mock, patch
-+except ImportError:
-+    from unittest.mock import Mock, patch
- 
- from urllib3 import add_stderr_logger, disable_warnings, util
- from urllib3.exceptions import (
---- urllib3-1.25.9/test/contrib/test_pyopenssl.py.orig	2020-04-16 14:42:30.000000000 +0200
-+++ urllib3-1.25.9/test/contrib/test_pyopenssl.py	2020-06-07 22:30:33.011793894 +0200
-@@ -1,7 +1,10 @@
- # -*- coding: utf-8 -*-
- import os
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- 
- try:
---- urllib3-1.26.2/test/contrib/test_pyopenssl_dependencies.py.orig	2021-01-17 21:10:14.782601458 +0100
-+++ urllib3-1.26.2/test/contrib/test_pyopenssl_dependencies.py	2021-01-17 21:12:17.745268645 +0100
-@@ -1,6 +1,9 @@
- # -*- coding: utf-8 -*-
- import pytest
--from mock import Mock, patch
-+try:
-+    from mock import Mock, patch
-+except ImportError:
-+    from unittest.mock import Mock, patch
- 
- try:
-     from urllib3.contrib.pyopenssl import extract_from_urllib3, inject_into_urllib3
---- urllib3-1.26.2/test/with_dummyserver/test_connectionpool.py.orig	2021-01-17 21:10:14.782601458 +0100
-+++ urllib3-1.26.2/test/with_dummyserver/test_connectionpool.py	2021-01-17 21:12:56.965056174 +0100
-@@ -10,7 +10,10 @@
- from test import LONG_TIMEOUT, SHORT_TIMEOUT, onlyPy2
- from threading import Event
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- import six
- 
---- urllib3-1.26.8/test/with_dummyserver/test_https.py.orig	2022-03-10 06:29:38.588432315 +0100
-+++ urllib3-1.26.8/test/with_dummyserver/test_https.py	2022-03-10 06:30:20.714870763 +0100
-@@ -19,7 +19,10 @@ from test import (
-     resolvesLocalhostFQDN,
- )
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- import trustme
- 
---- urllib3-1.26.2/test/with_dummyserver/test_socketlevel.py.orig	2021-01-17 21:10:14.782601458 +0100
-+++ urllib3-1.26.2/test/with_dummyserver/test_socketlevel.py	2021-01-17 21:18:48.833149940 +0100
-@@ -52,7 +52,10 @@
- )
- from threading import Event
- 
--import mock
-+try:
-+    import mock
-+except ImportError:
-+    from unittest import mock
- import pytest
- import trustme
- 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python3-urllib3.git/commitdiff/b75b360fca10ebb57abb4b137c4173f5de701927



More information about the pld-cvs-commit mailing list