diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-11-06 03:52:36 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-11-06 03:52:36 +0000 |
commit | cbeaa12f06d3dd62fea17cf95092c4beb9338756 (patch) | |
tree | 6cd8aa4c1912c1827bb9b00cf1bed3d7b54a5ac8 | |
parent | 883f1ba5971f6b62b66ac3e06caff47c10b0b786 (diff) | |
download | portage-cbeaa12f06d3dd62fea17cf95092c4beb9338756.tar.gz portage-cbeaa12f06d3dd62fea17cf95092c4beb9338756.tar.bz2 portage-cbeaa12f06d3dd62fea17cf95092c4beb9338756.zip |
Bug #291142 - Fix some cases when a 'missed update' message might not be
displayed.
svn path=/main/trunk/; revision=14780
-rw-r--r-- | pym/_emerge/depgraph.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index b78726258..2ff345da6 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -940,7 +940,9 @@ class depgraph(object): parent_atoms = \ self._dynamic_config._parent_atoms.get(pkg, set()) if parent_atoms: - parent_atoms = self._dynamic_config._slot_conflict_parent_atoms.intersection(parent_atoms) + conflict_atoms = self._dynamic_config._slot_conflict_parent_atoms.intersection(parent_atoms) + if conflict_atoms: + parent_atoms = conflict_atoms if pkg >= existing_node: # We only care about the parent atoms # when they trigger a downgrade. @@ -1337,7 +1339,18 @@ class depgraph(object): if eliminate_pkg: atom_pkg_graph.remove(pkg) + # Yield < and <= atoms first, since those are more likely to + # cause a slot conflicts, and we want those atoms to be displayed + # in the resulting slot conflict message (see bug #291142). + less_than = [] + not_less_than = [] for atom in cp_atoms: + if atom.operator in ('<', '<='): + less_than.append(atom) + else: + not_less_than.append(atom) + + for atom in chain(less_than, not_less_than): child_pkgs = atom_pkg_graph.child_nodes(atom) yield (atom, child_pkgs[0]) |