diff options
-rw-r--r-- | lib/spack/spack/util/web.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 0922508155..72f7abc2c4 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -507,9 +507,9 @@ def _urlopen(req, *args, **kwargs): except AttributeError: pass - # We don't pass 'context' parameter because it was only introduced starting + # Note: 'context' parameter was only introduced starting # with versions 2.7.9 and 3.4.3 of Python. - if 'context' in kwargs: + if __UNABLE_TO_VERIFY_SSL: del kwargs['context'] opener = urlopen @@ -517,7 +517,13 @@ def _urlopen(req, *args, **kwargs): import spack.s3_handler opener = spack.s3_handler.open - return opener(req, *args, **kwargs) + try: + return opener(req, *args, **kwargs) + except TypeError as err: + # If the above fails because of 'context', call without 'context'. + if 'context' in kwargs and 'context' in str(err): + del kwargs['context'] + return opener(req, *args, **kwargs) def find_versions_of_archive( |