diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-12-07 02:30:33 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-12-07 02:30:33 +0000 |
commit | 9d71fd0cc12d991cac13e0de6b0b7042a39a62a6 (patch) | |
tree | 7cc18a4f028bf8d331c54966cd8cbe2a939a1645 | |
parent | 1cca9a26d813f460cbd81a7457e0003169c0a657 (diff) | |
download | portage-9d71fd0cc12d991cac13e0de6b0b7042a39a62a6.tar.gz portage-9d71fd0cc12d991cac13e0de6b0b7042a39a62a6.tar.bz2 portage-9d71fd0cc12d991cac13e0de6b0b7042a39a62a6.zip |
Inside dblink._merge(), make sure PORTAGE_BUILDDIR still exists before trying
to call ebuild success/die hooks, since it might have already been removed
by fail-clean (and the hooks would have already been called).
svn path=/main/trunk/; revision=14953
-rw-r--r-- | pym/portage/dbapi/vartree.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 3244fa4ee..a424dea0a 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -4403,17 +4403,23 @@ class dblink(object): retval = self.treewalk(mergeroot, myroot, inforoot, myebuild, cleanup=cleanup, mydbapi=mydbapi, prev_mtimes=prev_mtimes) - if retval == os.EX_OK: - phase = 'success_hooks' - else: - phase = 'die_hooks' + # If PORTAGE_BUILDDIR doesn't exist, then it probably means + # fail-clean is enabled, and the success/die hooks have + # already been called by _emerge.EbuildPhase (via + # self._scheduler.dblinkEbuildPhase) prior to cleaning. + if os.path.isdir(self.settings['PORTAGE_BUILDDIR']): + + if retval == os.EX_OK: + phase = 'success_hooks' + else: + phase = 'die_hooks' - if self._scheduler is None: - portage._spawn_misc_sh(self.settings, [phase], - phase=phase) - else: - self._scheduler.dblinkEbuildPhase( - self, mydbapi, myebuild, phase) + if self._scheduler is None: + portage._spawn_misc_sh(self.settings, [phase], + phase=phase) + else: + self._scheduler.dblinkEbuildPhase( + self, mydbapi, myebuild, phase) # Process ebuild logfiles elog_process(self.mycpv, self.settings, phasefilter=filter_mergephases) |