aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-30 15:59:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-31 14:25:44 +0100
commitbf8b9858d9ccce27173d13938a83d249294cc473 (patch)
tree238fc8e2f6cde75f743fe16dbc1a1a45e59cf62c
parenta649f3da630e8ca2d3ca58b610f3918720dd5229 (diff)
downloadopenembedded-core-contrib-bf8b9858d9ccce27173d13938a83d249294cc473.tar.gz
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/rm_work.bbclass32
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb1
-rw-r--r--meta/recipes-kernel/systemtap/systemtap-native_git.bb1
3 files changed, 20 insertions, 14 deletions
diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index badeaeba07..2a4e808b88 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -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 () {
:
diff --git a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index 27d53157db..d86b155176 100644
--- a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -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
diff --git a/meta/recipes-kernel/systemtap/systemtap-native_git.bb b/meta/recipes-kernel/systemtap/systemtap-native_git.bb
index c3da77c831..19cc1cf0f0 100644
--- a/meta/recipes-kernel/systemtap/systemtap-native_git.bb
+++ b/meta/recipes-kernel/systemtap/systemtap-native_git.bb
@@ -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