[PATCHv2] rm_work: remove package and packages-split dirs

Martin Jansa
2013-03-02T00:19:05Z

meta/classes/rm_work.bbclass | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index 997dcd1..d3be0be 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -17,15 +17,12 @@ do_rm_work () {
cd ${WORKDIR}
for dir in *
do
- if [ `basename ${S}` = $dir ]; then
- rm -rf $dir
- # The package and packages-split directories are retained by sstate for
- # do_package so we retain them here too. Anything in sstate 'plaindirs'
- # should be retained. Also retain logs and other files in temp.
- elif [ $dir != 'temp' ] && [ $dir != 'package' ] && [ $dir != 'packages-split' ]; then
+ # Retain only logs and other files in temp.
+ if [ $dir != 'temp' ]; 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 ${WORKDIR}/pseudo/
@@ -54,6 +51,15 @@ do_rm_work () {
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
+ # of chain tasks depend directly on do_package anymore.
+ *do_package|*do_package.*|*do_package_setscene.*)
+ rm -f $i;
+ i=dummy
+ break
+ ;;
*_setscene*)
i=dummy
break
@@ -71,7 +77,7 @@ do_rm_work () {
addtask rm_work after do_${RMWORK_ORIG_TASK}

do_rm_work_all () {
- :
+ :
}
do_rm_work_all[recrdeptask] = "do_rm_work"
addtask rm_work_all after do_rm_work
--
1.8.1.4