Merge branch 'master' into f17

Conflicts:
	.gitignore
	python-requests.spec
	sources
This commit is contained in:
Ralph Bean 2013-02-28 12:38:33 -05:00
commit fae896e5ee
6 changed files with 250 additions and 19 deletions

1
.gitignore vendored
View file

@ -9,3 +9,4 @@
/requests-0.11.1.tar.gz
/requests-0.13.1.tar.gz
/requests-0.14.1.tar.gz
/requests-1.1.0.tar.gz

View file

@ -0,0 +1,44 @@
From 415619361cc23dd87b1a7a5fd0cfba38e33d24fd Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
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 ca-certificates
+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 ca-certificates'.
+ return "/etc/pki/tls/certs/ca-bundle.crt"
if __name__ == '__main__':
print(where())
--
1.8.1.2

View file

@ -0,0 +1,25 @@
From 07c1df1053a61ec5097fe79c68aba7fda7bac3b5 Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
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 charade as chardet
+import chardet
import sys
--
1.8.1.2

View file

@ -0,0 +1,81 @@
From 5d23c608e72025f72e1f3223cb6c7e3979e93c7f Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
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 urllib3.poolmanager import PoolManager, proxy_from_url
+from urllib3.response import HTTPResponse
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)
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 urllib3.exceptions import MaxRetryError
+from urllib3.exceptions import TimeoutError
+from urllib3.exceptions import SSLError as _SSLError
+from urllib3.exceptions import HTTPError as _HTTPError
from .cookies import extract_cookies_to_jar
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
builtin_str = str
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.filepost import encode_multipart_formdata
+from urllib3.filepost import encode_multipart_formdata
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

View file

@ -1,4 +1,4 @@
%if 0%{?fedora} > 12 || 0%{?rhel} > 6
%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())")}
@ -6,18 +6,37 @@
# Turn off the brp-python-bytecompile script
#%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
Name: python-requests
Version: 0.14.1
Release: 1%{?dist}
Version: 1.1.0
Release: 3%{?dist}
Summary: HTTP library, written in Python, for human beings
License: ISC and MIT
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.
# https://bugzilla.redhat.com/show_bug.cgi?id=904614
Patch0: python-requests-system-cert-bundle.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
# Unbundle python-charade (a fork of python-urllib3).
# https://bugzilla.redhat.com/show_bug.cgi?id=904623
Patch2: python-requests-system-urllib3.patch
BuildArch: noarch
BuildRequires: python2-devel
BuildRequires: python-chardet
BuildRequires: python-urllib3
Requires: ca-certificates
Requires: python-chardet
Requires: python-urllib3
%if 0%{?rhel}
BuildRequires: python-ordereddict
Requires: python-ordereddict
%endif
%description
Most existing Python modules for sending HTTP requests are extremely verbose and
@ -28,7 +47,12 @@ 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-devel
BuildRequires: python3-chardet
BuildRequires: python3-urllib3
Requires: python3-chardet
Requires: python3-urllib3
%description -n python3-requests
Most existing Python modules for sending HTTP requests are extremely verbose and
cumbersome. Pythons built-in urllib2 module provides most of the HTTP
@ -36,32 +60,63 @@ 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}
%patch0 -p1
%patch1 -p1
%patch2 -p1
# 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/charade
# Unbundle urllib3. Patch1 switches usage to system urllib3.
rm -rf build/lib/requests/packages
popd
%endif
%{__python} setup.py build
# Unbundle chardet. Patch1 switches usage to system chardet.
rm -rf build/lib/requests/packages/charade
# Unbundle urllib3. Patch1 switches usage to system urllib3.
rm -rf build/lib/requests/packages
%install
rm -rf $RPM_BUILD_ROOT
%if 0%{?_with_python3}
PYTHONDONTWRITEBYTECODE=1 %{__python3} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
#%py_byte_compile %{__python} %{buildroot}%{python3_sitelib}/requests/packages/chardet2
#%py_byte_compile %{__python} %{buildroot}%{python3_sitelib}/requests/packages/oauthlib
#%py_byte_compile %{__python} %{buildroot}%{python3_sitelib}/requests/packages/urllib3
#%py_byte_compile %{__python} %{buildroot}%{python3_sitelib}/requests/*.py
pushd %{py3dir}
%{__python3} setup.py install --skip-build --root $RPM_BUILD_ROOT
popd
%endif
PYTHONDONTWRITEBYTECODE=1 %{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
#%py_byte_compile %{__python} %{buildroot}%{python_sitelib}/requests/packages/chardet
#%py_byte_compile %{__python} %{buildroot}%{python_sitelib}/requests/packages/oauthlib
#%py_byte_compile %{__python} %{buildroot}%{python_sitelib}/requests/packages/urllib3
#%py_byte_compile %{__python} %{buildroot}%{python_sitelib}/requests/*.py
#
%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
## 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
%defattr(-,root,root,-)
%doc NOTICE LICENSE README.rst HISTORY.rst
@ -75,8 +130,33 @@ PYTHONDONTWRITEBYTECODE=1 %{__python} setup.py install -O1 --skip-build --root $
%{python3_sitelib}/requests/
%endif
%changelog
* Thu Feb 28 2013 Ralph Bean <rbean@redhat.com> - 1.1.0-3
- Unbundled python-urllib3. Using system python-urllib3 now.
- Conditionally include python-ordereddict for el6.
* Wed Feb 27 2013 Ralph Bean <rbean@redhat.com> - 1.1.0-2
- Unbundled python-charade/chardet. Using system python-chardet now.
- Removed deprecated comments and actions against oauthlib unbundling.
Those are no longer necessary in 1.1.0.
- Added links to bz tickets over Patch declarations.
* Tue Feb 26 2013 Ralph Bean <rbean@redhat.com> - 1.1.0-1
- Latest upstream.
- Relicense to ASL 2.0 with upstream.
- Removed cookie handling patch (fixed in upstream tarball).
- Updated cert unbundling patch to match upstream.
- Added check section, but left it commented out for koji.
* Fri Feb 8 2013 Toshio Kuratomi <toshio@fedoraproject.org> - 0.14.1-4
- Let brp_python_bytecompile run again, take care of the non-python{2,3} modules
by removing them from the python{,3}-requests package that they did not belong
in.
- Use the certificates in the ca-certificates package instead of the bundled one
+ https://bugzilla.redhat.com/show_bug.cgi?id=904614
- Fix a problem with cookie handling
+ https://bugzilla.redhat.com/show_bug.cgi?id=906924
* Wed Oct 22 2012 Arun S A G <sagarun@gmail.com> 0.14.1-1
- Updated to latest upstream release

View file

@ -1 +1 @@
3de30600072cbc7214ae342d1d08aa46 requests-0.14.1.tar.gz
a0158815af244c32041a3147ee09abf3 requests-1.1.0.tar.gz