Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Fri, 30 Mar 2018 03:50:16
Message-Id: 1522381675.c5ad40dbe8f74dcdb2b08d42240e217a8ef440e6.zmedico@gentoo
1 commit: c5ad40dbe8f74dcdb2b08d42240e217a8ef440e6
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Fri Mar 30 03:35:24 2018 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri Mar 30 03:47:55 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c5ad40db
7
8 depgraph._serialize_tasks: resolve portage/repoman blockers (bug 651936)
9
10 When ensuring that all runtime dependencies are installed before
11 a new instance of portage, ignore uninstalls. This makes it possible
12 to solve a blocker between a new version of portage and an older
13 version of repoman, where an uninstall task for the older version
14 of repoman appears in the runtime dependencies of the new instance
15 of portage.
16
17 Bug: https://bugs.gentoo.org/651936
18
19 pym/_emerge/depgraph.py | 12 +++++++-----
20 1 file changed, 7 insertions(+), 5 deletions(-)
21
22 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
23 index 6af7d5714..963bf25f4 100644
24 --- a/pym/_emerge/depgraph.py
25 +++ b/pym/_emerge/depgraph.py
26 @@ -7671,11 +7671,13 @@ class depgraph(object):
27 return True
28 if node not in mergeable_nodes:
29 return False
30 - if node == replacement_portage and \
31 - mygraph.child_nodes(node,
32 - ignore_priority=priority_range.ignore_medium_soft):
33 - # Make sure that portage always has all of it's
34 - # RDEPENDs installed first.
35 + if node == replacement_portage and any(
36 + getattr(rdep, 'operation', None) != 'uninstall'
37 + for rdep in mygraph.child_nodes(node,
38 + ignore_priority=priority_range.ignore_medium_soft)):
39 + # Make sure that portage always has all of its
40 + # RDEPENDs installed first, but ignore uninstalls
41 + # (these occur when new portage blocks older repoman).
42 return False
43 selected_nodes.add(node)
44 for child in mygraph.child_nodes(node,