From: Zac Medico Date: Fri, 30 Sep 2011 17:04:11 +0000 (-0700) Subject: depgraph: tweak virtual transition code X-Git-Tag: v2.2.0_alpha61~36 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c2efbad8402a7e8904c7353a9930e87ea128b962;p=portage.git depgraph: tweak virtual transition code This fixes a false --binpkg-respect-use warning that's triggered by erroneous USE/IUSE comparison between the new-style virtual and an old-style virtual match. --- diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 9638ce9a7..ad0455112 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3689,6 +3689,8 @@ class depgraph(object): if not isinstance(atom, portage.dep.Atom): atom = portage.dep.Atom(atom) atom_cp = atom.cp + have_new_virt = atom_cp.startswith("virtual/") and \ + self._have_new_virt(root, atom_cp) atom_set = InternalPackageSet(initial_atoms=(atom,), allow_repo=True) existing_node = None myeb = None @@ -3736,6 +3738,9 @@ class depgraph(object): # USE configuration. for pkg in self._iter_match_pkgs(root_config, pkg_type, atom.without_use, onlydeps=onlydeps): + if pkg.cp != atom_cp and have_new_virt: + # pull in a new-style virtual instead + continue if pkg in self._dynamic_config._runtime_pkg_mask: # The package has been masked by the backtracking logic continue @@ -3954,11 +3959,6 @@ class depgraph(object): if not e_pkg: break - if e_pkg.cp != atom_cp and \ - self._have_new_virt(root, atom_cp): - # pull in a new-style virtual instead - break - # Use PackageSet.findAtomForPackage() # for PROVIDE support. if atom_set.findAtomForPackage(e_pkg, modified_use=self._pkg_use_enabled(e_pkg)):