On Fri, 2014-05-02 at 22:51 +0100, Paul Barker wrote: > On 2 May 2014 22:34, Richard Purdie <richard.pur...@linuxfoundation.org> > wrote: > > On Fri, 2014-05-02 at 17:43 +0100, Paul Barker wrote: > >> > >> 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. > > Looks like I found the issue quickly using bitbake-diffsigs. > do_package_write_ipk does: > localdata = bb.data.createCopy(d) > Then uses localdata. > > If I check localdata.getVar(), the variable name doesn't appear in the > list of dependencies. > > If instead I check d.getVar(), it does appear in the list of dependencies. > > It looks like localdata is used so that certain variables can be set > without the changes affecting anything else (PKG, OVERRIDES, ROOT, > etc). But there are also some calls to localdata.getVar() for > PACKAGE_ARCH and ALLOW_EMPTY. > > With my check changed to d.getVar(), the dependencies are: (['PKGE', > 'IPK_HIERARCHICAL_FEED', 'get_package_additional_metadata', > 'PKGWRITEDIRIPK', 'OPKGBUILDCMD', 'mapping_rename_hook', 'PKGDEST', > 'PACKAGES', 'HOMEPAGE']) > > Does this mean changes to PACKAGE_ARCH and ALLOW_EMPTY may go unnoticed?
It may well do and I've realised the issue: codeparser.py: class PythonParser(): getvars = ("d.getVar", "bb.data.getVar", "data.getVar", "d.appendVar", "d.prependVar") we probably need to change this to an .endswith(".getVar", ".appendVar", ".prependVar") type check... Cheers, Richard -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core