[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openembedded-core
Subject:    Re: [OE-core] [PATCH] waf.bbclass: cd to ${S} before checking version
From:       "Burton, Ross" <ross.burton () intel ! com>
Date:       2018-01-31 17:18:09
Message-ID: CAJTo0LZzB1AobM97HtfsDxZUQf0o+oQekNBGTVsuWxkMp98tpw () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On 31 January 2018 at 17:02, Joshua Watt <jpewhacker@gmail.com> wrote:

> waf requires that the current working directory be the project root (in
> this case ${S} when it is invoked. The check to get the waf version was
> being executed as a prefunc for do_configure, which meant it was
> executed before the current working directory was switched to ${S}, and
> thus would fail with some recipes. Fix this by changing to ${S} before
> executing "waf --version"
>
> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
> ---
>  meta/classes/waf.bbclass | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass
> index c3e744e5de..f72ddb7814 100644
> --- a/meta/classes/waf.bbclass
> +++ b/meta/classes/waf.bbclass
> @@ -29,7 +29,8 @@ python waf_preconfigure() {
>      from distutils.version import StrictVersion
>      srcsubdir = d.getVar('S')
>      wafbin = os.path.join(srcsubdir, 'waf')
> -    status, result = oe.utils.getstatusoutput(wafbin + " --version")
> +    cmd = "cd '%s'; %s --version" % (srcsubdir, wafbin)
> +    status, result = oe.utils.getstatusoutput(cmd)
>

I'm being really picky but getstatusoutput is horrible.  How about:

subprocess.check_output(['waf', '--version', cwd=srcsubdir)

Less faffing with the shell, and more modern code.

Ross

[Attachment #5 (text/html)]

<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>



-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic