]> code.ossystems Code Review - openembedded-core.git/commitdiff
rm_work.bbclass: Update to convert stamps to setscene stamps
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 27 Jan 2011 11:05:14 +0000 (11:05 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 27 Jan 2011 11:10:57 +0000 (11:10 +0000)
We need to manipulate the stamps when removing WORKDIR to indicte that
tasks like compile or install can't just rerun. The most effective method
to do this is to convert the layout to match that which would have been the
case had the system been build from sstate packages.

For example, we'd task stamps like:

xxx-1.4.7-r3.do_compile
xxx-1.4.7-r3.do_configure
xxx-1.4.7-r3.do_fetch
xxx-1.4.7-r3.do_generate_toolchain_file
xxx-1.4.7-r3.do_install
xxx-1.4.7-r3.do_package.emenlow
xxx-1.4.7-r3.do_package_write
xxx-1.4.7-r3.do_package_write_ipk
xxx-1.4.7-r3.do_package_write_rpm
xxx-1.4.7-r3.do_patch
xxx-1.4.7-r3.do_populate_sysroot.emenlow
xxx-1.4.7-r3.do_setscene
xxx-1.4.7-r3.do_unpack

and after rm_work, we'd have stamps of:

xxx-1.4.7-r3.do_package_setscene.emenlow
xxx-1.4.7-r3.do_package_write_ipk_setscene
xxx-1.4.7-r3.do_package_write_rpm_setscene
xxx-1.4.7-r3.do_populate_sysroot_setscene.emenlow

We also need to handle stamps in the form xxx-1.4.7-r3.do_package.MACHINE.TASKHASH
as used by some signature generators.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/rm_work.bbclass

index 260ecb0d8f9c6cc53af6b36f9bad156f09e428d6..501583cdc985f10856ecbbb153f77468cb169bae 100644 (file)
@@ -26,6 +26,31 @@ do_rm_work () {
     # Need to add pseudo back or subsqeuent work in this workdir
     # might fail since setscene may not rerun to recreate it
     mkdir ${WORKDIR}/pseudo/
+
+    # Change normal stamps into setscene stamps as they better reflect the
+    # fact WORKDIR is now empty
+    cd `dirname ${STAMP}`
+    for i in `basename ${STAMP}`*
+    do
+        for j in ${SSTATETASKS}
+        do
+            case $i in
+            *do_setscene*)
+                break
+                ;;
+            *_setscene*)
+                i=dummy
+                break
+                ;;
+            *$j|*$j.*)
+                mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
+                i=dummy
+                break
+            ;;
+            esac
+        done
+        rm -f $i
+    done
 }
 addtask rm_work after do_${RMWORK_ORIG_TASK}