From: Zac Medico Date: Wed, 11 Mar 2009 03:18:49 +0000 (-0000) Subject: Inside depgraph.loadResumeCommand(), ignore unsatisified dependencies that X-Git-Tag: v2.1.6.8~250 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=9e7bf33c3e1513787a2470f020e4600c5afb8b14;p=portage.git 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 --- 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()