summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-02 21:10:37 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-02 21:10:37 +0000
commit648190a1d6636ed2d847e0406f13114eac070d55 (patch)
tree92753b0c6ab7a4d6a155a5121bf9ef82467bdd39 /bin
parent970ef193b6456215800800ea8aa285370d4f0725 (diff)
downloadportage-648190a1d6636ed2d847e0406f13114eac070d55.tar.gz
portage-648190a1d6636ed2d847e0406f13114eac070d55.tar.bz2
portage-648190a1d6636ed2d847e0406f13114eac070d55.zip
In depgraph.validate_blockers(), discard any "uninstall" tasks scheduled
by previous calls, since those tasks may not make sense given the current graph state. (trunk r10106) svn path=/main/branches/2.1.2/; revision=10107
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge8
1 files changed, 8 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index 2eb370f02..22523818a 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3372,6 +3372,14 @@ class depgraph(object):
blocker_cache.flush()
del blocker_cache
+ # Discard any "uninstall" tasks scheduled by previous calls
+ # to this method, since those tasks may not make sense given
+ # the current graph state.
+ previous_uninstall_tasks = self._blocker_uninstalls.leaf_nodes()
+ if previous_uninstall_tasks:
+ self._blocker_uninstalls = digraph()
+ self.digraph.difference_update(previous_uninstall_tasks)
+
for blocker in self._blocker_parents.leaf_nodes():
self.spinner.update()
root_config = self.roots[blocker.root]