else:
if pkg.installed and "selective" not in self._depgraph.myparams:
try:
- if self._depgraph._set_atoms.findAtomForPackage(
- pkg.cpv, pkg.metadata):
- ret = []
+ arg = self._depgraph._set_atoms.findAtomForPackage(
+ pkg.cpv, pkg.metadata)
except portage_exception.InvalidDependString:
- pass
+ arg = None
+ arg_cp = None
+ else:
+ arg_cp = portage.dep_getkey(arg)
+ if arg and arg_cp != pkg.cp:
+ # If this argument matches via PROVIDE but there is a
+ # new-style virtual available, then the argument does
+ # not really apply to this package.
+ virt_pkg, virt_existing = \
+ self._depgraph._select_package(self._root, arg_cp)
+ if virt_pkg and virt_pkg.cp == arg_cp:
+ arg = None
+ if arg:
+ ret = []
if ret is None:
self._cpv_tree_map[pkg.cpv] = \
self._depgraph.pkg_tree_map[pkg.type_name]