[OE-core] Ensuring a task is re-ran when local.conf is updated

Richard Purdie richard.purdie at linuxfoundation.org
Fri May 2 21:34:05 UTC 2014


On Fri, 2014-05-02 at 17:43 +0100, Paul Barker wrote:
> Hi all, I'm wondering if someone can help me debug this problem a
> little as it's getting into the parts of bitbake I don't know very
> well, in particular the determination of whether a task needs to
> re-run or not.
> 
> I've attached a patch which adds code to do_package_write_ipk in
> package_ipk.bbclass to split up the package feed if
> IPK_HIERARCHICAL_FEED is set to "1". The commit message in the patch
> explains why I'm doing this and if it all works I'll submit this to
> master. The attached patch isn't ready for submission yet, it needs
> more testing first.
> 
> As expected, if IPK_HIERARCHICAL_FEED is not set in local.conf, the
> package feed is created in the old way. If IPK_HIERARCHICAL_FEED is
> set to "1" in local.conf, the package feed is created in my modified
> way. This was tested by building from scratch in each case, with no
> sstate or tmp directory present.
> 
> However if IPK_HIERARCHICAL_FEED is changed in local.conf, the package
> feed is not recreated. I can force do_write_package_ipk and the new
> value is taken into account, but if I just do my usual 'bitbake
> kitchen-sink' where kitchen-sink is a packagegroup which depends on
> everything I want in the package feed, do_write_package_ipk is not
> re-ran for any recipe.
> 
> Am I missing something here? Is it expected that this variable change
> is detected and the relevant tasks re-executed? I know changing
> variables like PREFERRED_PROVIDER_* in local.conf causes things to be
> rebuilt, so why does that work and this not?

This should work, I'm not sure why it wouldn't. The code should be able
to detect the dependency on the IPK_HIERARCHICAL_FEED variable and
notice when the value changes.

I'd have to experiment with some builds to figure out anything further
but its probably worth opening a bug report as it sounds broken.

bitbake-dffsigs on a siginfo file of a do_package_write_ipk is where to
start with debugging, it should show the dependency on the variable.

Cheers,

Richard




More information about the Openembedded-core mailing list