Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10037 - main/trunk/pym/_emerge
Date: Tue, 29 Apr 2008 18:02:14
Message-Id: E1Jqu9a-000352-S6@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-04-29 18:02:09 +0000 (Tue, 29 Apr 2008)
3 New Revision: 10037
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Make unmerge() group packages by cat/pn when the order doesn't matter, so
9 the display appears like earlier versions of portage.
10
11
12 Modified: main/trunk/pym/_emerge/__init__.py
13 ===================================================================
14 --- main/trunk/pym/_emerge/__init__.py 2008-04-29 03:33:29 UTC (rev 10036)
15 +++ main/trunk/pym/_emerge/__init__.py 2008-04-29 18:02:09 UTC (rev 10037)
16 @@ -5555,7 +5555,7 @@
17 return os.EX_OK
18
19 def unmerge(root_config, myopts, unmerge_action,
20 - unmerge_files, ldpath_mtimes, autoclean=0, clean_world=1):
21 + unmerge_files, ldpath_mtimes, autoclean=0, clean_world=1, ordered=0):
22 settings = root_config.settings
23 sets = root_config.sets
24 vartree = root_config.trees["vartree"]
25 @@ -5829,7 +5829,25 @@
26 pkgmap[cp]["protected"].add(cpv)
27
28 del installed_sets
29 -
30 +
31 + # Unmerge order only matters in some cases
32 + if not ordered:
33 + unordered = {}
34 + for d in pkgmap:
35 + selected = d["selected"]
36 + if not selected:
37 + continue
38 + cp = portage.cpv_getkey(iter(selected).next())
39 + cp_dict = unordered.get(cp)
40 + if cp_dict is None:
41 + cp_dict = {}
42 + unordered[cp] = cp_dict
43 + for k in d:
44 + cp_dict[k] = set()
45 + for k, v in d.iteritems():
46 + cp_dict[k].update(v)
47 + pkgmap = [unordered[cp] for cp in sorted(unordered)]
48 +
49 for x in xrange(len(pkgmap)):
50 selected = pkgmap[x]["selected"]
51 if not selected:
52 @@ -7436,11 +7454,12 @@
53 if cpv in clean_set:
54 graph.add(cpv, node, priority=priority)
55
56 + ordered = True
57 if len(graph.order) == len(graph.root_nodes()):
58 # If there are no dependencies between packages
59 - # then just unmerge them alphabetically.
60 - cleanlist = graph.order[:]
61 - cleanlist.sort()
62 + # let unmerge() group them by cat/pn.
63 + ordered = False
64 + cleanlist = graph.all_nodes()
65 else:
66 # Order nodes from lowest to highest overall reference count for
67 # optimal root node selection.
68 @@ -7470,8 +7489,8 @@
69 graph.remove(node)
70 cleanlist.append(node)
71
72 - unmerge(root_config, myopts,
73 - "unmerge", cleanlist, ldpath_mtimes)
74 + unmerge(root_config, myopts, "unmerge", cleanlist,
75 + ldpath_mtimes, ordered=ordered)
76
77 if action == "prune":
78 return
79 @@ -8408,8 +8427,11 @@
80 (myaction == "prune" and "--nodeps" in myopts):
81 validate_ebuild_environment(trees)
82 root_config = trees[settings["ROOT"]]["root_config"]
83 + # When given a list of atoms, unmerge
84 + # them in the order given.
85 + ordered = myaction == "unmerge"
86 if 1 == unmerge(root_config, myopts, myaction, myfiles,
87 - mtimedb["ldpath"]):
88 + mtimedb["ldpath"], ordered=ordered):
89 if not (buildpkgonly or fetchonly or pretend):
90 post_emerge(trees, mtimedb, os.EX_OK)
91
92
93 --
94 gentoo-commits@l.g.o mailing list