summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMario Melara <maamelara@gmail.com>2016-05-28 10:12:53 -0700
committerMario Melara <maamelara@gmail.com>2016-05-28 10:12:53 -0700
commitbecec8ac7e17a9d56f1d5b0640c1f56be8f64a7f (patch)
treedd2caa2d67cff3c53c27f437d312166ef579c036 /lib
parent9dad7c2acee1329c842a3382b6238c3010e6c931 (diff)
downloadspack-becec8ac7e17a9d56f1d5b0640c1f56be8f64a7f.tar.gz
spack-becec8ac7e17a9d56f1d5b0640c1f56be8f64a7f.tar.bz2
spack-becec8ac7e17a9d56f1d5b0640c1f56be8f64a7f.tar.xz
spack-becec8ac7e17a9d56f1d5b0640c1f56be8f64a7f.zip
Added external module check in normalize to avoid infinite loop
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/spec.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index a505b3c12e..f8bad3ff03 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -1002,11 +1002,12 @@ class Spec(object):
"""
# Make an index of stuff this spec already provides
self_index = ProviderIndex(self.traverse(), restrict=True)
-
changed = False
done = False
+
while not done:
done = True
+
for spec in list(self.traverse()):
replacement = None
if spec.virtual:
@@ -1329,7 +1330,7 @@ class Spec(object):
# if we descend into a virtual spec, there's nothing more
# to normalize. Concretize will finish resolving it later.
- if self.virtual or self.external:
+ if self.virtual or self.external or self.external_module:
return False
# Combine constraints from package deps with constraints from
@@ -1376,7 +1377,6 @@ class Spec(object):
# Ensure first that all packages & compilers in the DAG exist.
self.validate_names()
-
# Get all the dependencies into one DependencyMap
spec_deps = self.flat_dependencies(copy=False)