diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py index 9c9e9e10ff5de9c08c9fada53511df1c7cbc0cf8..3da5efc9fa60e381820110ed56d786745f3e12bd 100644 --- a/lib/spack/spack/concretize.py +++ b/lib/spack/spack/concretize.py @@ -95,7 +95,11 @@ def cmp_externals(a, b): not b.external and b.external_module): # We're choosing between different providers, so # maintain order from provider sort - return candidates.index(a) - candidates.index(b) + index_of_a = next(i for i in range(0, len(candidates)) \ + if a.satisfies(candidates[i])) + index_of_b = next(i for i in range(0, len(candidates)) \ + if b.satisfies(candidates[i])) + return index_of_a - index_of_b result = cmp_specs(a, b) if result != 0: