[oe] srctree and stamps

Ambrose, Martin martin at ti.com
Fri Dec 10 14:17:51 UTC 2010


On Fri, Nov 19, 2010 at 20:01:28, Ambrose, Martin wrote:

> I find that using the latest srctree the stamps aren't updated in the same fashion
> as regular recipes. In the example below I build the srctree recipe (mypackage) and
> then build an image depending on same. Even though the package is built just prior
> the image build still processes several steps which seem redundant.
> 
> I see some special handling of stamps in srctree.bbclass and wonder if this
> is expected/desired behavior.
> 
> Thanks for any help/pointers. 

First: sorry for the double post -- some transitory problem with our mail server.

I found that the lack of expected stamps resulted in errors when building images
with srctree recipes as run time dependencies. Since the do_populate_sysroot,
among others, task stamp was not present it was run again. Various errors
could occur depending on the nature of the recipe but I often saw

* resolve_conffiles: Existing conffile /home/user/work/oe/arago-tmp/rootfs/my-image/etc/device_table is different from the conffile in the new package.

The following patch to create the missing stamps is my resolution.
Comments welcome.

$ git diff classes
diff --git a/classes/srctree.bbclass b/classes/srctree.bbclass
index 4884b62..2effb89 100644
--- a/classes/srctree.bbclass
+++ b/classes/srctree.bbclass
@@ -100,7 +100,7 @@ python () {
 # Manually run do_install & all of its deps
 python do_populate_sysroot_post () {
     from os.path import exists
-    from bb.build import exec_task, exec_func
+    from bb.build import exec_task, exec_func, make_stamp
     from bb import note

     stamp = d.getVar("STAMP", True)
@@ -113,6 +113,7 @@ python do_populate_sysroot_post () {
         if not exists("%s.%s" % (stamp, task)):
             note("%s: executing task %s" % (d.getVar("PF", True), task))
             exec_func(task, d)
+            make_stamp(task,d)

     rec_exec_task("do_populate_sysroot", set())
 }

Regards, 
Martin




More information about the Openembedded-devel mailing list