Fix the code from bug #220341 so that it matches the atom against the
authorZac Medico <zmedico@gentoo.org>
Thu, 29 May 2008 00:32:27 +0000 (00:32 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 29 May 2008 00:32:27 +0000 (00:32 -0000)
installed package, like it's supposed to.

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

pym/_emerge/__init__.py

index bbd35c273d8c0770c7dcbe776938716c555aeb91..c1b487688cce0445942a1586652202eb4716c700 100644 (file)
@@ -3073,6 +3073,16 @@ class depgraph(object):
                                        for pkg in matched_packages:
                                                if not vardb.cpv_exists(pkg.cpv):
                                                        continue
+                                               inst_pkg = self._pkg_cache.get(
+                                                       (pkg_type, root, pkg.cpv, "nomerge"))
+                                               if inst_pkg is None:
+                                                       metadata = izip(self._mydbapi_keys,
+                                                               vardb.aux_get(cpv, self._mydbapi_keys))
+                                                       inst_pkg = Package(built=built, cpv=pkg.cpv,
+                                                               installed=installed, metadata=metadata,
+                                                               onlydeps=onlydeps, root_config=root_config,
+                                                               type_name=pkg_type)
+                                                       self._pkg_cache[inst_pkg] = inst_pkg
                                                # Remove the slot from the atom and verify that
                                                # the package matches the resulting atom.
                                                atom_without_slot = portage.dep.remove_slot(atom)
@@ -3080,8 +3090,8 @@ class depgraph(object):
                                                        atom_without_slot += str(atom.use)
                                                atom_without_slot = portage.dep.Atom(atom_without_slot)
                                                if portage.match_from_list(
-                                                       atom_without_slot, [pkg]):
-                                                       cpv_list = [pkg.cpv]
+                                                       atom_without_slot, [inst_pkg]):
+                                                       cpv_list = [inst_pkg.cpv]
                                                break
 
                                if not cpv_list: