[OE-core] [PATCH] waf.bbclass: check that waf exists before trying to execute it

Martin Jansa martin.jansa at gmail.com
Tue Jan 30 23:38:23 UTC 2018


Thanks Andreas,

jack is the only one which inherits waf directly not through waf-samba.

More surprisingly it also has ${S}/waf it seems:
https://github.com/jackaudio/jack2/blob/c1647819eed6d11f94b21981d9c869629299f357/waf

So the WARNING: shown for jack probably had different reason than the rest
of them and that is:

jack/1.9.12-r0 $ jack/1.9.12-r0/git/waf --version
Error: run waf-light from a folder containing waflib

it doesn't like running waf from outside ${S} and waf_preconfigure is
executed from ${TOPDIR} before do_configure switches to ${S}

I don't know how common this situation is, if all waf scripts are like
that, this one (after "cd ../jack/1.9.12-r0/git") says:
waf 1.8.17 (cd7579a727d1b390bf9cbf111c1b20e811370bc0)

so I'll leave that to original author to figure it out, I don't use waf
anywhere, so I cannot properly test the use case he was trying to fix.

Regards,



On Tue, Jan 30, 2018 at 11:41 PM, Andreas Müller <schnitzeltony at gmail.com>
wrote:

>
>
> On Tuesday, January 30, 2018, Martin Jansa <martin.jansa at gmail.com> wrote:
>
>> +Andreas who added waf inherit in jack in:
>> commit 0f8f1973e229a0799098bc2334416fec8c608b50
>> Author: Andreas Müller <schnitzeltony at googlemail.com>
>> Date:   Sat Oct 8 12:03:32 2016 +0200
>>
>>     jack: swap to jack2
>>
> As far as I can see is jack2 configured with waf. Don't remember why I
> chose waf-samba. Because I am on business trip I cannot take care before
> next week.
>
> Andreas
>
>>
>> +Bian who added waf samba in:
>> commit 962e346df99696a10657a2ea7b2166dfaf290289
>> Author: Bian Naimeng <biannm at cn.fujitsu.com>
>> Date:   Tue Jun 16 14:18:25 2015 +0900
>>
>>     waf-samba: add new class
>>
>>     waf-samba is a build system used by samba related software
>>
>> +Joe and Joe and who maintains samba and related recipes + meta-networking
>>
>>
>> On Tue, Jan 30, 2018 at 1:03 PM, Burton, Ross <ross.burton at intel.com>
>> wrote:
>>
>>> Why would they do that?  Shouldn't it be a fatal bug if waf isn't found?
>>>
>>> On 30 January 2018 at 08:30, Martin Jansa <martin.jansa at gmail.com>
>>> wrote:
>>>
>>>> * there are some recipes like jack and other which inherit waf-samba
>>>> which inherits waf, but they don't use waf for configure, strange isn't
>>>> it?
>>>>
>>>> * fixes:
>>>> WARNING: libldb-1.1.29-r0 do_configure: Unable to execute waf
>>>> --version, exit code 127. Assuming waf version without bindir/libdir
>>>> support.
>>>> WARNING: samba-4.6.7-r0 do_configure: Unable to execute waf --version,
>>>> exit code 127. Assuming waf version without bindir/libdir support.
>>>> WARNING: libtalloc-2.1.9-r0 do_configure: Unable to execute waf
>>>> --version, exit code 127. Assuming waf version without bindir/libdir
>>>> support.
>>>> WARNING: jack-1.9.10+gitAUTOINC+2d1d323505-r0 do_configure: Unable to
>>>> execute waf --version, exit code 1. Assuming waf version without
>>>> bindir/libdir support.
>>>> WARNING: libtevent-0.9.31-r0 do_configure: Unable to execute waf
>>>> --version, exit code 127. Assuming waf version without bindir/libdir
>>>> support.
>>>> WARNING: libtdb-1.3.14-r0 do_configure: Unable to execute waf
>>>> --version, exit code 127. Assuming waf version without bindir/libdir
>>>> support.
>>>>
>>>> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
>>>> ---
>>>>  meta/classes/waf.bbclass | 3 +++
>>>>  1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass
>>>> index c3e744e5de..eec4d9496d 100644
>>>> --- a/meta/classes/waf.bbclass
>>>> +++ b/meta/classes/waf.bbclass
>>>> @@ -29,6 +29,9 @@ python waf_preconfigure() {
>>>>      from distutils.version import StrictVersion
>>>>      srcsubdir = d.getVar('S')
>>>>      wafbin = os.path.join(srcsubdir, 'waf')
>>>> +    if not os.path.isfile(wafbin):
>>>> +        bb.note("%s doesn't exist, cannot check whether it supports
>>>> --bindir/--libdir" % wafbin)
>>>> +        return
>>>>      status, result = oe.utils.getstatusoutput(wafbin + " --version")
>>>>      if status != 0:
>>>>          bb.warn("Unable to execute waf --version, exit code %d.
>>>> Assuming waf version without bindir/libdir support." % status)
>>>> --
>>>> 2.15.1
>>>>
>>>> --
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core at lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>>>
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180131/9ef9b63a/attachment-0002.html>


More information about the Openembedded-core mailing list