Accepting request 184317 from home:vuntz:branches:devel:languages:python

- Add no-default-cacert.patch: completely ignore the internal CA
  bundle and point to /etc/ssl/certs/. This works because we
  patched python to do the right thing when a directory is used
  there instead of a file.
- Manually remove requests/cacert.pem (better than doing that in
  the patch, since it's big) too.

OBS-URL: https://build.opensuse.org/request/show/184317
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-requests?expand=0&rev=38
This commit is contained in:
Denisart Benjamin 2013-07-25 12:57:44 +00:00 committed by Git OBS Bridge
parent 0b75e46531
commit 91c4775552
3 changed files with 67 additions and 0 deletions

53
no-default-cacert.patch Normal file
View File

@ -0,0 +1,53 @@
Index: requests-1.2.3/requests/adapters.py
===================================================================
--- requests-1.2.3.orig/requests/adapters.py
+++ requests-1.2.3/requests/adapters.py
@@ -129,9 +129,6 @@ class HTTPAdapter(BaseAdapter):
if not cert_loc:
cert_loc = DEFAULT_CA_BUNDLE_PATH
- if not cert_loc:
- raise Exception("Could not find a suitable SSL CA certificate bundle.")
-
conn.cert_reqs = 'CERT_REQUIRED'
conn.ca_certs = cert_loc
else:
Index: requests-1.2.3/requests/certs.py
===================================================================
--- requests-1.2.3.orig/requests/certs.py
+++ requests-1.2.3/requests/certs.py
@@ -18,7 +18,7 @@ import os.path
def where():
"""Return the preferred certificate bundle."""
# vendored bundle inside Requests
- return os.path.join(os.path.dirname(__file__), 'cacert.pem')
+ return '/etc/ssl/certs/'
if __name__ == '__main__':
print(where())
Index: requests-1.2.3/MANIFEST.in
===================================================================
--- requests-1.2.3.orig/MANIFEST.in
+++ requests-1.2.3/MANIFEST.in
@@ -1 +1 @@
-include README.rst LICENSE NOTICE HISTORY.rst test_requests.py requirements.txt requests/cacert.pem
+include README.rst LICENSE NOTICE HISTORY.rst test_requests.py requirements.txt
Index: requests-1.2.3/requests.egg-info/SOURCES.txt
===================================================================
--- requests-1.2.3.orig/requests.egg-info/SOURCES.txt
+++ requests-1.2.3/requests.egg-info/SOURCES.txt
@@ -10,7 +10,6 @@ requests/__init__.py
requests/adapters.py
requests/api.py
requests/auth.py
-requests/cacert.pem
requests/certs.py
requests/compat.py
requests/cookies.py
@@ -79,4 +78,4 @@ requests/packages/urllib3/contrib/pyopen
requests/packages/urllib3/packages/__init__.py
requests/packages/urllib3/packages/ordered_dict.py
requests/packages/urllib3/packages/six.py
-requests/packages/urllib3/packages/ssl_match_hostname/__init__.py
\ No newline at end of file
+requests/packages/urllib3/packages/ssl_match_hostname/__init__.py

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Jul 25 11:40:02 UTC 2013 - vuntz@suse.com
- Add no-default-cacert.patch: completely ignore the internal CA
bundle and point to /etc/ssl/certs/. This works because we
patched python to do the right thing when a directory is used
there instead of a file.
- Manually remove requests/cacert.pem (better than doing that in
the patch, since it's big) too.
-------------------------------------------------------------------
Mon May 27 10:36:36 UTC 2013 - dmueller@suse.com

View File

@ -25,6 +25,8 @@ License: Apache-2.0 and LGPL-2.1+ and MIT
Group: Development/Languages/Python
#TODO/FIXME: Maybe split out charade and urllib3 into sub-packages to simplify:
Source: http://pypi.python.org/packages/source/r/requests/requests-%{version}.tar.gz
# PATCH-FIX-OPENSUSE no-default-cacert.patch -- completely ignore the internal CA bundle
Patch0: no-default-cacert.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python
BuildRequires: python-devel
@ -64,6 +66,8 @@ Features:
%setup -q -n requests-%{version}
# For rpmlint warning: remove shebang from python library:
sed -i '/^#!/d' ./requests/certs.py
%patch0 -p1
rm ./requests/cacert.pem
%build
python setup.py build