summaryrefslogtreecommitdiff
path: root/lib/spack/spack/spec.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/spack/spec.py')
-rw-r--r--lib/spack/spack/spec.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 2d097bc739..0752908a38 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -2225,7 +2225,10 @@ class Spec(object):
if not spec.virtual:
pkg_cls = spec.package_class
pkg_variants = pkg_cls.variants
- not_existing = set(spec.variants) - set(pkg_variants)
+ # reserved names are variants that may be set on any package
+ # but are not necessarily recorded by the package's class
+ not_existing = set(spec.variants) - (
+ set(pkg_variants) | set(spack.directives.reserved_names))
if not_existing:
raise UnknownVariantError(spec.name, not_existing)