Remove duplicate providers that can concretize to the same result

Patch generously provided by @becker33.

Closes #928.
This commit is contained in:
Erik Schnetter 2016-05-17 15:13:28 -04:00
parent 1774c7a7b3
commit fcc4c1b2f2

View File

@ -1071,6 +1071,11 @@ def _find_provider(self, vdep, provider_index):
# If there is a provider for the vpkg, then use that instead of
# the virtual package.
if providers:
# Remove duplicate providers that can concretize to the same result.
for provider in providers:
for spec in providers:
if spec is not provider and provider.satisfies(spec):
providers.remove(spec)
# Can't have multiple providers for the same thing in one spec.
if len(providers) > 1:
raise MultipleProviderError(vdep, providers)