From 594bc38a091258e8aea83be6275d132f19f03f4c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Mon, 21 Nov 2022 09:40:12 +0100 Subject: [PATCH] Up to 2.28.1 (python2 support is gone) --- python-requests-disable-xdist.patch | 22 ++-- python-requests-reqs.patch | 15 +-- python-requests.spec => python3-requests.spec | 112 ++---------------- system-cert.patch | 7 +- 4 files changed, 36 insertions(+), 120 deletions(-) rename python-requests.spec => python3-requests.spec (50%) diff --git a/python-requests-disable-xdist.patch b/python-requests-disable-xdist.patch index fc4987a..320036a 100644 --- a/python-requests-disable-xdist.patch +++ b/python-requests-disable-xdist.patch @@ -1,23 +1,25 @@ --- requests-2.25.1/setup.py.orig 2021-01-24 18:27:39.728966387 +0100 +++ requests-2.25.1/setup.py 2021-01-24 18:29:53.264909627 +0100 -@@ -16,11 +16,7 @@ +@@ -33,12 +33,7 @@ class PyTest(TestCommand): def initialize_options(self): TestCommand.initialize_options(self) - try: - from multiprocessing import cpu_count -- self.pytest_args = ['-n', str(cpu_count()), '--boxed'] +- +- self.pytest_args = ["-n", str(cpu_count()), "--boxed"] - except (ImportError, NotImplementedError): -- self.pytest_args = ['-n', '1', '--boxed'] +- self.pytest_args = ["-n", "1", "--boxed"] + self.pytest_args = [] def finalize_options(self): TestCommand.finalize_options(self) -@@ -52,7 +48,6 @@ - 'pytest-httpbin>=0.0.7', - 'pytest-cov', - 'pytest-mock', -- 'pytest-xdist', - 'PySocks>=1.5.6, !=1.5.7', - 'pytest>=3' +@@ -68,7 +63,6 @@ test_requirements = [ + "pytest-httpbin>=0.0.7", + "pytest-cov", + "pytest-mock", +- "pytest-xdist", + "PySocks>=1.5.6, !=1.5.7", + "pytest>=3", ] + diff --git a/python-requests-reqs.patch b/python-requests-reqs.patch index 4b7f381..c702b94 100644 --- a/python-requests-reqs.patch +++ b/python-requests-reqs.patch @@ -1,11 +1,12 @@ --- requests-2.25.1/setup.py.orig 2020-12-16 18:43:25.000000000 +0100 +++ requests-2.25.1/setup.py 2021-01-24 18:05:52.042717398 +0100 -@@ -49,7 +49,7 @@ - +@@ -65,7 +65,7 @@ requires = [ + "certifi>=2017.4.17", ] test_requirements = [ -- 'pytest-httpbin==0.0.7', -+ 'pytest-httpbin>=0.0.7', - 'pytest-cov', - 'pytest-mock', - 'pytest-xdist', +- "pytest-httpbin==0.0.7", ++ "pytest-httpbin>=0.0.7", + "pytest-cov", + "pytest-mock", + "pytest-xdist", + diff --git a/python-requests.spec b/python3-requests.spec similarity index 50% rename from python-requests.spec rename to python3-requests.spec index 03f6c5c..014ffaf 100644 --- a/python-requests.spec +++ b/python3-requests.spec @@ -1,50 +1,26 @@ # # Conditional build: %bcond_with tests # pytest tests (one test fails with pytest-httpbin 1.0.0) -%bcond_without python2 # CPython 2.x module -%bcond_without python3 # CPython 3.x module %define urllib3_ver 1.21.1 %define module requests %define egg_name requests -Summary: HTTP library for Python 2 -Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 2 -Name: python-%{module} -# keep 2.27.x here for python2 support -Version: 2.27.1 +Summary: HTTP library for Python +Summary(pl.UTF-8): Biblioteka HTTP dla Pythona +Name: python3-%{module} +Version: 2.28.1 Release: 1 License: Apache v2.0 Group: Development/Languages/Python #Source0Download: https://pypi.org/simple/requests/ Source0: https://files.pythonhosted.org/packages/source/r/requests/%{module}-%{version}.tar.gz -# Source0-md5: bcc01b73974a305cc7c5b092e7d07004 +# Source0-md5: 796ea875cdae283529c03b9203d9c454 Patch0: system-cert.patch -Patch1: %{name}-reqs.patch -Patch2: %{name}-disable-xdist.patch +Patch1: python-requests-reqs.patch +Patch2: python-requests-disable-xdist.patch URL: https://docs.python-requests.org/ BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.713 -%if %{with python2} -BuildRequires: python-modules >= 1:2.7 -BuildRequires: python-setuptools -%if %{with tests} -BuildRequires: python-PySocks >= 1.5.8 -BuildRequires: python-certifi >= 2017.4.17 -BuildRequires: python-chardet >= 3.0.2 -BuildRequires: python-chardet < 5 -# idna 3 not supported for python2 -BuildRequires: python-idna >= 2.5 -BuildRequires: python-idna < 3 -BuildRequires: python-pytest >= 3 -BuildRequires: python-pytest-cov -BuildRequires: python-pytest-httpbin >= 0.0.7 -BuildRequires: python-pytest-mock >= 2.0.0 -BuildRequires: python-pytest-xdist -BuildRequires: python-urllib3 >= %{urllib3_ver} -BuildRequires: python-urllib3 < 1.27 -%endif -%endif -%if %{with python3} BuildRequires: python3-modules >= 1:3.6 BuildRequires: python3-setuptools %if %{with tests} @@ -62,42 +38,6 @@ BuildRequires: python3-pytest-xdist BuildRequires: python3-urllib3 >= %{urllib3_ver} BuildRequires: python3-urllib3 < 1.27 %endif -%endif -Suggests: ca-certificates -# for python2 only to get SNI working. python3 doesn't need this -Requires: python-cryptography >= 1.3.4 -Requires: python-pyOpenSSL >= 0.14 -Requires: python-urllib3 >= 1.22-2 -BuildArch: noarch -BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) - -%description -Requests is a HTTP library, written in Python, for human beings. - -Most existing Python modules for sending HTTP requests are extremely -verbose and cumbersome. Python's builtin urllib2 module provides most -of the HTTP capabilities you should need, but the API is thoroughly -broken. It requires an enormous amount of work (even method overrides) -to perform the simplest of tasks. Things shouldn't be this way. Not in -Python. - -This package contains Python 2.x module. - -%description -l pl.UTF-8 -Requests to napisana w Pythonie biblioteka HTTP dla ludzi. - -Większość istniejących modułów Pythona do wysyłania żądań HTTP jest -zbyt gadatliwa i nieporęczna. Wbudowany w Pythona moduł urllib2 -zapewnia większość wymaganych możliwości HTTP, ale API jest kiepskie - -wymaga dużych nakładów pracy (nawet nadpisań metod) do wykonania -najprostszych zadań. Nie powinno tak być. Nie w Pythonie. - -Ten pakiet zawiera moduł dla Pythona 2.x. - -%package -n python3-requests -Summary: HTTP library for Python 3 -Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 3 -Group: Development/Languages/Python Requires: python3-modules >= 1:3.6 Requires: python3-charset_normalizer >= 2 # for https @@ -106,20 +46,22 @@ Requires: python3-idna >= 2.5 Requires: python3-pyOpenSSL >= 0.14 Requires: python3-urllib3 >= 1.22-2 Suggests: ca-certificates +BuildArch: noarch +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%description -n python3-requests +%description Requests is a HTTP library, written in Python, for human beings. Most existing Python modules for sending HTTP requests are extremely verbose and cumbersome. Python's builtin urllib2 module provides most -of the HTTP capabilities you should need, but the api is thoroughly +of the HTTP capabilities you should need, but the API is thoroughly broken. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks. Things shouldn't be this way. Not in Python. This package contains Python 3.x module. -%description -n python3-requests -l pl.UTF-8 +%description -l pl.UTF-8 Requests to napisana w Pythonie biblioteka HTTP dla ludzi. Większość istniejących modułów Pythona do wysyłania żądań HTTP jest @@ -137,17 +79,6 @@ Ten pakiet zawiera moduł dla Pythona 3.x. %patch2 -p1 %build -%if %{with python2} -%py_build - -%if %{with tests} -PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \ -PYTEST_PLUGINS="pytest_httpbin.plugin,pytest_mock" \ -%{__python} -m pytest tests -%endif -%endif - -%if %{with python3} %py3_build %if %{with tests} @@ -155,36 +86,17 @@ PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \ PYTEST_PLUGINS="pytest_httpbin.plugin,pytest_mock" \ %{__python3} -m pytest tests %endif -%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 HISTORY.md README.md -%{py_sitescriptdir}/%{module} -%{py_sitescriptdir}/%{egg_name}-%{version}-py*.egg-info -%endif - -%if %{with python3} -%files -n python3-requests -%defattr(644,root,root,755) -%doc HISTORY.md README.md %{py3_sitescriptdir}/%{module} %{py3_sitescriptdir}/%{egg_name}-%{version}-py*.egg-info -%endif diff --git a/system-cert.patch b/system-cert.patch index 082e934..7383920 100644 --- a/system-cert.patch +++ b/system-cert.patch @@ -1,7 +1,7 @@ diff -dur requests-2.18.2.orig/requests/certs.py requests-2.18.2/requests/certs.py --- requests-2.18.2.orig/requests/certs.py 2017-05-31 11:19:09.000000000 +0200 +++ requests-2.18.2/requests/certs.py 2017-08-01 14:30:44.000000000 +0200 -@@ -12,7 +12,14 @@ +@@ -11,7 +11,14 @@ If you are packaging Requests, e.g., for environment, you can change the definition of where() to return a separately packaged CA bundle. """ @@ -10,10 +10,11 @@ diff -dur requests-2.18.2.orig/requests/certs.py requests-2.18.2/requests/certs. +import os + +if os.path.exists("/etc/certs/ca-certificates.crt"): -+ def where(): ++ def where(): + return "/etc/certs/ca-certificates.crt" +else: + from certifi import where - if __name__ == '__main__': + if __name__ == "__main__": print(where()) + -- 2.44.0