diff options
author | alalazo <massimiliano.culpo@googlemail.com> | 2016-03-18 11:05:59 +0100 |
---|---|---|
committer | alalazo <massimiliano.culpo@googlemail.com> | 2016-03-18 11:05:59 +0100 |
commit | 4cf4bf3a0343fc93d6f0c14dd89956fa03b8f738 (patch) | |
tree | 01c2c34d19c19deae00b1948e0cf4fa2fd813a55 | |
parent | 179ed7cce642040f07ad94140b1e3cf6867b6936 (diff) | |
download | spack-4cf4bf3a0343fc93d6f0c14dd89956fa03b8f738.tar.gz spack-4cf4bf3a0343fc93d6f0c14dd89956fa03b8f738.tar.bz2 spack-4cf4bf3a0343fc93d6f0c14dd89956fa03b8f738.tar.xz spack-4cf4bf3a0343fc93d6f0c14dd89956fa03b8f738.zip |
openssl : solved glitch to prevent spack to freeze when the network is unreachable
-rw-r--r-- | var/spack/repos/builtin/packages/openssl/package.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index 70afaf4038..22d538531a 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -1,4 +1,4 @@ -import urllib +import urllib2 import llnl.util.tty as tty from spack import * @@ -37,17 +37,22 @@ class Openssl(Package): version_number = '.'.join([str(x) for x in version[:-1]]) older_url = older.format(version_number=version_number, version_full=version) latest_url = latest.format(version=version) - response = urllib.urlopen(latest.format(version=version)) - if response.getcode() == 404: - openssl_url = older_url - # Checks if we already warned the user for this particular version of OpenSSL. - # If not we display a warning message and mark this version - if not warnings_given_to_user.get(version, False): - tty.warn('This installation depends on an old version of OpenSSL, which may have known security issues. ') - tty.warn('Consider updating to the latest version of this package.') - tty.warn('More details at {homepage}'.format(homepage=Openssl.homepage)) - warnings_given_to_user[version] = True - else: + try: + response = urllib2.urlopen(latest.format(version=version), timeout=5) + if response.getcode() == 404: + openssl_url = older_url + # Checks if we already warned the user for this particular version of OpenSSL. + # If not we display a warning message and mark this version + if not warnings_given_to_user.get(version, False): + tty.warn('This installation depends on an old version of OpenSSL, which may have known security issues. ') + tty.warn('Consider updating to the latest version of this package.') + tty.warn('More details at {homepage}'.format(homepage=Openssl.homepage)) + warnings_given_to_user[version] = True + else: + openssl_url = latest_url + except urllib2.URLError: + tty.warn('Cannot connect to network to retrieve OpenSSL version. Using default url.') + warnings_given_to_user[version] = True openssl_url = latest_url # Store the computed URL openssl_urls[version] = openssl_url |