diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py index 8f1eab0eb326bdad67e9e86905c36d61d0f061d7..9e1364392053100faf4b9713521bde73a9347a46 100644 --- a/lib/spack/spack/cmd/install.py +++ b/lib/spack/spack/cmd/install.py @@ -42,7 +42,8 @@ def update_kwargs_from_args(args, kwargs): 'use_cache': args.use_cache, 'cache_only': args.cache_only, 'explicit': True, # Always true for install command - 'stop_at': args.until + 'stop_at': args.until, + 'unsigned': args.unsigned, }) kwargs.update({ @@ -98,6 +99,10 @@ def setup_parser(subparser): '--cache-only', action='store_true', dest='cache_only', default=False, help="only install package from binary mirrors") + subparser.add_argument( + '--no-check-signature', action='store_true', + dest='unsigned', default=False, + help="do not check signatures of binary packages") subparser.add_argument( '--show-log-on-error', action='store_true', help="print full build log to stderr if build fails") diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index d146be9af9597c439c4d5f69dbadc689bf87f9f3..d67c017a704ea7cf09b0a1f3e2d67442e6b6d30f 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -1508,7 +1508,7 @@ def _update_explicit_entry_in_db(self, rec, explicit): message = '{s.name}@{s.version} : marking the package explicit' tty.msg(message.format(s=self)) - def try_install_from_binary_cache(self, explicit): + def try_install_from_binary_cache(self, explicit, unsigned=False): tty.msg('Searching for binary cache of %s' % self.name) specs = binary_distribution.get_spec(spec=self.spec, force=False) @@ -1525,7 +1525,7 @@ def try_install_from_binary_cache(self, explicit): tty.msg('Installing %s from binary cache' % self.name) binary_distribution.extract_tarball( binary_spec, tarball, allow_root=False, - unsigned=False, force=False) + unsigned=unsigned, force=False) self.installed_from_binary_cache = True spack.store.db.add( self.spec, spack.store.layout, explicit=explicit) @@ -1666,7 +1666,8 @@ def do_install(self, **kwargs): tty.msg(colorize('@*{Installing} @*g{%s}' % self.name)) if kwargs.get('use_cache', True): - if self.try_install_from_binary_cache(explicit): + if self.try_install_from_binary_cache( + explicit, unsigned=kwargs.get('unsigned', False)): tty.msg('Successfully installed %s from binary cache' % self.name) print_pkg(self.prefix) diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 8a22e342e20ebffdf6c6373dfcf7f867bc69b4ec..e6b752945254da6c7a120edb42b8a334050255f1 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -945,7 +945,7 @@ _spack_info() { _spack_install() { if $list_options then - SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --show-log-on-error --source -n --no-checksum -v --verbose --fake --only-concrete -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all" + SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --no-check-signature --show-log-on-error --source -n --no-checksum -v --verbose --fake --only-concrete -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all" else _all_packages fi