Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r14128 - main/trunk/pym/_emerge
Date: Sat, 22 Aug 2009 23:11:25
Message-Id: E1Mezk4-0002Lb-5f@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-08-22 23:11:23 +0000 (Sat, 22 Aug 2009)
3 New Revision: 14128
4
5 Modified:
6 main/trunk/pym/_emerge/Scheduler.py
7 Log:
8 Make Scheduler._choose_pkg() prefer uninstall operations when available.
9
10
11 Modified: main/trunk/pym/_emerge/Scheduler.py
12 ===================================================================
13 --- main/trunk/pym/_emerge/Scheduler.py 2009-08-22 19:41:37 UTC (rev 14127)
14 +++ main/trunk/pym/_emerge/Scheduler.py 2009-08-22 23:11:23 UTC (rev 14128)
15 @@ -1164,13 +1164,23 @@
16 self._prune_digraph()
17
18 chosen_pkg = None
19 - later = set(self._pkg_queue)
20 +
21 + # Prefer uninstall operations when available.
22 + graph = self._digraph
23 for pkg in self._pkg_queue:
24 - later.remove(pkg)
25 - if not self._dependent_on_scheduled_merges(pkg, later):
26 + if pkg.operation == 'uninstall' and \
27 + not graph.child_nodes(pkg):
28 chosen_pkg = pkg
29 break
30
31 + if chosen_pkg is None:
32 + later = set(self._pkg_queue)
33 + for pkg in self._pkg_queue:
34 + later.remove(pkg)
35 + if not self._dependent_on_scheduled_merges(pkg, later):
36 + chosen_pkg = pkg
37 + break
38 +
39 if chosen_pkg is not None:
40 self._pkg_queue.remove(chosen_pkg)