Gentoo Archives: gentoo-portage-dev

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