Inside depgraph._dep_expand(), filter use dbapi.cp_list() to filter out
authorZac Medico <zmedico@gentoo.org>
Fri, 23 Jan 2009 21:15:34 +0000 (21:15 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 23 Jan 2009 21:15:34 +0000 (21:15 -0000)
any results from dbapi.cp_all() that happen to not contain any ebuilds.
Thanks to Jeremy Olexa <darkside@g.o> for reporting.

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

pym/_emerge/__init__.py

index 98d48b6781c85e6e9481ccca791f22a0ab0cdc56..7f02a48d732e2693b984895008142e0661c90012 100644 (file)
@@ -5179,9 +5179,9 @@ class depgraph(object):
                        atom_without_category, "null"))
                cat, atom_pn = portage.catsplit(null_cp)
 
+               dbs = self._filtered_trees[root_config.root]["dbs"]
                cp_set = set()
-               for db, pkg_type, built, installed, db_keys in \
-                       self._filtered_trees[root_config.root]["dbs"]:
+               for db, pkg_type, built, installed, db_keys in dbs:
                        cp_set.update(db.cp_all())
                for cp in list(cp_set):
                        cat, pn = portage.catsplit(cp)
@@ -5189,6 +5189,13 @@ class depgraph(object):
                                cp_set.discard(cp)
                deps = []
                for cp in cp_set:
+                       have_pkg = False
+                       for db, pkg_type, built, installed, db_keys in dbs:
+                               if db.cp_list(cp):
+                                       have_pkg = True
+                                       break
+                       if not have_pkg:
+                               continue
                        cat, pn = portage.catsplit(cp)
                        deps.append(insert_category_into_atom(
                                atom_without_category, cat))