diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-02 21:10:37 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-02 21:10:37 +0000 |
commit | 648190a1d6636ed2d847e0406f13114eac070d55 (patch) | |
tree | 92753b0c6ab7a4d6a155a5121bf9ef82467bdd39 | |
parent | 970ef193b6456215800800ea8aa285370d4f0725 (diff) | |
download | portage-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
-rwxr-xr-x | bin/emerge | 8 |
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] |