Use PackageSet.findAtomForPackage() when matching the existing node against
authorZac Medico <zmedico@gentoo.org>
Mon, 6 Jul 2009 07:15:01 +0000 (07:15 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 6 Jul 2009 07:15:01 +0000 (07:15 -0000)
the atom inside _select_pkg_highest_available_imp(), for PROVIDE support.

svn path=/main/trunk/; revision=13794

pym/_emerge/depgraph.py

index 5bc4275fa024e73f5965dc2b9197c4fa160ee05f..c02e50ca488de7f9668feb4da37e5e0f4792c8d8 100644 (file)
@@ -2000,6 +2000,7 @@ class depgraph(object):
                if not isinstance(atom, portage.dep.Atom):
                        atom = portage.dep.Atom(atom)
                atom_cp = atom.cp
+               atom_set = InternalPackageSet(initial_atoms=(atom,))
                existing_node = None
                myeb = None
                usepkgonly = "--usepkgonly" in self._frozen_config.myopts
@@ -2135,7 +2136,9 @@ class depgraph(object):
                                                e_pkg = self._dynamic_config._slot_pkg_map[root].get(pkg.slot_atom)
                                                if not e_pkg:
                                                        break
-                                               if portage.dep.match_from_list(atom, [e_pkg]):
+                                               # Use PackageSet.findAtomForPackage()
+                                               # for PROVIDE support.
+                                               if atom_set.findAtomForPackage(e_pkg):
                                                        if highest_version and \
                                                                e_pkg.cp == atom_cp and \
                                                                e_pkg < highest_version and \