From b49435397a5094f94678adf3549cc8941aa469b7 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 5 Jul 2014 15:06:51 -0400 Subject: Use six for Python 2 compatibility --HG-- branch : feature/issue-229 extra : source : 7b1997ececc5772798ce33a0f8e77387cb55a977 --- setuptools/ssl_support.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index 7b5f429f..b574f4b9 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -3,9 +3,10 @@ import socket import atexit import re +from six.moves import urllib, http_client + import pkg_resources from pkg_resources import ResolutionError, ExtractionError -from setuptools.compat import urllib2 try: import ssl @@ -27,17 +28,11 @@ cert_paths = """ """.strip().split() -HTTPSHandler = HTTPSConnection = object - -for what, where in ( - ('HTTPSHandler', ['urllib2','urllib.request']), - ('HTTPSConnection', ['httplib', 'http.client']), -): - for module in where: - try: - exec("from %s import %s" % (module, what)) - except ImportError: - pass +try: + HTTPSHandler = urllib.request.HTTPSHandler + HTTPSConnection = http_client.HTTPSConnection +except AttributeError: + HTTPSHandler = HTTPSConnection = object is_available = ssl is not None and object not in (HTTPSHandler, HTTPSConnection) @@ -191,7 +186,7 @@ class VerifyingHTTPSConn(HTTPSConnection): def opener_for(ca_bundle=None): """Get a urlopen() replacement that uses ca_bundle for verification""" - return urllib2.build_opener( + return urllib.request.build_opener( VerifyingHTTPSHandler(ca_bundle or find_ca_bundle()) ).open -- cgit v1.2.1 From 9578a0f640dac57f95a391c9f2a1ebdaba1a0846 Mon Sep 17 00:00:00 2001 From: Erik Bray Date: Thu, 24 Dec 2015 16:16:19 -0500 Subject: Prevent exception in atexit handlers when cert store's tempfile is already cleaned up by py.test. --- setuptools/ssl_support.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index cc7db067..7394f4f5 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -223,6 +223,12 @@ def get_win_certfile(): self.addcerts(certs) atexit.register(self.close) + def close(self): + try: + super(MyCertFile, self).close() + except OSError: + pass + _wincerts = MyCertFile(stores=['CA', 'ROOT']) return _wincerts.name -- cgit v1.2.1 From 06872bb0bbbeb953e90bd0941444b0d499056557 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Thu, 31 Dec 2015 11:51:01 -0500 Subject: Update vendoring technique to match that used for packaging. Ref #229. --HG-- branch : feature/issue-229 --- setuptools/ssl_support.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index 8fd7836b..327c2fcb 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -3,7 +3,12 @@ import socket import atexit import re -from six.moves import urllib, http_client +try: + from setuptools._vendor.six.moves import urllib, http_client +except ImportError: + # fallback to naturally-installed version; allows system packagers to + # omit vendored packages. + from six.moves import urllib, http_client import pkg_resources from pkg_resources import ResolutionError, ExtractionError -- cgit v1.2.1 From 952c1bafda1929c74c737646aa025e6ffad6632e Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Thu, 31 Dec 2015 16:30:47 -0500 Subject: Modeling after Astropy's technique for bundling libraries, the imports are now much cleaner. Thanks @embray. Ref #229. --HG-- branch : feature/issue-229 --- setuptools/ssl_support.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index 327c2fcb..7baedd19 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -3,12 +3,7 @@ import socket import atexit import re -try: - from setuptools._vendor.six.moves import urllib, http_client -except ImportError: - # fallback to naturally-installed version; allows system packagers to - # omit vendored packages. - from six.moves import urllib, http_client +from setuptools.extern.six.moves import urllib, http_client import pkg_resources from pkg_resources import ResolutionError, ExtractionError -- cgit v1.2.1 From 8af3b6ef5b4173a0d0d6735147c98c882ae98344 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 16 Jan 2016 06:54:00 -0500 Subject: Always use Python 3 version of map --- setuptools/ssl_support.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index 7baedd19..511d2fa8 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -3,7 +3,7 @@ import socket import atexit import re -from setuptools.extern.six.moves import urllib, http_client +from setuptools.extern.six.moves import urllib, http_client, map import pkg_resources from pkg_resources import ResolutionError, ExtractionError -- cgit v1.2.1 From 3ae46c30225eb46e1f5aada1a19e88b79f04dc72 Mon Sep 17 00:00:00 2001 From: Julien Cigar Date: Wed, 3 Feb 2016 10:25:07 +0100 Subject: FreeBSD: Add root certificate from ca_root_nss. On FreeBSD root certificates from certificate authorities included in the Mozilla NSS library are provided by the ca_root_nss package: jcigar@frodon:~/ > pkg info -l ca_root_nss-3.21 ca_root_nss-3.21: /usr/local/etc/ssl/cert.pem.sample /usr/local/openssl/cert.pem.sample /usr/local/share/certs/ca-root-nss.crt /usr/local/share/licenses/ca_root_nss-3.21/LICENSE /usr/local/share/licenses/ca_root_nss-3.21/MPL /usr/local/share/licenses/ca_root_nss-3.21/catalog.mk On some machines there is no symbolic link (/etc/ssl/cert.pem) installed --- setuptools/ssl_support.py | 1 + 1 file changed, 1 insertion(+) (limited to 'setuptools/ssl_support.py') diff --git a/setuptools/ssl_support.py b/setuptools/ssl_support.py index 511d2fa8..657197cf 100644 --- a/setuptools/ssl_support.py +++ b/setuptools/ssl_support.py @@ -25,6 +25,7 @@ cert_paths = """ /usr/local/share/certs/ca-root.crt /etc/ssl/cert.pem /System/Library/OpenSSL/certs/cert.pem +/usr/local/share/certs/ca-root-nss.crt """.strip().split() -- cgit v1.2.1