diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 084b8176ec..f8991413cd 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -1462,7 +1462,8 @@ def to_node_dict(self, hash_function=None, all_deps=False): 'module': self.external_module } - d['concrete'] = self._concrete + if not self._concrete: + d['concrete'] = False if 'patches' in self.variants: variant = self.variants['patches'] @@ -1560,8 +1561,8 @@ def from_node_dict(node): spec.external_path = None spec.external_module = None - if 'concrete' in node: - spec._concrete = node['concrete'] + # specs read in are concrete unless marked abstract + spec._concrete = node.get('concrete', True) if 'patches' in node: patches = node['patches']