diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index 40d8b0072868a089284b557994d4e0cd217a920b..4ca6a886d4e18f0241167395b71d87cc4d0e374b 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -329,12 +329,6 @@ def _fetch_from_url(self, url): 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') @@ -343,6 +337,8 @@ def _fetch_from_url(self, url): else: curl_args.append('-sS') # just errors when not. + connect_timeout = spack.config.get('config:connect_timeout') + if self.extra_options: cookie = self.extra_options.get('cookie') if cookie: @@ -350,6 +346,14 @@ def _fetch_from_url(self, url): curl_args.append('-b') # specify cookie curl_args.append(cookie) + timeout = self.extra_options.get('timeout') + if timeout: + connect_timeout = max(connect_timeout, int(timeout)) + + if connect_timeout > 0: + # Timeout if can't establish a connection after n sec. + curl_args.extend(['--connect-timeout', str(connect_timeout)]) + # Run curl but grab the mime type from the http headers curl = self.curl with working_dir(self.stage.path): diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py index 57d7046f934385108127868f195a475f8175bdab..87e616d76cd779507b22c724d0d80c434d8cfb6f 100644 --- a/var/spack/repos/builtin/packages/bzip2/package.py +++ b/var/spack/repos/builtin/packages/bzip2/package.py @@ -16,9 +16,12 @@ class Bzip2(Package): homepage = "https://sourceware.org/bzip2/" url = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" - version('1.0.8', sha256='ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269') - version('1.0.7', sha256='e768a87c5b1a79511499beb41500bcc4caf203726fff46a6f5f9ad27fe08ab2b') - version('1.0.6', sha256='a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd') + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + + version('1.0.8', sha256='ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', fetch_options=fetch_options) + version('1.0.7', sha256='e768a87c5b1a79511499beb41500bcc4caf203726fff46a6f5f9ad27fe08ab2b', fetch_options=fetch_options) + version('1.0.6', sha256='a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd', fetch_options=fetch_options) variant('shared', default=True, description='Enables the build of shared libraries.') diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py index e5bf7b1df6e77aa3575629b4013b9d3af587740d..028c59135507c752f24a8b0c57431f2c59a7f632 100644 --- a/var/spack/repos/builtin/packages/libffi/package.py +++ b/var/spack/repos/builtin/packages/libffi/package.py @@ -13,8 +13,12 @@ class Libffi(AutotoolsPackage): run time.""" homepage = "https://sourceware.org/libffi/" + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37', - url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") + url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz", + fetch_options=fetch_options) @property def headers(self):