From 3b648c294ef0a0aa7e5582e345cbf4a98cdea21f Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sun, 26 Jan 2020 19:28:06 -0800 Subject: concretizer: add initial package existence check --- lib/spack/spack/solver/asp.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 3ed46328e4..e395a86701 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -166,6 +166,15 @@ def check_same_flags(flag_dict_1, flag_dict_2): assert values1 == values2 +def check_packages_exist(specs): + """Ensure all packages mentioned in specs exist.""" + repo = spack.repo.path + for spec in specs: + for s in spec.traverse(): + if not (repo.exists(s.name) or repo.is_virtual(s)): + raise spack.repo.UnknownPackageError(s.name) + + class AspGenerator(object): def __init__(self, out): self.out = out @@ -669,6 +678,9 @@ class AspGenerator(object): Arguments: specs (list): list of Specs to solve """ + # preliminary checks + check_packages_exist(specs) + # get list of all possible dependencies self.possible_virtuals = set() possible = spack.package.possible_dependencies( -- cgit v1.2.3-70-g09d2