summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-11 03:18:49 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-11 03:18:49 +0000
commit9e7bf33c3e1513787a2470f020e4600c5afb8b14 (patch)
treef0cfcb807f26f8456dc5064ae80dafc7cccbe499 /pym
parent122443d1f1a278dccc6220d4fe4209137481f4d7 (diff)
downloadportage-9e7bf33c3e1513787a2470f020e4600c5afb8b14.tar.gz
portage-9e7bf33c3e1513787a2470f020e4600c5afb8b14.tar.bz2
portage-9e7bf33c3e1513787a2470f020e4600c5afb8b14.zip
Inside depgraph.loadResumeCommand(), ignore unsatisified dependencies that
are pulled in by installed packages. This is needed in order to avoid having --keep-going bail out needlessly when one of a group of circularly dependent packages fails to install after one or more of the group have already been installed. TODO: Add sanity checks to make sure that it's really safe to ignore all the deps that can be ignored by this code. (trunk r12541) svn path=/main/branches/2.1.6/; revision=12827
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/__init__.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 01998d805..bf070dd91 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -8498,13 +8498,19 @@ class depgraph(object):
# masked.
if not self._create_graph(allow_unsatisfied=True):
return False
- if masked_tasks or self._unsatisfied_deps:
+
+ # TODO: Add sanity checks to make sure that it's really
+ # safe to ignore all the deps that can be ignored here.
+ unsatisfied_deps = [x for x in self._unsatisfied_deps \
+ if isinstance(x.parent, Package) and \
+ x.parent.operation == "merge"]
+ if masked_tasks or unsatisfied_deps:
# This probably means that a required package
# was dropped via --skipfirst. It makes the
# resume list invalid, so convert it to a
# UnsatisfiedResumeDep exception.
raise self.UnsatisfiedResumeDep(self,
- masked_tasks + self._unsatisfied_deps)
+ masked_tasks + unsatisfied_deps)
self._serialized_tasks_cache = None
try:
self.altlist()