<div dir="ltr">You asked for bblayers.conf and local.conf on IRC, here it is:<div><br></div><div>bblayers.conf:</div><div><div>LCONF_VERSION = "7"</div><div>TMPDIR := "/OE/build/oe-core"</div><div>BBPATH = "${TOPDIR}:${TMPDIR}"</div><div>BBLAYERS = "${TOPDIR}/openembedded-core/meta"</div></div><div><br></div><div>local.conf:</div><div>empty</div><div><br></div><div>and in environment:</div><div><div>BB_ENV_EXTRAWHITE=MACHINE DISTRO http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS GIT_PROXY_COMMAND PSEUDO_DISABLED PSEUDO_BUILD</div></div><div>MACHINE=qemux86<br></div><div>DISTRO is empty</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 18, 2017 at 1:16 AM, Martin Jansa <span dir="ltr"><<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Feb 15, 2017 at 10:58:49AM +0200, Ed Bartosh wrote:<br>
> Hi Martin,<br>
><br>
> Sorry for the delay. I missedd your message somehow.<br>
><br>
> I can't reproduce this. Tried with latest poky and latest oe-core +<br>
> bitbake. I built core-image-tiny-initramfs from scratch and bitbake -e<br>
> busybox works for me just fine.<br>
><br>
> Can you provide more details about your setup, please?<br>
<br>
Hi Ed,<br>
<br>
I was also having troubles reproducing it in different setup as well, until I've<br>
found out that my local.conf had this line:<br>
<br>
IMAGE_FSTYPES_qemux86 = "vmdk"<br>
<br>
which prevented ever using wic (USING_WIC variable was always empty).<br>
<br>
Now with this line removed I can share the complete exception reproduced<br>
with just oe-core layer included:<br>
<br>
$ bitbake -e core-image-tiny-initramfs | tee env.core-image-tiny-initramfs5<br>
NOTE: Started PRServer with DBfile: /OE/build/oe-core/cache/<wbr>prserv.sqlite3, IP: 127.0.0.1, PORT: 38869, PID: 21506<br>
Parsing recipes...ERROR: ExpansionError during parsing /OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>recipes-core/images/<a href="http://core-image-tiny-initramfs.bb" rel="noreferrer" target="_blank">core-<wbr>image-tiny-initramfs.bb</a><br>
Traceback (most recent call last):<br>
File "/OE/build/oe-core/bitbake/<wbr>lib/bb/data_smart.py", line 412, in DataSmart.expandWithRefs(s='\<wbr>tout="${IMGDEPLOYDIR}/${IMAGE_<wbr>NAME}"\n\twks="${WKS_FULL_<wbr>PATH}"\n\tif [ -z "$wks" ]; then\n\t\tbbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately."\n\tfi\n\n\<wbr>tBUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR}/${MACHINE}/<wbr>imgdata/" -e "${IMAGE_BASENAME}" -o "$out/" ${WIC_CREATE_EXTRA_ARGS}\n\tmv "$out/$(basename "${wks%.wks}")"*.direct "$out${IMAGE_NAME_SUFFIX}.wic"<wbr>\n\trm -rf "$out/"\n', varname='IMAGE_CMD'):<br>
try:<br>
> s = __expand_var_regexp__.sub(<wbr>varparse.var_sub, s)<br>
try:<br>
File "/OE/build/oe-core/bitbake/<wbr>lib/bb/data_smart.py", line 111, in VariableParse.var_sub(match=<_<wbr>sre.SRE_Match object; span=(43, 59), match='${WKS_FULL_PATH}'>):<br>
else:<br>
> var = self.d.getVarFlag(key, "_content")<br>
self.references.add(key)<br>
File "/OE/build/oe-core/bitbake/<wbr>lib/bb/data_smart.py", line 773, in DataSmart.getVarFlag(var='WKS_<wbr>FULL_PATH', flag='_content', expand=True, noweakdefault=False, parsing=False):<br>
cachename = var + "[" + flag + "]"<br>
> value = self.expand(value, cachename)<br>
<br>
File "/OE/build/oe-core/bitbake/<wbr>lib/bb/data_smart.py", line 436, in DataSmart.expand(s="${@wks_<wbr>search('${WKS_FILES}'.split(), '${WKS_SEARCH_PATH}') or ''}", varname='WKS_FULL_PATH'):<br>
def expand(self, s, varname = None):<br>
> return self.expandWithRefs(s, varname).value<br>
<br>
File "/OE/build/oe-core/bitbake/<wbr>lib/bb/data_smart.py", line 426, in DataSmart.expandWithRefs(s="${<wbr>@wks_search('directdisk.wks core-image-tiny-initramfs.wks'<wbr>.split(), '/OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>recipes-core/images:${@':'.<wbr>join('%s/wic' % p for p in '/OE/build/oe-core:${TMPDIR}:/<wbr>OE/build/oe-core/openembedded-<wbr>core/meta'.split(':'))}:${@':'<wbr>.join('%s/scripts/lib/wic/<wbr>canned-wks' % l for l in '/OE/build/oe-core:${TMPDIR}:/<wbr>OE/build/oe-core/openembedded-<wbr>core/meta:/OE/build/oe-core/<wbr>openembedded-core'.split(':'))<wbr>}') or ''}", varname='WKS_FULL_PATH'):<br>
except Exception as exc:<br>
> raise ExpansionError(varname, s, exc) from exc<br>
<br>
bb.data_smart.ExpansionError: Failure expanding variable WKS_FULL_PATH, expression was ${@wks_search('directdisk.wks core-image-tiny-initramfs.wks'<wbr>.split(), '/OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>recipes-core/images:${@':'.<wbr>join('%s/wic' % p for p in '/OE/build/oe-core:${TMPDIR}:/<wbr>OE/build/oe-core/openembedded-<wbr>core/meta'.split(':'))}:${@':'<wbr>.join('%s/scripts/lib/wic/<wbr>canned-wks' % l for l in '/OE/build/oe-core:${TMPDIR}:/<wbr>OE/build/oe-core/openembedded-<wbr>core/meta:/OE/build/oe-core/<wbr>openembedded-core'.split(':'))<wbr>}') or ''} which triggered exception SyntaxError: invalid syntax (WKS_FULL_PATH, line 1)<br>
<br>
<br>
Summary: There was 1 ERROR message shown, returning a non-zero exit code.<br>
<br>
The strange part of this exception is the unexpanded ${TMPDIR} in the WKS_SEARCH_PATH value,<br>
that lead me to following 2 lines in conf/bblayers.conf:<br>
<br>
TMPDIR := "/OE/build/oe-core"<br>
BBPATH = "${TOPDIR}:${TMPDIR}"<br>
<br>
I'm not sure why it appears unexpanded in WKS_SEARCH_PATH, I see you do some magick with all these<br>
WKS_* variables, especially in that anonymous python, but the exception is actually from<br>
expanding IMAGE_CMD_wic () function and it goes away if I remove following line from it:<br>
<br>
wks="${WKS_FULL_PATH}"<br>
<br>
And it also goes away if I use immediate expansion when setting that BBPATH in bblayers.conf.<br>
<br>
Interesting variables from bitbake -e with immediate expansion:<br>
# $BBPATH [4 operations]<br>
# immediate /OE/build/oe-core/conf/<wbr>bblayers.conf:6<br>
# "${TOPDIR}:${TMPDIR}"<br>
# postdot /OE/build/oe-core/<wbr>openembedded-core/meta/conf/<wbr>layer.conf:2<br>
# ":${LAYERDIR}"<br>
# set data_smart.py:911 [expandVarref]<br>
# "/OE/build/oe-core:/OE/build/<wbr>oe-core:/OE/build/oe-core/<wbr>openembedded-core/meta"<br>
# set /OE/build/oe-core/<wbr>openembedded-core/meta/conf/<wbr>documentation.conf:94<br>
# [doc] "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."<br>
# pre-expansion value:<br>
# "/OE/build/oe-core:/OE/build/<wbr>oe-core:/OE/build/oe-core/<wbr>openembedded-core/meta"<br>
BBPATH="/OE/build/oe-core:/OE/<wbr>build/oe-core:/OE/build/oe-<wbr>core/openembedded-core/meta"<br>
<br>
# $WKS_SEARCH_PATH<br>
# set? /OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>classes/image_types_wic.<wbr>bbclass:10<br>
# "${THISDIR}:${@':'.join('%s/<wbr>wic' % p for p in '${BBPATH}'.split(':'))}:${@':<wbr>'.join('%s/scripts/lib/wic/<wbr>canned-wks' % l for l in '${BBPATH}:${COREBASE}'.split(<wbr>':'))}"<br>
WKS_SEARCH_PATH="/OE/build/oe-<wbr>core/openembedded-core/meta/<wbr>recipes-core/images:/OE/build/<wbr>oe-core/wic:/OE/build/oe-core/<wbr>wic:/OE/build/oe-core/<wbr>openembedded-core/meta/wic:/<wbr>OE/build/oe-core/scripts/lib/<wbr>wic/canned-wks:/OE/build/oe-<wbr>core/scripts/lib/wic/canned-<wbr>wks:/OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>scripts/lib/wic/canned-wks:/<wbr>OE/build/oe-core/openembedded-<wbr>core/scripts/lib/wic/canned-<wbr>wks"<br>
<br>
# $WKS_FULL_PATH<br>
# set /OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>classes/image_types_wic.<wbr>bbclass:11<br>
# "${@wks_search('${WKS_FILES}'.<wbr>split(), '${WKS_SEARCH_PATH}') or ''}"<br>
WKS_FULL_PATH="/OE/build/oe-<wbr>core/openembedded-core/<wbr>scripts/lib/wic/canned-wks/<wbr>directdisk.wks"<br>
<br>
And the same without immediate expansion, but with 'wks="${WKS_FULL_PATH}"' line removed so that it doesn't fail to parse:<br>
# $BBPATH [4 operations]<br>
# set /OE/build/oe-core/conf/<wbr>bblayers.conf:6<br>
# "${TOPDIR}:${TMPDIR}"<br>
# postdot /OE/build/oe-core/<wbr>openembedded-core/meta/conf/<wbr>layer.conf:2<br>
# ":${LAYERDIR}"<br>
# set data_smart.py:911 [expandVarref]<br>
# "${TOPDIR}:${TMPDIR}:/OE/<wbr>build/oe-core/openembedded-<wbr>core/meta"<br>
# set /OE/build/oe-core/<wbr>openembedded-core/meta/conf/<wbr>documentation.conf:94<br>
# [doc] "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."<br>
# pre-expansion value:<br>
# "${TOPDIR}:${TMPDIR}:/OE/<wbr>build/oe-core/openembedded-<wbr>core/meta"<br>
BBPATH="/OE/build/oe-core:/OE/<wbr>build/oe-core-glibc:/OE/build/<wbr>oe-core/openembedded-core/<wbr>meta"<br>
<br>
# $WKS_SEARCH_PATH<br>
# set? /OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>classes/image_types_wic.<wbr>bbclass:10<br>
# "${THISDIR}:${@':'.join('%s/<wbr>wic' % p for p in '${BBPATH}'.split(':'))}:${@':<wbr>'.join('%s/scripts/lib/wic/<wbr>canned-wks' % l for l in '${BBPATH}:${COREBASE}'.split(<wbr>':'))}"<br>
WKS_SEARCH_PATH="/OE/build/oe-<wbr>core/openembedded-core/meta/<wbr>recipes-core/images:/OE/build/<wbr>oe-core/wic:/OE/build/oe-core-<wbr>glibc/wic:/OE/build/oe-core/<wbr>openembedded-core/meta/wic:/<wbr>OE/build/oe-core/scripts/lib/<wbr>wic/canned-wks:/OE/build/oe-<wbr>core-glibc/scripts/lib/wic/<wbr>canned-wks:/OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>scripts/lib/wic/canned-wks:/<wbr>OE/build/oe-core/openembedded-<wbr>core/scripts/lib/wic/canned-<wbr>wks"<br>
<br>
# $WKS_FULL_PATH<br>
# set /OE/build/oe-core/<wbr>openembedded-core/meta/<wbr>classes/image_types_wic.<wbr>bbclass:11<br>
# "${@wks_search('${WKS_FILES}'.<wbr>split(), '${WKS_SEARCH_PATH}') or ''}"<br>
WKS_FULL_PATH="/OE/build/oe-<wbr>core/openembedded-core/<wbr>scripts/lib/wic/canned-wks/<wbr>directdisk.wks"<br>
<br>
Let me know if sharing "bitbake -e core-image-tiny-initramfs" from these 2 tests would be useful for you.<br>
<br>
Regards,<br>
><br>
> On Thu, Feb 09, 2017 at 09:39:30AM +0100, Martin Jansa wrote:<br>
> > Running e.g. bitbake -e busybox with latest oe-core triggers this badly<br>
> > looking exception:<br>
> ><br>
> > Can we add some weak assignment for people who don't care about wic<br>
> > or core-image-tiny-initramfs to continue using oe-core?<br>
> ><br>
> > ERROR: ExpansionError during parsing /OE/oe-core/meta/recipes-core/<wbr>images/<br>
> > <a href="http://core-image-tiny-initramfs.bb" rel="noreferrer" target="_blank">core-image-tiny-initramfs.bb</a><br>
> > Traceback (most recent call last):<br>
> > File "/OE/bitbake/lib/bb/data_<wbr>smart.py", line 412, in<br>
> > DataSmart.expandWithRefs(s='\<wbr>tout="${IMGDEPLOYDIR}/${IMAGE_<wbr>NAME}"\n\twks="${WKS_FULL_<wbr>PATH}"\n\tif<br>
> > [ -z "$wks" ]; then\n\t\tbbfatal "No kickstart files from WKS_FILES were<br>
> > found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES<br>
> > appropriately."\n\tfi\n\n\<wbr>tBUILDDIR="${TOPDIR}" wic create "$wks" --vars<br>
> > "${STAGING_DIR}/${MACHINE}/<wbr>imgdata/" -e "${IMAGE_BASENAME}" -o "$out/"<br>
> > ${WIC_CREATE_EXTRA_ARGS}\n\tmv "$out/$(basename "${wks%.wks}")"*.direct<br>
> > "$out${IMAGE_NAME_SUFFIX}.wic"<wbr>\n\trm -rf "$out/"\n', varname='IMAGE_CMD'):<br>
> > try:<br>
> > > s = __expand_var_regexp__.sub(<wbr>varparse.var_sub, s)<br>
> > try:<br>
> > File "/OE/bitbake/lib/bb/data_<wbr>smart.py", line 111, in<br>
> > VariableParse.var_sub(match=<_<wbr>sre.SRE_Match object; span=(43, 59),<br>
> > match='${WKS_FULL_PATH}'>):<br>
> > else:<br>
> > > var = self.d.getVarFlag(key, "_content")<br>
> > self.references.add(key)<br>
> > File "/OE/bitbake/lib/bb/data_<wbr>smart.py", line 773, in<br>
> > DataSmart.getVarFlag(var='WKS_<wbr>FULL_PATH', flag='_content', expand=True,<br>
> > noweakdefault=False, parsing=False):<br>
> > cachename = var + "[" + flag + "]"<br>
> > > value = self.expand(value, cachename)<br>
> ><br>
> > File "/OE/bitbake/lib/bb/data_<wbr>smart.py", line 436, in<br>
> > DataSmart.expand(s="${@wks_<wbr>search('${WKS_FILES}'.split(),<br>
> > '${WKS_SEARCH_PATH}') or ''}", varname='WKS_FULL_PATH'):<br>
> > def expand(self, s, varname = None):<br>
> > > return self.expandWithRefs(s, varname).value<br>
> ><br>
> > File "/OE/bitbake/lib/bb/data_<wbr>smart.py", line 426, in<br>
> > DataSmart.expandWithRefs(s="${<wbr>@wks_search('directdisk.wks<br>
> > core-image-tiny-initramfs.wks'<wbr>.split(),<br>
> > '/OE/oe-core/meta/recipes-<wbr>core/images:${@':'.join('%s/<wbr>wic' % p for p in<br>
> > '/OE:${TMPDIR}:/OE/oe-core/<wbr>meta'.split(':'))}:${@':'.<wbr>join('%s/scripts/lib/wic/<wbr>canned-wks'<br>
> > % l for l in '/OE:${TMPDIR}:/OE/oe-core/<wbr>meta:/OE/oe-core'.split(':'))}<wbr>') or<br>
> > ''}", varname='WKS_FULL_PATH'):<br>
> > except Exception as exc:<br>
> > > raise ExpansionError(varname, s, exc) from exc<br>
> ><br>
> > bb.data_smart.ExpansionError: Failure expanding variable WKS_FULL_PATH,<br>
> > expression was ${@wks_search('directdisk.wks<br>
> > core-image-tiny-initramfs.wks'<wbr>.split(),<br>
> > '/OE/oe-core/meta/recipes-<wbr>core/images:${@':'.join('%s/<wbr>wic' % p for p in<br>
> > '/OE:${TMPDIR}:/OE/oe-core/<wbr>meta'.split(':'))}:${@':'.<wbr>join('%s/scripts/lib/wic/<wbr>canned-wks'<br>
> > % l for l in '/OE:${TMPDIR}:/OE/oe-core/<wbr>meta:/OE/oe-core'.split(':'))}<wbr>') or<br>
> > ''} which triggered exception SyntaxError: invalid syntax (WKS_FULL_PATH,<br>
> > line 1)<br>
<span class="HOEnZb"><font color="#888888">><br>
> --<br>
> Regards,<br>
> Ed<br>
<br>
--<br>
Martin 'JaMa' Jansa jabber: <a href="mailto:Martin.Jansa@gmail.com">Martin.Jansa@gmail.com</a><br>
</font></span></blockquote></div><br></div>