python-urllib3/python-urllib3.spec

163 lines
5.1 KiB
RPMSpec
Raw Normal View History

2019-09-27 18:36:54 +02:00
%define module urllib3
2012-04-27 05:20:09 +04:00
2019-09-27 18:36:54 +02:00
Summary: Python 2 HTTP library
2017-01-17 13:15:48 +10:00
Name: python-%{module}
2019-09-27 18:36:54 +02:00
Version: 1.25.6
2018-09-10 13:16:56 +03:00
Release: 1
2017-01-17 13:15:48 +10:00
License: MIT
Group: Development/Python
Url: http://urllib3.readthedocs.org/
Source0: https://pypi.python.org/packages/source/u/%{module}/%{module}-%{version}.tar.gz
Source1: ssl_match_hostname_py3.py
2019-09-27 18:36:54 +02:00
BuildRequires: pkgconfig(python)
2017-01-17 13:15:48 +10:00
BuildRequires: python-setuptools
BuildRequires: python-six
2019-09-27 18:36:54 +02:00
# For unittests
2017-01-17 13:15:48 +10:00
BuildRequires: python-mock
BuildRequires: python-nose
BuildRequires: python-tornado
Requires: python-six
Requires: rootcerts
BuildArch: noarch
2012-04-27 05:20:09 +04:00
%description
2019-09-27 18:36:54 +02:00
The urllib3 module is a powerful, sanity-friendly HTTP client for Python. It
offers some features that are missing from the Python standard libraries
(urllib and urllib2):
* 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 and deflate encoding.
* Proxy support for HTTP and SOCKS.
The Python standard libraries have little to do with each other. They were
designed to be independent and standalone, each solving a different scope of
problems, and urllib3 follows in a similar vein.
This package contains the python2 files.
2012-04-27 05:20:09 +04:00
2017-01-17 13:15:48 +10:00
%files
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
%{py_puresitedir}/*
#----------------------------------------------------------------------------
2015-10-12 10:55:37 +03:00
%package -n python3-%{module}
2019-09-27 18:36:54 +02:00
Summary: Python 3 HTTP library
2017-01-17 13:15:48 +10:00
Group: Development/Python
BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: pkgconfig(python3)
# For unittests
BuildRequires: python3-mock
BuildRequires: python3-nose
BuildRequires: python3-tornado
Requires: python3-six
Requires: rootcerts
2015-10-12 10:55:37 +03:00
%description -n python3-%{module}
2019-09-27 18:36:54 +02:00
The urllib3 module is a powerful, sanity-friendly HTTP client for Python. It
offers some features that are missing from the Python standard libraries
(urllib and urllib2):
* 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 and deflate encoding.
* Proxy support for HTTP and SOCKS.
The Python standard libraries have little to do with each other. They were
designed to be independent and standalone, each solving a different scope of
problems, and urllib3 follows in a similar vein.
This package contains the python3 files.
2015-10-12 10:55:37 +03:00
2017-01-17 13:15:48 +10:00
%files -n python3-%{module}
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
%{py3_puresitedir}/*
#----------------------------------------------------------------------------
2012-04-27 05:20:09 +04:00
%prep
%setup -q -n %{module}-%{version}
2019-09-27 18:36:54 +02:00
#apply_patches
2012-04-27 05:20:09 +04:00
2019-09-27 18:36:54 +02:00
# Prepare python3 dirs
2015-10-12 10:55:37 +03:00
cp -a . %{py3dir}
2019-09-27 18:36:54 +02:00
2015-10-12 10:55:37 +03:00
%build
2019-09-27 18:36:54 +02:00
# Build first the python2 stuff...
2015-10-12 10:55:37 +03:00
python setup.py build
2019-09-27 18:36:54 +02:00
# ... next the python3 stuff
2015-10-12 10:55:37 +03:00
pushd %{py3dir}
2019-09-27 18:36:54 +02:00
python3 setup.py build
2015-10-12 10:55:37 +03:00
popd
2019-09-27 18:36:54 +02:00
2012-04-27 05:20:09 +04:00
%install
2019-09-27 18:36:54 +02:00
################
# Install first the python2 stuff...
2015-10-12 10:55:37 +03:00
python setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}/%{py_puresitedir}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{py_puresitedir}/urllib3/packages/ssl_match_hostname/
mkdir -p %{buildroot}/%{py_puresitedir}/urllib3/packages/
ln -s ../../six.py %{buildroot}/%{py_puresitedir}/urllib3/packages/six.py
ln -s ../../six.pyc %{buildroot}/%{py_puresitedir}/urllib3/packages/six.pyc
ln -s ../../six.pyo %{buildroot}/%{py_puresitedir}/urllib3/packages/six.pyo
ln -s ../../backports/ssl_match_hostname %{buildroot}/%{py_puresitedir}/urllib3/packages/ssl_match_hostname
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{py_puresitedir}/dummyserver
2019-09-27 18:36:54 +02:00
###############
# ... next the python3 stuff
2015-10-12 10:55:37 +03:00
pushd %{py3dir}
2019-09-27 18:36:54 +02:00
python3 setup.py install --skip-build --root %{buildroot}
2015-10-12 10:55:37 +03:00
2019-09-27 18:36:54 +02:00
rm -rf %{buildroot}/%{py3_puresitedir}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{py3_puresitedir}/urllib3/packages/ssl_match_hostname/
2015-10-12 10:55:37 +03:00
2019-09-27 18:36:54 +02:00
mkdir -p %{buildroot}/%{py3_puresitedir}/urllib3/packages/
ln -s ../../six.py %{buildroot}/%{py3_puresitedir}/urllib3/packages/six.py
ln -s ../../six.pyc %{buildroot}/%{py3_puresitedir}/urllib3/packages/six.pyc
ln -s ../../six.pyo %{buildroot}/%{py3_puresitedir}/urllib3/packages/six.pyo
cp %{SOURCE1} %{buildroot}/%{py3_puresitedir}/urllib3/packages/ssl_match_hostname.py
2015-10-12 10:55:37 +03:00
2019-09-27 18:36:54 +02:00
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{py3_puresitedir}/dummyserver
2015-10-12 10:55:37 +03:00
popd
2012-04-27 05:20:09 +04:00
%pretrans -p <lua>
path = "%{py_puresitedir}/urllib3/packages/ssl_match_hostname"
st = posix.stat(path)
if st and st.type == "directory" then
status = os.rename(path, path .. ".rpmmoved")
if not status then
suffix = 0
while not status do
suffix = suffix + 1
status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
end
os.rename(path, path .. ".rpmmoved")
end
end
%pretrans -p <lua> -n python3-%{module}
path = "%{py3_puresitedir}/urllib3/packages/ssl_match_hostname"
st = posix.stat(path)
if st and st.type == "directory" then
status = os.rename(path, path .. ".rpmmoved")
if not status then
suffix = 0
while not status do
suffix = suffix + 1
status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
end
os.rename(path, path .. ".rpmmoved")
end
end