summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-06-13 19:55:03 +0000
committerZac Medico <zmedico@gentoo.org>2006-06-13 19:55:03 +0000
commit24ee1791e442af28df488fb231e68dd18a3b52c1 (patch)
treeacf5fcf84fcde9f926e8260ab09dae1fd11ff460 /pym
parentd412a96bfda5b4c124db341e0cf3ea14b5204d7c (diff)
downloadportage-24ee1791e442af28df488fb231e68dd18a3b52c1.tar.gz
portage-24ee1791e442af28df488fb231e68dd18a3b52c1.tar.bz2
portage-24ee1791e442af28df488fb231e68dd18a3b52c1.zip
Fix generation of ebuild log file names for bug #136285.
svn path=/main/trunk/; revision=3506
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py33
1 files changed, 18 insertions, 15 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 26cce56cc..486ee8ddf 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2544,7 +2544,7 @@ def doebuild_environment(myebuild, mydo, myroot, mysettings, debug, use_cache, m
mysettings["EBUILD"] = ebuild_path
mysettings["O"] = pkg_dir
- mysettings["CATEGORY"] = cat
+ mysettings.configdict["pkg"]["CATEGORY"] = cat
mysettings["FILESDIR"] = pkg_dir+"/files"
mysettings["PF"] = mypv
@@ -2860,20 +2860,16 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
mysettings["PF"], myroot, mysettings, vartree=vartree)
if "PORT_LOGDIR" in mysettings:
- logfile = os.path.join(mysettings["PORT_LOGDIR"],
- "%s-%s.log" % (str(vartree.dbapi.get_counter_tick_core("/")),
- mysettings["PF"]))
-
- if logfile and "PORTAGE_CALLER" in os.environ and \
- os.environ["PORTAGE_CALLER"] == "emerge" and \
- mydo in ["merge"] + actionmap_deps.keys():
- # Increment the counter so that each new build attempt gets it's
- # own unique log file (portage uses the counter for nothing more than
- # log handling, though it can be used to determine merge order).
- while os.path.exists(logfile):
- logfile = os.path.join(mysettings["PORT_LOGDIR"],
- "%s-%s.log" % (str(vartree.dbapi.counter_tick("/") + 1),
- mysettings["PF"]))
+ logid_path = os.path.join(mysettings["PORTAGE_BUILDDIR"], ".logid")
+ if not os.path.exists(logid_path):
+ f = open(logid_path, "w")
+ f.close()
+ del f
+ logid_time = time.strftime("%Y%m%d-%H%M%S",
+ time.gmtime(os.stat(logid_path).st_mtime))
+ logfile = os.path.join(mysettings["PORT_LOGDIR"], "%s:%s:%s.log" %\
+ (mysettings["CATEGORY"], mysettings["PF"], logid_time))
+ del logid_path, logid_time
# if any of these are being called, handle them -- running them out of the sandbox -- and stop now.
if mydo in ["clean","cleanrm"]:
@@ -3052,6 +3048,13 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
mysettings["DISTDIR"] = mysettings["PORTAGE_ACTUAL_DISTDIR"]
del mysettings["PORTAGE_ACTUAL_DISTDIR"]
+ if logfile:
+ try:
+ if os.stat(logfile).st_size == 0:
+ os.unlink(logfile)
+ except OSError:
+ pass
+
if retval != os.EX_OK and tree == "porttree":
for i in xrange(len(mydbapi.porttrees)-1):
t = mydbapi.porttrees[i+1]