base.bbclass wipe ${S} before unpacking source

Make sure that we have a pristine source tree after do_unpack.

[YOCTO #9064]

(From OE-Core rev: eccae514b71394ffaed8fc45dea7942152a334a1)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen
2016-03-22 18:47:00 +02:00
committed by Richard Purdie
parent 3522a90f1b
commit a56fb90dc3

View File

@@ -136,23 +136,21 @@ python base_do_fetch() {
addtask unpack after do_fetch
do_unpack[dirs] = "${WORKDIR}"
python () {
if d.getVar('S', True) != d.getVar('WORKDIR', True):
d.setVarFlag('do_unpack', 'cleandirs', '${S}')
else:
d.setVarFlag('do_unpack', 'cleandirs', os.path.join('${S}', 'patches'))
}
python base_do_unpack() {
src_uri = (d.getVar('SRC_URI', True) or "").split()
if len(src_uri) == 0:
return
rootdir = d.getVar('WORKDIR', True)
# Ensure that we cleanup ${S}/patches
# TODO: Investigate if we can remove
# the entire ${S} in this case.
s_dir = d.getVar('S', True)
p_dir = os.path.join(s_dir, 'patches')
bb.utils.remove(p_dir, True)
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.unpack(rootdir)
fetcher.unpack(d.getVar('WORKDIR', True))
except bb.fetch2.BBFetchException as e:
raise bb.build.FuncFailed(e)
}