14
0

Accepting request 486162 from devel:languages:python:singlespec

- update for multipython build
- synchronize with python 3 version
- debundle urllib3 and chardet
- enable test suite

- update urllib3 requirement to 1.19.1
- add idna requirement, refresh unbundling patch

OBS-URL: https://build.opensuse.org/request/show/486162
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-requests?expand=0&rev=96
This commit is contained in:
Jan Matejek
2017-04-06 14:56:39 +00:00
committed by Git OBS Bridge
parent ef72fbb351
commit 8c0d90828d
9 changed files with 155 additions and 57 deletions

View File

@@ -16,9 +16,8 @@
#
%if 0%{?suse_version} < 1120
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%endif
%define urllib3_version 1.20
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-requests
Version: 2.13.0
Release: 0
@@ -26,35 +25,43 @@ Summary: Awesome Python HTTP Library That's Actually Usable
License: Apache-2.0
Group: Development/Languages/Python
Url: http://python-requests.org/
Source: https://pypi.io/packages/source/r/requests/requests-%{version}.tar.gz
#Source: https://files.pythonhosted.org/packages/source/r/requests/requests-%{version}.tar.gz
Source: https://github.com/kennethreitz/requests/archive/v%{version}.tar.gz
Source100: PACKAGING_NOTES
Source101: set_urllib3_version.sh
# PATCH-FIX-OPENSUSE no-default-cacert.patch -- Completely ignore the internal CA bundle.
Patch0: no-default-cacert.patch
# PATCH-FIX-UPSTREAM update urllib3 to do the proper passthrough to set_default_verify_paths
Patch1: urllib3-ssl-default-context.patch
# PATCH-FIX-OPENSUSE requests-do-not-use-bundle.patch -- Use system libraries instead of bundled ones.
Patch1: requests-do-not-use-bundle.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module py}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module urllib3 >= %urllib3_version}
BuildRequires: ca-certificates
BuildRequires: python
BuildRequires: python-devel
BuildRequires: python-py
BuildRequires: python-setuptools
BuildRequires: python-rpm-macros
# SECTION test requirements
BuildRequires: %{python_module PySocks >= 1.5.6}
BuildRequires: %{python_module chardet}
BuildRequires: %{python_module idna >= 2.2}
BuildRequires: %{python_module pytest-httpbin}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest}
# /SECTION
Requires: ca-certificates
Requires: python
# for good measure, at least recommend an actual set of certificates
Recommends: ca-certificates-mozilla
Recommends: python-cryptography >= 1.3.4
# requirements for pyopenssl fallback of bundled urllib3
Recommends: python-ndg-httpsclient
Recommends: python-pyOpenSSL >= 0.14
Recommends: python-pyasn1
%if 0%{?suse_version} <= 1200
BuildRequires: openssl-certs
Requires: openssl-certs
%else
BuildRequires: ca-certificates
Requires: ca-certificates
%endif
%if 0%{?suse_version} >= 1120
Recommends: python-cryptography >= 1.3.4
Recommends: python-PySocks >= 1.5.6
Requires: python-chardet
Requires: python-idna >= 2.2
Requires: python-py
Requires: python-urllib3 >= %urllib3_version
BuildArch: noarch
%else
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
%python_subpackages
%description
Requests is an ISC Licensed HTTP library, written in Python, for
@@ -82,23 +89,40 @@ Features:
%prep
%setup -q -n requests-%{version}
%patch0 -p1
pushd requests/packages
%patch1 -p1
popd
rm -f requests/cacert.pem
# fill out required urllib3 version
sed -i s/#URLLIB3VERSION#/%{urllib3_version}/ setup.py
echo "urllib3 >= %{urllib3_version}" >> requirements.txt
# drop shebang from certs.py
sed -i '1s/^#!.*$//' requests/certs.py
%build
python setup.py build
%python_build
%install
python setup.py install \
--root=%{buildroot} --prefix=%{_prefix}
%python_install
# check that urllib3 is not installed
test ! -e %{buildroot}%{python3_sitelib}/requests/packages/urllib3
# Tests require network access.
# %check
# python test_requests.py
%check
# first check that we have a good version of urllib3
# DO NOT DISABLE THIS TEST unless you know what you are doing
# see PACKAGING_NOTES for details
python3 <<END
import sys, pkg_resources
from requests.packages.urllib3 import __version__
required = "urllib3 >= {}".format(__version__)
dist = pkg_resources.get_distribution(required)
if dist is None or not dist.location.startswith("%{_prefix}"):
sys.exit(1)
END
%files
# exclude tests connecting to TARPIT
%python_exec -m pytest tests -k "not (TestTimeout and connect)"
%files %{python_files}
%defattr(-,root,root)
%doc HISTORY.rst LICENSE NOTICE README.rst
%{python_sitelib}/requests/