%define module urllib3 Summary: Python HTTP library with thread-safe connection pooling, file post, and more Name: python-%{module} Version: 1.13.1 Release: 3 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: python-setuptools BuildRequires: python-six BuildRequires: pkgconfig(python) BuildRequires: python-mock BuildRequires: python-nose BuildRequires: python-tornado Requires: python-six Requires: rootcerts BuildArch: noarch %description There are two critical features missing from the Python standard library: Connection re-using/pooling and file posting. It's not terribly hard to implement these yourself, but it's much easier to use a module that already did the work for you. The Python standard libraries urllib and urllib2 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. %files %doc CHANGES.rst README.rst CONTRIBUTORS.txt %{py_puresitedir}/* %pretrans -p 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 #---------------------------------------------------------------------------- %package -n python3-%{module} Summary: Python 3 HTTP library with thread-safe connection pooling, file post, and more Group: Development/Python BuildRequires: python3-setuptools BuildRequires: python3-six BuildRequires: pkgconfig(python3) # For unittests BuildRequires: python3-mock BuildRequires: python3-nose BuildRequires: python3-six BuildRequires: python3-tornado Requires: python3-six Requires: rootcerts %description -n python3-%{module} There are two critical features missing from the Python standard library: Connection re-using/pooling and file posting. It's not terribly hard to implement these yourself, but it's much easier to use a module that already did the work for you. The Python standard libraries urllib and urllib2 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. %files -n python3-%{module} %doc CHANGES.rst README.rst CONTRIBUTORS.txt %{py3_puresitedir}/* %pretrans -p -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 #---------------------------------------------------------------------------- %prep %setup -q -n %{module}-%{version} %apply_patches cp -a . %{py3dir} %build python setup.py build pushd %{py3dir} python3 setup.py build popd %install 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 pushd %{py3dir} python3 setup.py install --skip-build --root %{buildroot} # dummyserver is part of the unittest framework rm -rf %{buildroot}%{py3_puresitedir}/dummyserver 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 popd