rm_work: Improve handling for addto_recipe_sysroot

Rather than requiring each user to handle this individually, handle
addto_recipe_sysroot in the core class. As well as preserving the
sysroot directory, this also ensures the stamp is preserved rather
than rerunning the task every time as currently happens.

(From OE-Core rev: bf8b9858d9ccce27173d13938a83d249294cc473)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2017-07-30 15:59:34 +01:00
parent 4f9918ccfa
commit 35e3cb3012
3 changed files with 20 additions and 14 deletions

View File

@ -35,22 +35,12 @@ do_rm_work () {
fi
done
cd ${WORKDIR}
for dir in *
do
# Retain only logs and other files in temp, safely ignore
# failures of removing pseudo folers on NFS2/3 server.
if [ $dir = 'pseudo' ]; then
rm -rf $dir 2> /dev/null || true
elif ! echo '${RM_WORK_EXCLUDE_ITEMS}' | grep -q -w "$dir"; then
rm -rf $dir
fi
done
# Need to add pseudo back or subsqeuent work in this workdir
# might fail since setscene may not rerun to recreate it
mkdir -p ${WORKDIR}/pseudo/
excludes='${RM_WORK_EXCLUDE_ITEMS}'
# Change normal stamps into setscene stamps as they better reflect the
# fact WORKDIR is now empty
# Also leave noexec stamps since setscene stamps don't cover them
@ -79,6 +69,12 @@ do_rm_work () {
i=dummy
break
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
i=dummy
break
;;
# We remove do_package entirely, including any
# sstate version since otherwise we'd need to leave 'plaindirs' around
# such as 'packages' and 'packages-split' and these can be large. No end
@ -101,6 +97,18 @@ do_rm_work () {
done
rm -f $i
done
cd ${WORKDIR}
for dir in *
do
# Retain only logs and other files in temp, safely ignore
# failures of removing pseudo folers on NFS2/3 server.
if [ $dir = 'pseudo' ]; then
rm -rf $dir 2> /dev/null || true
elif ! echo "$excludes" | grep -q -w "$dir"; then
rm -rf $dir
fi
done
}
do_rm_work_all () {
:

View File

@ -20,6 +20,5 @@ do_install() {
install tunctl ${D}${bindir}/
}
RM_WORK_EXCLUDE_ITEMS += "recipe-sysroot-native"
DEPENDS += "qemu-native"
addtask addto_recipe_sysroot after do_populate_sysroot before do_build

View File

@ -3,5 +3,4 @@ require systemtap_git.bb
inherit native
RM_WORK_EXCLUDE_ITEMS += "recipe-sysroot-native"
addtask addto_recipe_sysroot after do_populate_sysroot before do_build