<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi bitbake developers,</div><div>I&#39;m working in a Rocko based bsp.  I&#39;ve used the patchdir construct in SRC_URI to apply patches in the tree where the build is expecting them.  When I set PV=&quot;1.0+git${SRCPV}&quot;, I get the following error and traceback if any of the patchdir directives are present in SRC_URI:<br></div><div><br></div><div>ERROR: ExpansionError during parsing /media/ckelloug/ExtraDrive1/edm_ycoto/sources/meta-doppler/recipes-doppler/doppler/<a href="http://doppler_git.bb">doppler_git.bb</a></div><div><br></div><div>Traceback (most recent call last):<br>  File &quot;/media/ckelloug/ExtraDrive1/edm_ycoto/sources/poky/bitbake/lib/bb/data_smart.py&quot;, line 412, in DataSmart.expandWithRefs(s=&#39;${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}&#39;, varname=&#39;WORKDIR&#39;):<br>                 try:<br>    &gt;                s = __expand_var_regexp__.sub(varparse.var_sub, s)<br>                     try:<br>  File &quot;/media/ckelloug/ExtraDrive1/edm_ycoto/sources/poky/bitbake/lib/bb/data_smart.py&quot;, line 111, in VariableParse.var_sub(match=&lt;_sre.SRE_Match object; span=(57, 62), match=&#39;${PV}&#39;&gt;):<br>                 else:<br>    &gt;                var = self.d.getVarFlag(key, &quot;_content&quot;)<br>                 self.references.add(key)<br>  File &quot;/media/ckelloug/ExtraDrive1/edm_ycoto/sources/poky/bitbake/lib/bb/data_smart.py&quot;, line 794, in DataSmart.getVarFlag(var=&#39;PV&#39;, flag=&#39;_content&#39;, expand=True, noweakdefault=False, parsing=False):<br>                     cachename = var + &quot;[&quot; + flag + &quot;]&quot;<br>    &gt;            value = self.expand(value, cachename)<br>     <br>  File &quot;/media/ckelloug/ExtraDrive1/edm_ycoto/sources/poky/bitbake/lib/bb/data_smart.py&quot;, line 436, in DataSmart.expand(s=&#39;1.0+git${SRCPV}&#39;, varname=&#39;PV&#39;):<br>         def expand(self, s, varname = None):<br>    &gt;        return self.expandWithRefs(s, varname).value<br>     <br>  File &quot;/media/ckelloug/ExtraDrive1/edm_ycoto/sources/poky/bitbake/lib/bb/data_smart.py&quot;, line 426, in DataSmart.expandWithRefs(s=&#39;1.0+git${SRCPV}&#39;, varname=&#39;PV&#39;):<br>                 except Exception as exc:<br>    &gt;                raise ExpansionError(varname, s, exc) from exc<br>     <br>bb.data_smart.ExpansionError: Failure expanding variable PV, expression was 1.0+git${SRCPV} which triggered exception RecursionError: maximum recursion depth exceeded while calling a Python object<br><br></div><div><br></div><div><br></div><div>The error can be duplicated by doing bitbake -p doppler on the following recipe as it occurs at parse time.  I&#39;ve redacted my username and password from the recipe and verified I still get the same parse error.<br></div><div><br></div><div><br></div><div>SUMMARY = &quot;doppler&quot;<br>SECTION = &quot;doppler&quot;<br>LICENSE = &quot;MIT&quot;<br>LIC_FILES_CHKSUM = &quot;file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302&quot;<br><br>SRC_URI = &quot;git://<a href="http://github.com/pa-innovation/doppler.git;protocol=https">github.com/pa-innovation/doppler.git;protocol=https</a>; \<br>           file://DopplerSettings.json \<br>           file://AlexaClientSDKConfig.json \<br>           file://doppler.conf \<br>           file://dop.sh \<br>           file://0001-Commented-out-check-for-DopplerSettings.json.patch;patchdir=${WORKDIR}/git \<br>           file://0002-Added-opt-doppler-include-and-link-directories-to-CM.patch;patchdir=${WORKDIR}/git \<br>           file://0003-Added-opt-doppler-lib-to-all-amazon-find_library-sta.patch;patchdir=${WORKDIR}/git \<br>           file://0004-Set-find_library_path-path-for-ggk-lib-to-opt-dopple.patch;patchdir=${WORKDIR}/git \<br>           file://0005-set-path-for-PAI_LOCAL_LIB_INCLUDE_DIR.patch;patchdir=${WORKDIR}/git \<br>           file://0006-set-THREADS_PTHREAD_ARG-to-avoid-test-compile.patch;patchdir=${WORKDIR}/git \<br>           file://0007-Changed-Gobbledegook-to-not-have-embedded-relative-p.patch;patchdir=${WORKDIR}/git \<br>           file://0001-Changed-sensory-path-to-6.6.0.patch; \<br>           &quot;<br><br>#SRCREV = &quot;e68d0527aa91a9bb1d43a0e38960995c3a53a54f&quot;<br><br>SRCREV=&quot;${AUTOREV}&quot;<br><br>#python() {<br>#     bb.warn(&quot;SRCPV=&quot;, d.getVar(&#39;SRCPV&#39;,True))<br>#}<br><br>PV = &quot;1.0+git${SRCPV}&quot;<br><br>#python() {<br>#     bb.warn(&quot;PV=&quot;, d.getVar(&#39;PV&#39;,True))<br>#}<br><br><br><br>S = &quot;${WORKDIR}/git/src&quot;<br>B = &quot;${WORKDIR}/git/build&quot;<br><br>SYSROOT_DIRS += &quot;/opt&quot;<br><br>DEPENDS = &quot;glibc boost sqlite3 gcc-runtime libgcc libpai glib-2.0 gstreamer1.0 avs-device-sdk sensory alsa-lib ggk&quot;<br><br><br>RDEPENDS_${PN} = &quot; avs-device-sdk networkmanager&quot;<br><br>inherit cmake<br><br>#EXTRA_OECMAKE = &quot; \<br>#                  -DCMAKE_SKIP_BUILD_RPATH=TRUE \<br>#&quot;<br><br>EXTRA_OECMAKE = &quot; \<br>                  -DCMAKE_INSTALL_RPATH=/opt/doppler/lib \<br>                  -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \<br>&quot;<br><br>do_install() {<br><br>install -d ${D}/opt/doppler/bin<br>install doppler ${D}/opt/doppler/bin<br>install logger-conf.conf ${D}/opt/doppler/bin<br>install bright-logger.conf ${D}/opt/doppler/bin<br>install scanWifi.sh ${D}/opt/doppler/bin<br>install connectWifi.sh ${D}/opt/doppler/bin<br>install disconnectWifi.sh ${D}/opt/doppler/bin<br>install wifiStatus.sh ${D}/opt/doppler/bin<br>install spot-alexa-rpi-31000.snsr ${D}/opt/doppler/bin<br>install ${WORKDIR}/DopplerSettings.json ${D}/opt/doppler/bin<br>install ${WORKDIR}/AlexaClientSDKConfig.json ${D}/opt/doppler/bin<br>install ${WORKDIR}/dop.sh ${D}/opt/doppler/bin<br>install -d ${D}/etc/dbus-1/system.d/<br>install ${WORKDIR}/doppler.conf ${D}/etc/dbus-1/system.d/doppler.conf<br>}<br><br>FILES_${PN} =  &quot;/opt/doppler/bin&quot;<br>FILES_${PN} += &quot; /etc/dbus-1/system.d/doppler.conf &quot;</div><div><br></div><div><br></div><div><br></div></div></div></div></div></div>