Patchwork srctree and stamps

login
register
mail settings
Submitter Ambrose, Martin
Date Dec. 10, 2010, 2:17 p.m.
Message ID <A24693684029E5489D1D202277BE89448587464B@dlee02.ent.ti.com>
Download mbox | patch
Permalink /patch/49/
State Accepted
Headers show

Comments

Ambrose, Martin - Dec. 10, 2010, 2:17 p.m.
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

Regards, 
Martin
Chris Larson - Dec. 11, 2010, 3 p.m.
On Fri, Dec 10, 2010 at 7:17 AM, Ambrose, Martin <martin@ti.com> wrote:
> 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.

This looks right to me.  When it was switched from exec_task to
exec_func to avoid other complications, I guess it was forgotten that
exec_task is what runs make_stamp :)
Khem Raj - Dec. 11, 2010, 10:55 p.m.
On Sat, Dec 11, 2010 at 7:00 AM, Chris Larson <clarson@kergoth.com> wrote:
> On Fri, Dec 10, 2010 at 7:17 AM, Ambrose, Martin <martin@ti.com> wrote:
>> 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.
>
> This looks right to me.  When it was switched from exec_task to
> exec_func to avoid other complications, I guess it was forgotten that
> exec_task is what runs make_stamp :)
hmmm seems right.


> --
> Christopher Larson
> clarson at kergoth dot com
> Founder - BitBake, OpenEmbedded, OpenZaurus
> Maintainer - Tslib
> Senior Software Engineer, Mentor Graphics
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
Chris Larson - Dec. 12, 2010, 1:27 a.m.
On Fri, Dec 10, 2010 at 7:17 AM, Ambrose, Martin <martin@ti.com> wrote:
> 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.

Applied it in principle, slightly altered to follow the same logic for
stamp creation that bitbake's exec_task does, just to be safe.  Thanks
much.

Patch

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())
 }