On Wed, 15 Mar 2017 20:23:43 -0700 Zac Medico <zmed...@gentoo.org> wrote:
> Fix check_reverse_dependencies to ignore dependencies of parent > packages that could be uninstalled in order to solve a blocker > conflict. This case is similar to the one from bug 584626, except > that the relevant parent package is in an older slot which is blocked > by a newer slot. In this case, the _upgrade_available method returns > False, because the package in the older slot is the highest version > version available for its slot. Therefore, a new _in_blocker_conflict > method is needed to detect parent packages that cold be uninstalled. > The included unit test fails without this fix. > > Since the _in_blocker_conflict method requires information that is > collected by the _validate_blockers method, the _validate_blockers > method now has to be called before the _process_slot_conflict and > _slot_operator_trigger_reinstalls methods. > > X-Gentoo-bug: 612772 > X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=612772 > --- > pym/_emerge/depgraph.py | 59 ++++++++--- > .../resolver/test_slot_operator_exclusive_slots.py | 109 > +++++++++++++++++++++ 2 files changed, 155 insertions(+), 13 > deletions(-) create mode 100644 > pym/portage/tests/resolver/test_slot_operator_exclusive_slots.py > > diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py > index 1379b05..96b6d5f 100644 > --- a/pym/_emerge/depgraph.py > +++ b/pym/_emerge/depgraph.py > @@ -387,7 +387,10 @@ class _dynamic_depgraph_config(object): > # Contains only unsolvable Package -> Blocker edges > self._unsolvable_blockers = digraph() > # Contains all Blocker -> Blocked Package edges > - self._blocked_pkgs = digraph() > + # Do not initialized this until the depgraph / typo -d Otherwise looks good :) -- Brian Dolbec <dolsen>