summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-12-07 02:30:33 +0000
committerZac Medico <zmedico@gentoo.org>2009-12-07 02:30:33 +0000
commit9d71fd0cc12d991cac13e0de6b0b7042a39a62a6 (patch)
tree7cc18a4f028bf8d331c54966cd8cbe2a939a1645
parentFix possibly unsafe modification of list during iteration inside (diff)
downloadportage-idfetch-9d71fd0cc12d991cac13e0de6b0b7042a39a62a6.tar.gz
portage-idfetch-9d71fd0cc12d991cac13e0de6b0b7042a39a62a6.tar.bz2
portage-idfetch-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.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 3244fa4e..a424dea0 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)