Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9385 - main/trunk/pym/_emerge
Date: Tue, 26 Feb 2008 06:22:43
Message-Id: E1JTtD6-0006Bi-Px@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-02-26 06:22:39 +0000 (Tue, 26 Feb 2008)
3 New Revision: 9385
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 For depclean/prune unmerge order, if there are no dependencies between
9 package then just unmerge them alphabetically.
10
11
12 Modified: main/trunk/pym/_emerge/__init__.py
13 ===================================================================
14 --- main/trunk/pym/_emerge/__init__.py 2008-02-26 00:02:53 UTC (rev 9384)
15 +++ main/trunk/pym/_emerge/__init__.py 2008-02-26 06:22:39 UTC (rev 9385)
16 @@ -6664,34 +6664,40 @@
17 if cpv in clean_set:
18 graph.add(cpv, node, priority=priority)
19
20 - # Order nodes from lowest to highest overall reference count for
21 - # optimal root node selection.
22 - node_refcounts = {}
23 - for node in graph.order:
24 - node_refcounts[node] = len(graph.parent_nodes(node))
25 - def cmp_reference_count(node1, node2):
26 - return node_refcounts[node1] - node_refcounts[node2]
27 - graph.order.sort(cmp_reference_count)
28 + if len(graph.order) == len(graph.root_nodes()):
29 + # If there are no dependencies between packages
30 + # then just unmerge them alphabetically.
31 + cleanlist = graph.order[:]
32 + cleanlist.sort()
33 + else:
34 + # Order nodes from lowest to highest overall reference count for
35 + # optimal root node selection.
36 + node_refcounts = {}
37 + for node in graph.order:
38 + node_refcounts[node] = len(graph.parent_nodes(node))
39 + def cmp_reference_count(node1, node2):
40 + return node_refcounts[node1] - node_refcounts[node2]
41 + graph.order.sort(cmp_reference_count)
42 +
43 + ignore_priority_range = [None]
44 + ignore_priority_range.extend(
45 + xrange(UnmergeDepPriority.MIN, UnmergeDepPriority.MAX + 1))
46 + while not graph.empty():
47 + for ignore_priority in ignore_priority_range:
48 + nodes = graph.root_nodes(ignore_priority=ignore_priority)
49 + if nodes:
50 + break
51 + if not nodes:
52 + raise AssertionError("no root nodes")
53 + if ignore_priority is not None:
54 + # Some deps have been dropped due to circular dependencies,
55 + # so only pop one node in order do minimize the number that
56 + # are dropped.
57 + del nodes[1:]
58 + for node in nodes:
59 + graph.remove(node)
60 + cleanlist.append(node)
61
62 - ignore_priority_range = [None]
63 - ignore_priority_range.extend(
64 - xrange(UnmergeDepPriority.MIN, UnmergeDepPriority.MAX + 1))
65 - while not graph.empty():
66 - for ignore_priority in ignore_priority_range:
67 - nodes = graph.root_nodes(ignore_priority=ignore_priority)
68 - if nodes:
69 - break
70 - if not nodes:
71 - raise AssertionError("no root nodes")
72 - if ignore_priority is not None:
73 - # Some deps have been dropped due to circular dependencies,
74 - # so only pop one node in order do minimize the number that
75 - # are dropped.
76 - del nodes[1:]
77 - for node in nodes:
78 - graph.remove(node)
79 - cleanlist.append(node)
80 -
81 unmerge(root_config, myopts,
82 "unmerge", cleanlist, ldpath_mtimes)
83
84
85 --
86 gentoo-commits@l.g.o mailing list