Gentoo Archives: gentoo-portage-dev

From: Brian Dolbec <dolsen@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH] depgraph: fix slot operator rebuild for llvm:0 to llvm:4 upgrade (bug 612772)
Date: Thu, 16 Mar 2017 04:39:58
Message-Id: 20170315213953.3bda6014.dolsen@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH] depgraph: fix slot operator rebuild for llvm:0 to llvm:4 upgrade (bug 612772) by Zac Medico
1 On Wed, 15 Mar 2017 20:23:43 -0700
2 Zac Medico <zmedico@g.o> wrote:
3
4 > Fix check_reverse_dependencies to ignore dependencies of parent
5 > packages that could be uninstalled in order to solve a blocker
6 > conflict. This case is similar to the one from bug 584626, except
7 > that the relevant parent package is in an older slot which is blocked
8 > by a newer slot. In this case, the _upgrade_available method returns
9 > False, because the package in the older slot is the highest version
10 > version available for its slot. Therefore, a new _in_blocker_conflict
11 > method is needed to detect parent packages that cold be uninstalled.
12 > The included unit test fails without this fix.
13 >
14 > Since the _in_blocker_conflict method requires information that is
15 > collected by the _validate_blockers method, the _validate_blockers
16 > method now has to be called before the _process_slot_conflict and
17 > _slot_operator_trigger_reinstalls methods.
18 >
19 > X-Gentoo-bug: 612772
20 > X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=612772
21 > ---
22 > pym/_emerge/depgraph.py | 59 ++++++++---
23 > .../resolver/test_slot_operator_exclusive_slots.py | 109
24 > +++++++++++++++++++++ 2 files changed, 155 insertions(+), 13
25 > deletions(-) create mode 100644
26 > pym/portage/tests/resolver/test_slot_operator_exclusive_slots.py
27 >
28 > diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
29 > index 1379b05..96b6d5f 100644
30 > --- a/pym/_emerge/depgraph.py
31 > +++ b/pym/_emerge/depgraph.py
32 > @@ -387,7 +387,10 @@ class _dynamic_depgraph_config(object):
33 > # Contains only unsolvable Package -> Blocker edges
34 > self._unsolvable_blockers = digraph()
35 > # Contains all Blocker -> Blocked Package edges
36 > - self._blocked_pkgs = digraph()
37 > + # Do not initialized this until the depgraph
38 /
39 typo -d
40
41
42 Otherwise looks good :)
43
44
45 --
46 Brian Dolbec <dolsen>

Replies