From: Zac Medico Date: Sun, 13 Apr 2008 19:17:34 +0000 (-0000) Subject: Fix the _dep_check_composite_db visibility filtering some more. X-Git-Tag: v2.2_pre6~170 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1008e73d6eaac9496ebbb17a75a13389390e323e;p=portage.git Fix the _dep_check_composite_db visibility filtering some more. svn path=/main/trunk/; revision=9872 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 3e8b67bf8..f29bdc9a1 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -4366,21 +4366,17 @@ class depgraph(object): continue slots.add(graph_db.aux_get(cpv, ["SLOT"])[0]) ret = [] + if self._visible(pkg): + self._cpv_pkg_map[pkg.cpv] = pkg + ret.append(pkg.cpv) + slots.remove(pkg.metadata["SLOT"]) while slots: slot_atom = "%s:%s" % (atom_cp, slots.pop()) pkg, existing = self._depgraph._select_package( self._root, slot_atom) if not pkg: continue - if pkg.installed and "selective" not in self._depgraph.myparams: - try: - arg = self._depgraph._iter_atoms_for_pkg(pkg).next() - except (StopIteration, portage.exception.InvalidDependString): - arg = None - if arg: - continue - if pkg.installed and \ - not visible(self._depgraph.pkgsettings[pkg.root], pkg): + if not self._visible(pkg): continue self._cpv_pkg_map[pkg.cpv] = pkg ret.append(pkg.cpv) @@ -4389,6 +4385,19 @@ class depgraph(object): self._match_cache[orig_atom] = ret return ret[:] + def _visible(self, pkg): + if pkg.installed and "selective" not in self._depgraph.myparams: + try: + arg = self._depgraph._iter_atoms_for_pkg(pkg).next() + except (StopIteration, portage.exception.InvalidDependString): + arg = None + if arg: + return False + if pkg.installed and \ + not visible(self._depgraph.pkgsettings[pkg.root], pkg): + return False + return True + def _dep_expand(self, atom): """ This is only needed for old installed packages that may