From e6241586d9d69a743808e9ee4241c522956b2d1f Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Tue, 16 Sep 2014 17:51:03 -0500 Subject: [PATCH] Initial el5 build --- python-requests-system-cert-bundle-el5.patch | 44 +++++ python-requests-system-cert-bundle.patch | 37 ---- ...-requests-system-chardet-not-charade.patch | 21 ++- python-requests-system-urllib3.patch | 107 +++++------ python-requests.spec | 174 ++++++------------ sources | 2 +- 6 files changed, 169 insertions(+), 216 deletions(-) create mode 100644 python-requests-system-cert-bundle-el5.patch delete mode 100644 python-requests-system-cert-bundle.patch diff --git a/python-requests-system-cert-bundle-el5.patch b/python-requests-system-cert-bundle-el5.patch new file mode 100644 index 0000000..e1330ca --- /dev/null +++ b/python-requests-system-cert-bundle-el5.patch @@ -0,0 +1,44 @@ +From 415619361cc23dd87b1a7a5fd0cfba38e33d24fd Mon Sep 17 00:00:00 2001 +From: Ralph Bean +Date: Wed, 27 Feb 2013 09:16:20 -0500 +Subject: [PATCH] system cert bundle + +--- + requests/certs.py | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/requests/certs.py b/requests/certs.py +index 8148276..6e07f5e 100644 +--- a/requests/certs.py ++++ b/requests/certs.py +@@ -10,22 +10,15 @@ This module returns the preferred default CA certificate bundle. + If you are packaging Requests, e.g., for a Linux distribution or a managed + environment, you can change the definition of where() to return a separately + packaged CA bundle. +-""" +- +-import os.path + +-certifi = None +-try: +- import certifi +-except ImportError: +- pass ++We return "/etc/pki/tls/certs/ca-bundle.crt" provided by the openssl ++package. ++""" + + def where(): + """Return the preferred certificate bundle.""" +- if certifi: +- return certifi.where() +- +- return os.path.join(os.path.dirname(__file__), 'cacert.pem') ++ # Don't use the certs bundled with requests, use openssl'. ++ return "/etc/pki/tls/certs/ca-bundle.crt" + + if __name__ == '__main__': + print(where()) +-- +1.8.1.2 + diff --git a/python-requests-system-cert-bundle.patch b/python-requests-system-cert-bundle.patch deleted file mode 100644 index 8e467bd..0000000 --- a/python-requests-system-cert-bundle.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ad98b45e959dc7325c294c26d94e68901700c407 Mon Sep 17 00:00:00 2001 -From: Ralph Bean -Date: Mon, 1 Jul 2013 14:50:34 -0400 -Subject: [PATCH 1/3] system cert bundle - ---- - requests/certs.py | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/requests/certs.py b/requests/certs.py -index bc00826..9b78e3b 100644 ---- a/requests/certs.py -+++ b/requests/certs.py -@@ -10,15 +10,15 @@ This module returns the preferred default CA certificate bundle. - If you are packaging Requests, e.g., for a Linux distribution or a managed - environment, you can change the definition of where() to return a separately - packaged CA bundle. --""" - --import os.path -+We return "/etc/pki/tls/certs/ca-bundle.crt" provided by the ca-certificates -+package. -+""" - - - def where(): -- """Return the preferred certificate bundle.""" -- # vendored bundle inside Requests -- return os.path.join(os.path.dirname(__file__), 'cacert.pem') -+ """ Don't use the certs bundled with requests, use ca-certificates. """ -+ return "/etc/pki/tls/certs/ca-bundle.crt" - - if __name__ == '__main__': - print(where()) --- -1.8.3.1 - diff --git a/python-requests-system-chardet-not-charade.patch b/python-requests-system-chardet-not-charade.patch index ea71522..e9abcf2 100644 --- a/python-requests-system-chardet-not-charade.patch +++ b/python-requests-system-chardet-not-charade.patch @@ -1,12 +1,25 @@ -diff -up ./requests/compat.py.orig ./requests/compat.py ---- ./requests/compat.py.orig 2014-05-30 00:23:21.910322912 -0700 -+++ ./requests/compat.py 2014-05-30 00:24:06.697631425 -0700 +From 07c1df1053a61ec5097fe79c68aba7fda7bac3b5 Mon Sep 17 00:00:00 2001 +From: Ralph Bean +Date: Wed, 27 Feb 2013 10:03:41 -0500 +Subject: [PATCH] Use system chardet, not charade. + +--- + requests/compat.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/requests/compat.py b/requests/compat.py +index 5bd4fcb..39421ed 100644 +--- a/requests/compat.py ++++ b/requests/compat.py @@ -4,7 +4,7 @@ pythoncompat """ --from .packages import chardet +-from .packages import charade as chardet +import chardet import sys +-- +1.8.1.2 + diff --git a/python-requests-system-urllib3.patch b/python-requests-system-urllib3.patch index 235f807..90b078b 100644 --- a/python-requests-system-urllib3.patch +++ b/python-requests-system-urllib3.patch @@ -1,92 +1,81 @@ -diff -up ./requests/adapters.py.orig ./requests/adapters.py ---- ./requests/adapters.py.orig 2014-05-30 00:27:36.151074219 -0700 -+++ ./requests/adapters.py 2014-05-30 00:31:26.712662414 -0700 -@@ -11,18 +11,18 @@ and maintain connections. +From 5d23c608e72025f72e1f3223cb6c7e3979e93c7f Mon Sep 17 00:00:00 2001 +From: Ralph Bean +Date: Thu, 28 Feb 2013 10:57:20 -0500 +Subject: [PATCH] system-urllib3 + +--- + requests/adapters.py | 12 ++++++------ + requests/compat.py | 6 +++++- + requests/models.py | 4 ++-- + 3 files changed, 13 insertions(+), 9 deletions(-) + +diff --git a/requests/adapters.py b/requests/adapters.py +index 5f9d9c7..1f61bd6 100644 +--- a/requests/adapters.py ++++ b/requests/adapters.py +@@ -11,17 +11,17 @@ and maintain connections. import socket from .models import Response -from .packages.urllib3.poolmanager import PoolManager, proxy_from_url -from .packages.urllib3.response import HTTPResponse --from .packages.urllib3.util import Timeout as TimeoutSauce +from urllib3.poolmanager import PoolManager, proxy_from_url +from urllib3.response import HTTPResponse -+from urllib3.util import Timeout as TimeoutSauce - from .compat import urlparse, basestring, urldefrag, unquote + from .hooks import dispatch_hook + from .compat import urlparse, basestring, urldefrag from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers, - prepend_scheme_if_needed, get_auth_from_url) + prepend_scheme_if_needed) from .structures import CaseInsensitiveDict -from .packages.urllib3.exceptions import MaxRetryError -from .packages.urllib3.exceptions import TimeoutError -from .packages.urllib3.exceptions import SSLError as _SSLError -from .packages.urllib3.exceptions import HTTPError as _HTTPError --from .packages.urllib3.exceptions import ProxyError as _ProxyError +from urllib3.exceptions import MaxRetryError +from urllib3.exceptions import TimeoutError +from urllib3.exceptions import SSLError as _SSLError +from urllib3.exceptions import HTTPError as _HTTPError -+from urllib3.exceptions import ProxyError as _ProxyError from .cookies import extract_cookies_to_jar - from .exceptions import ConnectionError, Timeout, SSLError, ProxyError - from .auth import _basic_auth_str -diff -up ./requests/compat.py.orig ./requests/compat.py ---- ./requests/compat.py.orig 2014-05-30 00:46:53.888049149 -0700 -+++ ./requests/compat.py 2014-05-30 00:54:17.647105931 -0700 -@@ -89,7 +89,10 @@ if is_py2: + from .exceptions import ConnectionError, Timeout, SSLError + +diff --git a/requests/compat.py b/requests/compat.py +index 39421ed..d9ab218 100644 +--- a/requests/compat.py ++++ b/requests/compat.py +@@ -89,7 +89,11 @@ if is_py2: import cookielib from Cookie import Morsel from StringIO import StringIO - from .packages.urllib3.packages.ordered_dict import OrderedDict ++ + try: + from collections import OrderedDict + except ImportError: + from ordereddict import OrderedDict - from httplib import IncompleteRead builtin_str = str -diff -up ./requests/exceptions.py.orig ./requests/exceptions.py ---- ./requests/exceptions.py.orig 2014-05-30 00:59:00.825056566 -0700 -+++ ./requests/exceptions.py 2014-05-30 00:59:13.416143297 -0700 -@@ -7,7 +7,7 @@ requests.exceptions - This module contains the set of Requests' exceptions. - - """ --from .packages.urllib3.exceptions import HTTPError as BaseHTTPError -+from urllib3.exceptions import HTTPError as BaseHTTPError - - - class RequestException(IOError): -diff -up ./requests/__init__.py.orig ./requests/__init__.py ---- ./requests/__init__.py.orig 2014-05-30 00:27:56.025211120 -0700 -+++ ./requests/__init__.py 2014-05-30 00:54:37.009239302 -0700 -@@ -48,13 +48,6 @@ __author__ = 'Kenneth Reitz' - __license__ = 'Apache 2.0' - __copyright__ = 'Copyright 2014 Kenneth Reitz' - --# Attempt to enable urllib3's SNI support, if possible --try: -- from .packages.urllib3.contrib import pyopenssl -- pyopenssl.inject_into_urllib3() --except ImportError: -- pass -- - from . import utils - from .models import Request, Response, PreparedRequest - from .api import request, get, head, post, patch, put, delete, options -diff -up ./requests/models.py.orig ./requests/models.py ---- ./requests/models.py.orig 2014-05-30 00:27:18.926955573 -0700 -+++ ./requests/models.py 2014-05-30 00:31:12.714565990 -0700 -@@ -16,10 +16,10 @@ from .structures import CaseInsensitiveD + bytes = str +diff --git a/requests/models.py b/requests/models.py +index 5202e6f..218b4f2 100644 +--- a/requests/models.py ++++ b/requests/models.py +@@ -17,7 +17,7 @@ from .status_codes import codes from .auth import HTTPBasicAuth from .cookies import cookiejar_from_dict, get_cookie_header --from .packages.urllib3.fields import RequestField -from .packages.urllib3.filepost import encode_multipart_formdata --from .packages.urllib3.util import parse_url --from .packages.urllib3.exceptions import DecodeError -+from urllib3.fields import RequestField +from urllib3.filepost import encode_multipart_formdata -+from urllib3.util import parse_url -+from urllib3.exceptions import DecodeError - from .exceptions import ( - HTTPError, RequestException, MissingSchema, InvalidURL, - ChunkedEncodingError, ContentDecodingError) + from .exceptions import HTTPError, RequestException, MissingSchema, InvalidURL + from .utils import ( + stream_untransfer, guess_filename, requote_uri, +@@ -121,7 +121,7 @@ class RequestEncodingMixin(object): + fp = StringIO(fp) + if isinstance(fp, bytes): + fp = BytesIO(fp) +- ++ + if ft: + new_v = (fn, fp.read(), ft) + else: +-- +1.8.1.2 + diff --git a/python-requests.spec b/python-requests.spec index aab56ca..51109eb 100644 --- a/python-requests.spec +++ b/python-requests.spec @@ -1,20 +1,21 @@ -%if 0%{?fedora} -%global _with_python3 1 -%else -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} -%endif +%global __python2 /usr/bin/python2.6 +%global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())") -Name: python-requests -Version: 2.3.0 -Release: 2%{?dist} +%global srcname requests + +Name: python-%{srcname} +Version: 1.1.0 +Release: 5%{?dist} Summary: HTTP library, written in Python, for human beings +Group: Development/Languages License: ASL 2.0 URL: http://pypi.python.org/pypi/requests Source0: http://pypi.python.org/packages/source/r/requests/requests-%{version}.tar.gz -# Explicitly use the system certificates in ca-certificates. +# Explicitly use the system certificates in openssl. # https://bugzilla.redhat.com/show_bug.cgi?id=904614 -Patch0: python-requests-system-cert-bundle.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1124060 +Patch0: python-requests-system-cert-bundle-el5.patch # Unbundle python-charade (a fork of python-chardet). # https://bugzilla.redhat.com/show_bug.cgi?id=904623 Patch1: python-requests-system-chardet-not-charade.patch @@ -22,41 +23,40 @@ Patch1: python-requests-system-chardet-not-charade.patch # https://bugzilla.redhat.com/show_bug.cgi?id=904623 Patch2: python-requests-system-urllib3.patch +BuildRoot: %{_tmppath}/%{srcname}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch -BuildRequires: python2-devel -BuildRequires: python-chardet -BuildRequires: python-urllib3 >= 1.8.2 -Requires: ca-certificates -Requires: python-chardet -Requires: python-urllib3 >= 1.8.2 +BuildRequires: python26-devel +BuildRequires: python26-distribute +BuildRequires: python26-chardet +BuildRequires: python26-ordereddict +BuildRequires: python26-urllib3 -%if 0%{?rhel} && 0%{?rhel} <= 6 -BuildRequires: python-ordereddict -Requires: python-ordereddict -%endif +Requires: openssl +Requires: python26 +Requires: python26-chardet +Requires: python26-ordereddict +Requires: python26-urllib3 %description -Most existing Python modules for sending HTTP requests are extremely verbose and -cumbersome. Python’s built-in urllib2 module provides most of the HTTP -capabilities you should need, but the API is thoroughly broken. This library is -designed to make HTTP requests easy for developers. - -%if 0%{?_with_python3} -%package -n python3-requests -Summary: HTTP library, written in Python, for human beings -BuildRequires: python3-devel -BuildRequires: python3-chardet -BuildRequires: python3-urllib3 >= 1.8.2 -Requires: python3-chardet -Requires: python3-urllib3 >= 1.8.2 - -%description -n python3-requests -Most existing Python modules for sending HTTP requests are extremely verbose and -cumbersome. Python’s built-in urllib2 module provides most of the HTTP +Most existing Python modules for sending HTTP requests are extremely verbose +and cumbersome. Python's built-in urllib2 module provides most of the HTTP +capabilities you should need, but the API is thoroughly broken. This library is +designed to make HTTP requests easy for developers. + +%package -n python26-%{srcname} +Group: Development/Languages +Summary: HTTP library, written in Python, for human beings +Requires: python26 +Requires: python26-chardet +Requires: python26-ordereddict +Requires: python26-urllib3 + +%description -n python26-%{srcname} +Most existing Python modules for sending HTTP requests are extremely verbose and +cumbersome. Python's built-in urllib2 module provides most of the HTTP capabilities you should need, but the API is thoroughly broken. This library is designed to make HTTP requests easy for developers. -%endif %prep %setup -q -n requests-%{version} @@ -68,26 +68,8 @@ designed to make HTTP requests easy for developers. # Unbundle the certificate bundle from mozilla. rm -rf requests/cacert.pem -%if 0%{?_with_python3} -rm -rf %{py3dir} -cp -a . %{py3dir} -%endif # with_python3 - %build -%if 0%{?_with_python3} -pushd %{py3dir} -%{__python3} setup.py build - -# Unbundle chardet. Patch1 switches usage to system chardet. -rm -rf build/lib/requests/packages/chardet - -# Unbundle urllib3. Patch1 switches usage to system urllib3. -rm -rf build/lib/requests/packages - -popd -%endif - -%{__python} setup.py build +%{__python2} setup.py build # Unbundle chardet. Patch1 switches usage to system chardet. rm -rf build/lib/requests/packages/charade @@ -96,69 +78,22 @@ rm -rf build/lib/requests/packages/charade rm -rf build/lib/requests/packages %install -rm -rf $RPM_BUILD_ROOT -%if 0%{?_with_python3} -pushd %{py3dir} -%{__python3} setup.py install --skip-build --root $RPM_BUILD_ROOT -popd -%endif +rm -rf %{buildroot} +%{__python2} setup.py install --skip-build --root $RPM_BUILD_ROOT -%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT +%clean +rm -rf %{buildroot} -## The tests succeed if run locally, but fail in koji. -## They require an active network connection to query httpbin.org -#%%check -#%%{__python} test_requests.py -#%%if 0%%{?_with_python3} -#pushd %%{py3dir} -#%%{__python3} test_requests.py -#popd -#%%endif - -%files +%files -n python26-%{srcname} %defattr(-,root,root,-) %doc NOTICE LICENSE README.rst HISTORY.rst -%{python_sitelib}/*.egg-info -%dir %{python_sitelib}/requests -%{python_sitelib}/requests/* - -%if 0%{?_with_python3} -%files -n python3-requests -%doc NOTICE LICENSE README.rst HISTORY.rst -%{python3_sitelib}/*.egg-info -%{python3_sitelib}/requests/ -%endif +%{python2_sitelib}/*.egg-info +%dir %{python2_sitelib}/requests +%{python2_sitelib}/requests/* %changelog -* Sat Jun 07 2014 Fedora Release Engineering - 2.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Thu May 29 2014 Arun S A G - 2.3.0-1 -- Latest upstream - -* Wed May 14 2014 Bohuslav Kabrda - 2.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 - -* Wed Sep 25 2013 Ralph Bean - 2.0.0-1 -- Latest upstream. -- Add doc macro to the python3 files section. -- Require python-urllib3 greater than or at 1.7.1. - -* Mon Aug 26 2013 Rex Dieter 1.2.3-5 -- fix versioned dep on python-urllib3 - -* Mon Aug 26 2013 Ralph Bean - 1.2.3-4 -- Explicitly versioned the requirements on python-urllib3. - -* Thu Aug 22 2013 Ralph Bean - 1.2.3-3 -- Release bump for a coupled update with python-urllib3. - -* Sun Aug 04 2013 Fedora Release Engineering - 1.2.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jul 01 2013 Ralph Bean - 1.2.3-1 -- Latest upstream. -- Fixed bogus date in changelog. +* Tue Sep 16 2014 Erik Johnson - 1.1.0-5 +- Initial EL5 build * Tue Jun 11 2013 Ralph Bean - 1.1.0-4 - Correct a rhel conditional on python-ordereddict @@ -189,7 +124,13 @@ popd - Fix a problem with cookie handling + https://bugzilla.redhat.com/show_bug.cgi?id=906924 -* Mon Oct 22 2012 Arun S A G 0.14.1-1 +* Thu Jan 31 2013 Ralph Bean 0.14.1-3 +- Introduced backport patch to support better cookie handling. + +* Mon Jan 28 2013 Ralph Bean 0.14.1-2 +- Merged latest rawhide into el6. + +* Wed Oct 22 2012 Arun S A G 0.14.1-1 - Updated to latest upstream release * Sun Jun 10 2012 Arun S A G 0.13.1-1 @@ -198,6 +139,9 @@ popd - No more async requests use grrequests https://github.com/kennethreitz/grequests - Remove gevent as it is no longer required by requests +* Sun Apr 09 2012 Arun S A G 0.11.1-2 +- Fix rhbz#808912 + * Sun Apr 01 2012 Arun S A G 0.11.1-1 - Updated to upstream release 0.11.1 diff --git a/sources b/sources index 2ed91ce..f5403f5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7449ffdc8ec9ac37bbcd286003c80f00 requests-2.3.0.tar.gz +a0158815af244c32041a3147ee09abf3 requests-1.1.0.tar.gz