On Fri, 2013-12-20 at 18:24 +0000, Paul Barker wrote: > On 18 December 2013 11:30, Richard Purdie > <[email protected]> wrote: > > Now we have deltask API, stop poking around bitbake internal variables. > > > > Signed-off-by: Richard Purdie <[email protected]> > > --- > > diff --git a/meta/classes/externalsrc.bbclass > > b/meta/classes/externalsrc.bbclass > > index c759289..53c71cb 100644 > > --- a/meta/classes/externalsrc.bbclass > > +++ b/meta/classes/externalsrc.bbclass > > @@ -26,21 +26,6 @@ > > > > SRCTREECOVEREDTASKS ?= "do_patch do_unpack do_fetch" > > > > -def remove_tasks(tasks, deltasks, d): > > - for task in tasks: > > - deps = d.getVarFlag(task, "deps") > > - for preptask in deltasks: > > - if preptask in deps: > > - deps.remove(preptask) > > - d.setVarFlag(task, "deps", deps) > > - # Poking around bitbake internal variables is evil but there appears > > to be no better way :( > > - tasklist = d.getVar('__BBTASKS') or [] > > - for task in deltasks: > > - d.delVarFlag(task, "task") > > - if task in tasklist: > > - tasklist.remove(task) > > - d.setVar('__BBTASKS', tasklist) > > - > > python () { > > externalsrc = d.getVar('EXTERNALSRC', True) > > if externalsrc: > > @@ -53,16 +38,16 @@ python () { > > d.setVar('SRC_URI', '') > > > > tasks = filter(lambda k: d.getVarFlag(k, "task"), d.keys()) > > - covered = d.getVar("SRCTREECOVEREDTASKS", True).split() > > > > for task in tasks: > > if task.endswith("_setscene"): > > # sstate is never going to work for external source trees, > > disable it > > - covered.append(task) > > + bb.build.deltask(task, d) > > else: > > # Since configure will likely touch ${S}, ensure only we > > lock so one task has access at a time > > d.appendVarFlag(task, "lockfiles", "${S}/singletask.lock") > > > > - remove_tasks(tasks, covered, d) > > + for task in covered: > > + bb.build.deltask(task, d) > > } > > > > I've just updated oe-core whilst trying to test my in-development > version of opkg using externalsrc and I'm getting: > > *** 0022: for task in covered: > 0023: bb.build.deltask(task, d) > 0024: > Exception: NameError: global name 'covered' is not defined > > I don't really know the code in question well so I don't know whether > the solution is to remove that last for loop or to add back in the > declaration of 'covered'.
Sorry about that, I think I've mixed up some patches. I've pushed something which should fix it. Cheers, Richard _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
