[yocto] bitbake: DataSmart.expandWithRefs causing exception when handed "${@...}"

Ulf Samuelsson yocto at emagii.com
Sun Jan 13 13:53:09 PST 2019


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?

BR
Ulf Samuelsson

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190113/98bc777d/attachment.html>


More information about the yocto mailing list