diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-11-07 01:10:58 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-11-07 01:10:58 +0000 |
commit | 7241a58f0fa75a8d767149ca68c4d9bd4014d9e2 (patch) | |
tree | f0ffe1c40d8383a17d78736f7a8db038079fc992 | |
parent | 4e2ce5ee43404917c73ee6c4206cbff46b51d334 (diff) | |
download | portage-7241a58f0fa75a8d767149ca68c4d9bd4014d9e2.tar.gz portage-7241a58f0fa75a8d767149ca68c4d9bd4014d9e2.tar.bz2 portage-7241a58f0fa75a8d767149ca68c4d9bd4014d9e2.zip |
Bug #291142 - Fix some cases when a 'missed update' message might not be
displayed. (trunk r14780)
svn path=/main/branches/2.1.7/; revision=14793
-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 70541417a..0537f9cfe 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]) |