On Sun, 2019-01-13 at 22:53 +0100, Ulf Samuelsson wrote: > I am trying to add a new image class "SWU" in "sumo" for a "software > update image". > As a result: > do_sdk_depends[depends] = '${@get_ext_sdk_depends(d)} meta-extsdk- > toolchain:do_populate_sysroot' > > When data_smart.py works on this, it will call > > DataSmart.expandWithRefs(self, s, varname) > s = '${@get_ext_sdk_depends(d)} meta-extsdk- > toolchain:do_populate_sysroot' > varname = 'do_sdk_depends[depends]' > > I will get an exception in this statement: > > while s.find('${') != -1: > olds = s > try: > s = __expand_var_regexp__.sub(varparse.var_sub, s) > > The definition of __expand_var_regexp__ is: > __expand_var_regexp__ = re.compile(r"\${[^{}@\n\t :]+}") > > That is, it is looking for the string "${<X>}" > but <X> may not contains anything in [{}@\n\t :] > > since the "variable" in "s" is actually a call to > get_ext_sdk_depends, > and thus contains a '@' character it is not matched. > > The build aborts with an exception. > > I am not sure, if '${@get_ext_sdk_depends(d)}' should be expanded > before > DataSmart,expandWithRefs, or if expandWithRefs needs to be extended > to handle the case where the variable is a "call". > > This is blocking us from upgrading from pyro to sumo. > > Any ideas on a solution?
Can you firstly say what the error is you're seeing. Your attempt to understand it is good but I'm not sure which error you see? Secondly, is there a way someone else could reproduce this bug? The fragment you quote looks correct. If you have variable and function names conflicting that would be a problem though as they're all in the same namespace. I'm unclear whether that is a problem here or not though based on the available information. Cheers, Richard -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto