Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10188 - main/trunk/pym/_emerge
Date: Mon, 05 May 2008 03:27:34
Message-Id: E1JsrMR-0007t6-Jj@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-05-05 03:27:30 +0000 (Mon, 05 May 2008)
3 New Revision: 10188
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Use a separate digraph to preserve irrelevant blocker relationships that
9 are removed from depgraph._blocker_parents since the irrelevant blockers
10 are still needed for the blocker cache.
11
12
13 Modified: main/trunk/pym/_emerge/__init__.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/__init__.py 2008-05-05 03:19:38 UTC (rev 10187)
16 +++ main/trunk/pym/_emerge/__init__.py 2008-05-05 03:27:30 UTC (rev 10188)
17 @@ -1793,6 +1793,8 @@
18 self._blocker_uninstalls = digraph()
19 # Contains only Package -> Blocker edges
20 self._blocker_parents = digraph()
21 + # Contains only irrelevant Package -> Blocker edges
22 + self._irrelevant_blockers = digraph()
23 # Contains only unsolvable Package -> Blocker edges
24 self._unsolvable_blockers = digraph()
25 self._slot_collision_info = set()
26 @@ -3174,10 +3176,17 @@
27 blocker_atoms = None
28 blockers = None
29 if self.digraph.contains(pkg):
30 + blockers = []
31 try:
32 - blockers = self._blocker_parents.child_nodes(pkg)
33 + blockers.extend(
34 + self._blocker_parents.child_nodes(pkg))
35 except KeyError:
36 - blockers = []
37 + pass
38 + try:
39 + blockers.extend(
40 + self._irrelevant_blockers.child_nodes(pkg))
41 + except KeyError:
42 + pass
43 if blockers is not None:
44 blockers = set("!" + blocker.atom \
45 for blocker in blockers)
46 @@ -3309,6 +3318,7 @@
47 self._blocker_parents.remove(blocker)
48 # Discard any parents that don't have any more blockers.
49 for pkg in parent_pkgs:
50 + self._irrelevant_blockers.add(blocker, pkg)
51 if not self._blocker_parents.child_nodes(pkg):
52 self._blocker_parents.remove(pkg)
53 continue
54 @@ -3383,6 +3393,7 @@
55 # merged.
56 self._blocker_uninstalls.addnode(uninst_task, blocker)
57 if not unresolved_blocks and not depends_on_order:
58 + self._irrelevant_blockers.add(blocker, parent)
59 self._blocker_parents.remove_edge(blocker, parent)
60 if not self._blocker_parents.parent_nodes(blocker):
61 self._blocker_parents.remove(blocker)
62
63 --
64 gentoo-commits@l.g.o mailing list