summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-12-07 02:30:55 +0000
committerZac Medico <zmedico@gentoo.org>2009-12-07 02:30:55 +0000
commit5c1eba88cde1a5bdbe23998994e7a553334c2b19 (patch)
treec3a532a4ebf954ec25a43e6a5ee609b173eedf26
parent58cdc39cd514ef9d3f0cd29a63d9d38566eca98c (diff)
downloadportage-5c1eba88cde1a5bdbe23998994e7a553334c2b19.tar.gz
portage-5c1eba88cde1a5bdbe23998994e7a553334c2b19.tar.bz2
portage-5c1eba88cde1a5bdbe23998994e7a553334c2b19.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). (trunk r14953) svn path=/main/branches/2.1.7/; revision=14954
-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 21a2fa90a..9793514a0 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -3245,17 +3245,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)