-# TODO
-# - bundled external libs? packages/ contains:
-# chardet/
-# chardet2/
-# oauthlib/
#
# Conditional build:
-%bcond_without doc # HTML documentation build
+%bcond_without tests # do not perform "make test"
+%bcond_without python2 # CPython 2.x module
+%bcond_without python3 # CPython 3.x module
+%bcond_without bundled # Bundle Libraries
#
%define module requests
-Summary: HTTP library for Python
-Summary(pl.UTF-8): Biblioteka HTTP dla Pythona
+Summary: HTTP library for Python 2
+Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 2
Name: python-%{module}
-Version: 0.14.2
+Version: 2.5.0
Release: 1
-License: ISC
+License: Apache2
Group: Development/Languages/Python
-Source0: https://github.com/kennethreitz/requests/tarball/v%{version}/%{module}-%{version}.tar.gz
-# Source0-md5: db8842dbb5daed7e1e3d220d324d830a
-URL: https://github.com/kennethreitz/requests
-BuildRequires: python >= 1:2.6
-BuildRequires: python3 >= 3.2
+Source0: https://pypi.python.org/packages/source/r/requests/%{module}-%{version}.tar.gz
+# Source0-md5: b8bf3ddca75e7ecf1b6776da1e6e3385
+URL: http://python-requests.org
+# find . -name '*.py' -exec sed -i -e 's#requests\.packages\.urllib3#urllib3#g' "{}" ";"
+# find . -name '*.py' -exec sed -i -e 's#\.packages\.urllib3#urllib3#g' "{}" ";"
+# find . -name '*.py' -exec sed -i -e 's#from \.packages import chardet#import charade as chardet#g' "{}" ";"
+# + manual removal from setup.py
+Patch0: system-charade-and-urllib3.patch
+Patch1: system-cert.patch
+%if %{with python2}
+BuildRequires: python-modules >= 1:2.6
+%if %{without bundled}
+BuildRequires: python-charade
+BuildRequires: python-urllib3 >= 1.9.1
+%endif
+%endif
+%if %{with python3}
+BuildRequires: python3-modules >= 1:3.2
+%if %{without bundled}
+BuildRequires: python3-charade
+BuildRequires: python3-urllib3 >= 1.9.1
+%endif
+%endif
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.219
-BuildRequires: sed >= 4.0
-%{?with_doc:BuildRequires: sphinx-pdg >= 1.0}
-Requires: python-modules
+Requires: ca-certificates
+Requires: python-modules >= 1:2.6
+%if %{without bundled}
+Requires: python-charade
+Requires: python-urllib3 >= 1.9.1
+%endif
+# for python2 only to get SNI working. python3 doesn't need this
+Requires: python-ndg-httpsclient
+Requires: python-pyasn1
+Requires: python-pyOpenSSL
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-Requests is an ISC Licensed HTTP library, written in Python, for human
-beings.
+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
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, wydana na
-licencji ISC.
+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
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, written in Python, for human beings
-Summary(pl.UTF-8): Biblioteka HTTP library napisana w Pythonie dla ludzi
+Summary: HTTP library for Python 3
+Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 3
Group: Development/Languages/Python
+Requires: ca-certificates
+Requires: python3-modules >= 1:3.2
+%if %{without bundled}
+Requires: python3-charade
+Requires: python3-urllib3 >= 1.9.1
+%endif
%description -n python3-requests
-Requests is an ISC Licensed HTTP library, written in Python, for human
-beings.
+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
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
-Requests is an ISC Licensed HTTP library, written in Python, for human
-beings.
+Requests to napisana w Pythonie biblioteka HTTP dla ludzi.
-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.
+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.
-%prep
-%setup -q -n kennethreitz-%{module}-63243b1
+Ten pakiet zawiera moduł dla Pythona 3.x.
-# avoid "distutils.errors.DistutilsByteCompileError: byte-compiling is disabled."
-%{__sed} -i -e '/PYTHONDONTWRITEBYTECODE/d' setup.py
+%prep
+%setup -q -n %{module}-%{version}
+%{!?with_bundled:%patch0 -p1}
+%patch1 -p1
%build
-ver=$(%{__python} -c "import requests; print requests.__version__")
-test "$ver" = %{version}
-
-mkdir py2-egg py3-egg
-%{__python} setup.py build --build-base py2
-%{__python3} setup.py build --build-base py3
+%if %{with python2}
+%{__python} setup.py build -b py2 %{?with_tests:test}
+%endif
-%if %{with doc}
-%{__make} -C docs html
+%if %{with python3}
+%{__python3} setup.py build -b py3 %{?with_tests:test}
%endif
%install
rm -rf $RPM_BUILD_ROOT
+
+%if %{with python2}
%{__python} setup.py \
- build --build-base py2 \
- install \
+ build -b py2 \
+ install \
--skip-build \
--optimize=2 \
--root=$RPM_BUILD_ROOT
+%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_postclean
+%endif
+%if %{with python3}
%{__python3} setup.py \
- build --build-base py3 \
- install \
- --skip-build \
- --optimize=2 \
- --root=$RPM_BUILD_ROOT
+ build -b py3 \
+ install \
+ --skip-build \
+ --optimize=2 \
+ --root=$RPM_BUILD_ROOT
+%endif
-%py_postclean
+%{__rm} -rf $RPM_BUILD_ROOT{%{py_sitescriptdir},%{py3_sitescriptdir}}/%{module}/cacert.pem
+%{!?with_bundled:%{__rm} -rf $RPM_BUILD_ROOT{%{py_sitescriptdir},%{py3_sitescriptdir}}/%{module}/packages}
%clean
rm -rf $RPM_BUILD_ROOT
+%if %{with python2}
%files
%defattr(644,root,root,755)
-%doc AUTHORS.rst LICENSE README.rst %{?with_doc:docs/_build/html}
+%doc HISTORY.rst README.rst
%{py_sitescriptdir}/%{module}
%{py_sitescriptdir}/%{module}-%{version}-py*.egg-info
+%endif
+%if %{with python3}
%files -n python3-requests
%defattr(644,root,root,755)
-%doc AUTHORS.rst LICENSE README.rst %{?with_doc:docs/_build/html}
+%doc HISTORY.rst README.rst
%{py3_sitescriptdir}/%{module}
%{py3_sitescriptdir}/%{module}-%{version}-py*.egg-info
+%endif