<div dir="ltr">On 31 January 2018 at 17:02, Joshua Watt <span dir="ltr">&lt;<a href="mailto:jpewhacker@gmail.com" target="_blank">jpewhacker@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">waf requires that the current working directory be the project root (in<br>
this case ${S} when it is invoked. The check to get the waf version was<br>
being executed as a prefunc for do_configure, which meant it was<br>
executed before the current working directory was switched to ${S}, and<br>
thus would fail with some recipes. Fix this by changing to ${S} before<br>
executing &quot;waf --version&quot;<br>
<br>
Signed-off-by: Joshua Watt &lt;<a href="mailto:JPEWhacker@gmail.com">JPEWhacker@gmail.com</a>&gt;<br>
---<br>
 meta/classes/waf.bbclass | 3 ++-<br>
 1 file changed, 2 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass<br>
index c3e744e5de..f72ddb7814 100644<br>
--- a/meta/classes/waf.bbclass<br>
+++ b/meta/classes/waf.bbclass<br>
@@ -29,7 +29,8 @@ python waf_preconfigure() {<br>
     from distutils.version import StrictVersion<br>
     srcsubdir = d.getVar(&#39;S&#39;)<br>
     wafbin = os.path.join(srcsubdir, &#39;waf&#39;)<br>
-    status, result = oe.utils.getstatusoutput(<wbr>wafbin + &quot; --version&quot;)<br>
+    cmd = &quot;cd &#39;%s&#39;; %s --version&quot; % (srcsubdir, wafbin)<br>
+    status, result = oe.utils.getstatusoutput(cmd)<br></blockquote><div><br></div><div>I&#39;m being really picky but getstatusoutput is horrible.  How about:</div><div><br></div><div>subprocess.check_output([&#39;waf&#39;, &#39;--version&#39;, cwd=srcsubdir)</div><div><br></div><div>Less faffing with the shell, and more modern code.</div><div><br></div><div>Ross</div></div></div></div>