diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 09225081550..72f7abc2c4c 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(