summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-28 02:52:39 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-28 02:52:39 +0000
commit2a2d408bb4ebfdcc64dbd121ed2a7129e9ff5dbe (patch)
treee509fc63858c287682c3dafedcd9c518e5bfa5c7
parentFor bug #185048, make emerge-webrsync honor http_proxy and ftp_proxy from mak... (diff)
downloadportage-idfetch-2a2d408bb4ebfdcc64dbd121ed2a7129e9ff5dbe.tar.gz
portage-idfetch-2a2d408bb4ebfdcc64dbd121ed2a7129e9ff5dbe.tar.bz2
portage-idfetch-2a2d408bb4ebfdcc64dbd121ed2a7129e9ff5dbe.zip
Handle 2 more cases where elog_process() needs to be called:
- binary install via pkgmerge() fails before reaching the merge phase (pkg_setup dies) - doebuild() is called for the merge phase but it dies before reaching the merge phase svn path=/main/trunk/; revision=7417
-rw-r--r--pym/portage/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index fff40107..6e5ca9d4 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -4056,6 +4056,12 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
elif mydo=="merge":
retval = spawnebuild("install", actionmap, mysettings, debug,
alwaysdep=1, logfile=logfile)
+ if retval != os.EX_OK:
+ # The merge phase handles this already. Callers don't know how
+ # far this function got, so we have to call elog_process() here
+ # so that it's only called once.
+ from portage.elog import elog_process
+ elog_process(mysettings.mycpv, mysettings)
if retval == os.EX_OK:
retval = merge(mysettings["CATEGORY"], mysettings["PF"],
mysettings["D"], os.path.join(mysettings["PORTAGE_BUILDDIR"],
@@ -5057,6 +5063,9 @@ def pkgmerge(mytbz2, myroot, mysettings, mydbapi=None, vartree=None, prev_mtimes
tbz2_lock = None
builddir_lock = None
catdir_lock = None
+ mycat = None
+ mypkg = None
+ did_merge_phase = False
try:
""" Don't lock the tbz2 file because the filesytem could be readonly or
shared by a cluster."""
@@ -5129,11 +5138,18 @@ def pkgmerge(mytbz2, myroot, mysettings, mydbapi=None, vartree=None, prev_mtimes
treetype="bintree")
retval = mylink.merge(pkgloc, infloc, myroot, myebuild, cleanup=0,
mydbapi=mydbapi, prev_mtimes=prev_mtimes)
+ did_merge_phase = True
return retval
finally:
if tbz2_lock:
portage.locks.unlockfile(tbz2_lock)
if builddir_lock:
+ if not did_merge_phase:
+ # The merge phase handles this already. Callers don't know how
+ # far this function got, so we have to call elog_process() here
+ # so that it's only called once.
+ from portage.elog import elog_process
+ elog_process(mycat + "/" + mypkg, mysettings)
try:
shutil.rmtree(builddir)
except (IOError, OSError), e: