summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/spack/defaults/config.yaml6
-rw-r--r--lib/spack/spack/config.py1
-rw-r--r--lib/spack/spack/fetch_strategy.py8
-rw-r--r--lib/spack/spack/schema/config.py1
4 files changed, 14 insertions, 2 deletions
diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index 32745a309a..cc51060eae 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -75,6 +75,12 @@ config:
misc_cache: ~/.spack/cache
+ # Timeout in seconds used for downloading sources etc. This only applies
+ # to the connection phase and can be increased for slow connections or
+ # servers. 0 means no timeout.
+ connect_timeout: 10
+
+
# If this is false, tools like curl that use SSL will not verify
# certifiates. (e.g., curl will use use the -k option)
verify_ssl: true
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index b1c0ad73c7..7ed47340bf 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -97,6 +97,7 @@ configuration_paths = (
config_defaults = {
'config': {
'debug': False,
+ 'connect_timeout': 10,
'verify_ssl': True,
'checksum': True,
'dirty': False,
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 5ae01286c4..38ed17d28e 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -326,11 +326,15 @@ class URLFetchStrategy(FetchStrategy):
'-D',
'-', # print out HTML headers
'-L', # resolve 3xx redirects
- # Timeout if can't establish a connection after 10 sec.
- '--connect-timeout', '10',
url,
]
+ connect_timeout = spack.config.get('config:connect_timeout')
+
+ if connect_timeout > 0:
+ # Timeout if can't establish a connection after n sec.
+ curl_args.extend(['--connect-timeout', str(connect_timeout)])
+
if not spack.config.get('config:verify_ssl'):
curl_args.append('-k')
diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py
index 1378698825..a05af2f438 100644
--- a/lib/spack/spack/schema/config.py
+++ b/lib/spack/spack/schema/config.py
@@ -55,6 +55,7 @@ properties = {
},
'source_cache': {'type': 'string'},
'misc_cache': {'type': 'string'},
+ 'connect_timeout': {'type': 'integer', 'minimum': 0},
'verify_ssl': {'type': 'boolean'},
'suppress_gpg_warnings': {'type': 'boolean'},
'install_missing_compilers': {'type': 'boolean'},