python-urllib3/python-urllib3.spec
NixTux Commit Bot 110a5f5bf5 bot: rpm5 -> rpm4 (10) [rosa2019.05]
(10) rosa2019.05: %py_ -> %py2_, %{py_ -> %{py2_

(9): Adopt spec for enabled byte compiling in Python

These automatic changes are done by scripts *rpm5-to-rpm4.sh at https://gitlab.com/abf-mirror/abf-mirror-scripts
The goal is to adopt specs for RPM 4 to which ROSA 2019.1 has migrated from RPM 5, but keep compatibility with RPM 5.
Details about migration are here: https://wiki.rosalab.ru/ru/index.php/Переход_ROSA_с_RPM_5_на_RPM_4
Contact m.novosyolov@rosalinux.ru in case of problems
2020-04-16 01:14:06 +03:00

161 lines
5.1 KiB
RPMSpec

%define module urllib3
Summary: Python 2 HTTP library
Name: python-%{module}
Version: 1.25.6
Release: 1
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
BuildRequires: pkgconfig(python)
BuildRequires: python-setuptools
BuildRequires: python-six
# For unittests
BuildRequires: python-mock
BuildRequires: python-nose
BuildRequires: python-tornado
Requires: python-six
Requires: rootcerts
BuildArch: noarch
%description
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.
%files
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
%{py2_puresitedir}/*
#----------------------------------------------------------------------------
%package -n python3-%{module}
Summary: Python 3 HTTP library
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
%description -n python3-%{module}
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.
%files -n python3-%{module}
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
%{py3_puresitedir}/*
#----------------------------------------------------------------------------
%prep
%setup -q -n %{module}-%{version}
#apply_patches
# Prepare python3 dirs
cp -a . %{py3dir}
%build
# Build first the python2 stuff...
python setup.py build
# ... next the python3 stuff
pushd %{py3dir}
python3 setup.py build
popd
%install
################
# Install first the python2 stuff...
python setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}/%{py2_puresitedir}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{py2_puresitedir}/urllib3/packages/ssl_match_hostname/
mkdir -p %{buildroot}/%{py2_puresitedir}/urllib3/packages/
ln -s ../../six.py %{buildroot}/%{py2_puresitedir}/urllib3/packages/six.py
ln -s ../../six.pyc %{buildroot}/%{py2_puresitedir}/urllib3/packages/six.pyc
ln -s ../../six.pyo %{buildroot}/%{py2_puresitedir}/urllib3/packages/six.pyo
ln -s ../../backports/ssl_match_hostname %{buildroot}/%{py2_puresitedir}/urllib3/packages/ssl_match_hostname
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{py2_puresitedir}/dummyserver
###############
# ... next the python3 stuff
pushd %{py3dir}
python3 setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}/%{py3_puresitedir}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{py3_puresitedir}/urllib3/packages/ssl_match_hostname/
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
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{py3_puresitedir}/dummyserver
popd
%pretrans -p <lua>
path = "%{py2_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