Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10038 - main/branches/2.1.2/bin
Date: Tue, 29 Apr 2008 18:33:40
Message-Id: E1Jque0-0003Ex-Lk@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-04-29 18:33:35 +0000 (Tue, 29 Apr 2008)
3 New Revision: 10038
4
5 Modified:
6 main/branches/2.1.2/bin/emerge
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. (trunk r10037)
10
11
12 Modified: main/branches/2.1.2/bin/emerge
13 ===================================================================
14 --- main/branches/2.1.2/bin/emerge 2008-04-29 18:02:09 UTC (rev 10037)
15 +++ main/branches/2.1.2/bin/emerge 2008-04-29 18:33:35 UTC (rev 10038)
16 @@ -5706,7 +5706,7 @@
17 return os.EX_OK
18
19 def unmerge(settings, myopts, vartree, unmerge_action, unmerge_files,
20 - ldpath_mtimes, autoclean=0, clean_world=1):
21 + ldpath_mtimes, autoclean=0, clean_world=1, ordered=0):
22 candidate_catpkgs=[]
23 global_unmerge=0
24 xterm_titles = "notitles" not in settings.features
25 @@ -5933,6 +5933,25 @@
26 finally:
27 if vdb_lock:
28 portage_locks.unlockdir(vdb_lock)
29 +
30 + # Unmerge order only matters in some cases
31 + if not ordered:
32 + unordered = {}
33 + for d in pkgmap:
34 + selected = d["selected"]
35 + if not selected:
36 + continue
37 + cp = portage.cpv_getkey(iter(selected).next())
38 + cp_dict = unordered.get(cp)
39 + if cp_dict is None:
40 + cp_dict = {}
41 + unordered[cp] = cp_dict
42 + for k in d:
43 + cp_dict[k] = set()
44 + for k, v in d.iteritems():
45 + cp_dict[k].update(v)
46 + pkgmap = [unordered[cp] for cp in sorted(unordered)]
47 +
48 for x in xrange(len(pkgmap)):
49 selected = pkgmap[x]["selected"]
50 if not selected:
51 @@ -7449,11 +7468,12 @@
52 if cpv in clean_set:
53 graph.add(cpv, node, priority=priority)
54
55 + ordered = True
56 if len(graph.order) == len(graph.root_nodes()):
57 # If there are no dependencies between packages
58 - # then just unmerge them alphabetically.
59 - cleanlist = graph.order[:]
60 - cleanlist.sort()
61 + # let unmerge() group them by cat/pn.
62 + ordered = False
63 + cleanlist = graph.all_nodes()
64 else:
65 # Order nodes from lowest to highest overall reference count for
66 # optimal root node selection.
67 @@ -7484,7 +7504,7 @@
68 cleanlist.append(node)
69
70 unmerge(settings, myopts, trees[settings["ROOT"]]["vartree"],
71 - "unmerge", cleanlist, ldpath_mtimes)
72 + "unmerge", cleanlist, ldpath_mtimes, ordered=ordered)
73
74 if action == "prune":
75 return
76 @@ -8369,8 +8389,11 @@
77 (myaction == "prune" and "--nodeps" in myopts):
78 validate_ebuild_environment(trees)
79 vartree = trees[settings["ROOT"]]["vartree"]
80 + # When given a list of atoms, unmerge
81 + # them in the order given.
82 + ordered = myaction == "unmerge"
83 if 1 == unmerge(settings, myopts, vartree, myaction, myfiles,
84 - mtimedb["ldpath"]):
85 + mtimedb["ldpath"], ordered=ordered):
86 if not (buildpkgonly or fetchonly or pretend):
87 post_emerge(settings, mtimedb, 0)
88
89
90 --
91 gentoo-commits@l.g.o mailing list