generic-poky/meta/classes/utility-tasks.bbclass
Richard Purdie 61ed74a725 utility-tasks: Set T to alternate location during do_clean
There is a race where do_clean tries to clean WORKDIR but there are logfiles
written into ${T} by bitbake and this can lead to exceptions due to open files.

The easiest solution is to redirect T to a different location for the do_clean
task, hence avoiding the errors and also allowing the logfiles to be visible
somewhere. ${LOG_DIR} seems an appropriate place for this.

[YOCTO #2846]

(From OE-Core rev: eef9d6c2d52f5264a6e7a9d882f8323f9793fd7f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-18 16:23:59 +01:00

61 lines
1.4 KiB
Text

addtask listtasks
do_listtasks[nostamp] = "1"
python do_listtasks() {
import sys
# emit variables and shell functions
#bb.data.emit_env(sys.__stdout__, d)
# emit the metadata which isnt valid shell
for e in d.keys():
if d.getVarFlag(e, 'task'):
bb.plain("%s" % e)
}
CLEANFUNCS ?= ""
T_task-clean = "${LOG_DIR}/cleanlogs/${PN}"
addtask clean
do_clean[nostamp] = "1"
python do_clean() {
"""clear the build and temp directories"""
dir = d.expand("${WORKDIR}")
bb.note("Removing " + dir)
oe.path.remove(dir)
dir = "%s.*" % bb.data.expand(d.getVar('STAMP'), d)
bb.note("Removing " + dir)
oe.path.remove(dir)
for f in (d.getVar('CLEANFUNCS', True) or '').split():
bb.build.exec_func(f, d)
}
addtask checkuri
do_checkuri[nostamp] = "1"
python do_checkuri() {
src_uri = (d.getVar('SRC_URI', True) or "").split()
if len(src_uri) == 0:
return
localdata = bb.data.createCopy(d)
bb.data.update_data(localdata)
try:
fetcher = bb.fetch2.Fetch(src_uri, localdata)
fetcher.checkstatus()
except bb.fetch2.BBFetchException, e:
raise bb.build.FuncFailed(e)
}
addtask checkuriall after do_checkuri
do_checkuriall[recrdeptask] = "do_checkuriall do_checkuri"
do_checkuriall[nostamp] = "1"
do_checkuriall() {
:
}
addtask fetchall after do_fetch
do_fetchall[recrdeptask] = "do_fetchall do_fetch"
do_fetchall() {
:
}