From d4674159a5f8f0caece71a73750809e707bec69b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 3 May 2008 02:57:06 +0000 Subject: Fix depgraph.loadResumeCommand() to identify an unsatisfied dependency and invalidate the resume list in that case. (trunk r10119) svn path=/main/branches/2.1.2/; revision=10120 --- bin/emerge | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'bin') diff --git a/bin/emerge b/bin/emerge index 23d9981bc..b875862f7 100755 --- a/bin/emerge +++ b/bin/emerge @@ -4950,8 +4950,19 @@ class depgraph(object): if isinstance(task, Package) and \ task.operation == "merge": self._add_pkg(task, None) - if not self._create_graph(): + + # Allow unsatisfied deps here to avoid showing a masking + # message for an unsatisfied dep that isn't necessarily + # masked. + if not self._create_graph(allow_unsatisfied=True): return False + if self._unsatisfied_deps: + # This probably means that a required package + # was dropped via --skipfirst. It makes the + # resume list invalid, so convert it to a + # PackageNotFound exception. + raise portage_exception.PackageNotFound( + self._unsatisfied_deps[0].atom) self._serialized_tasks_cache = None try: self.altlist() @@ -7675,9 +7686,9 @@ def action_build(settings, trees, mtimedb, out.eerror("Error: The resume list contains packages that are no longer") out.eerror(" available to be emerged. Please restart/continue") out.eerror(" the merge operation manually.") - - if show_spinner: - print "\b\b... done!" + else: + if show_spinner: + print "\b\b... done!" unsatisfied_block = False if success: -- cgit v1.2.3-1-g7c22