diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-03 02:55:16 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-03 02:55:16 +0000 |
commit | d971ee9ebb0df596d00d62d1157be92180f914fb (patch) | |
tree | a560c74dfc5806a2faee38cc3922f543688721b6 | |
parent | d0f560e778412c16cfd62b2dbe1ad024c3c77f4b (diff) | |
download | portage-d971ee9ebb0df596d00d62d1157be92180f914fb.tar.gz portage-d971ee9ebb0df596d00d62d1157be92180f914fb.tar.bz2 portage-d971ee9ebb0df596d00d62d1157be92180f914fb.zip |
Fix depgraph.loadResumeCommand() to identify an unsatisfied dependency
and invalidate the resume list in that case.
svn path=/main/trunk/; revision=10119
-rw-r--r-- | pym/_emerge/__init__.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index f09d82105..f2f95f841 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -4796,8 +4796,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() @@ -7665,9 +7676,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: |