[oe] libtalloc failure due to waf
Tim Orling
timothy.t.orling at linux.intel.com
Thu Feb 22 02:48:06 UTC 2018
Still failing for me, which is a show stopper. :(
> On Feb 21, 2018, at 5:36 PM, Denys Dmytriyenko <denis at denix.org> wrote:
>
> Any updates on this one yet? Thanks.
>
> On Fri, Feb 16, 2018 at 02:18:32PM -0800, Tim Orling wrote:
>> Expediting the fix is greatly appreciated.
>>
>> Thank you!
>>
>> --Tim
>>
>> On Fri, Feb 16, 2018 at 1:00 PM, Joshua Watt <jpewhacker at gmail.com> wrote:
>>
>>> On Fri, 2018-02-16 at 21:55 +0100, Martin Jansa wrote:
>>>> Don't you want to update that one to use the new function from utils
>>>> instead of re-introducing get_waf_parallel_make?
>>>
>>> .... yes. I guess I can do that now. It didn't exist when I wrote the
>>> first version of this patch
>>>> On Fri, Feb 16, 2018 at 9:18 PM, Joshua Watt <jpewhacker at gmail.com>
>>>> wrote:
>>>>> On Fri, 2018-02-16 at 21:08 +0100, Martin Jansa wrote:
>>>>>> And now it will fail to parse as well:
>>>>>> http://git.openembedded.org/openembedded-core/commit/?id=ccd1142d
>>>>>> 22b31ed85d8823b1bc9e11ccfd72b61f
>>>>>>
>>>>>> removed get_waf_parallel_make from waf.bbclass, so now all waf-
>>>>>> samba.bbclass users will fail to parse with:
>>>>>
>>>>> http://lists.openembedded.org/pipermail/openembedded-devel/2018-Feb
>>>>> ruary/116701.html will fix that as well.... We probably need to
>>>>> speed along that getting merged.
>>>>> Armin can you help with that?
>>>>>
>>>>> This patch should resolve all of the waf issues that have been
>>>>> discussed here, with exception of the one improvement proposed by
>>>>> Denys. While it should probably be improved, I don't beleive it
>>>>> actually affects any recipes (some please give me an example if I
>>>>> am wrong).
>>>>>
>>>>> Sorry for the churn. Hopefull this will be better in the future
>>>>> since waf and samba-waf are no longer tied together.
>>>>>
>>>>> Joshua Watt
>>>>>> bb.data_smart.ExpansionError: Failure expanding variable
>>>>>> do_compile, expression was
>>>>>> python ./buildtools/bin/waf ${@get_waf_parallel_make(d)}
>>>>>> which triggered exception NameError: name
>>>>>> 'get_waf_parallel_make' is not defined
>>>>>> On Fri, Feb 16, 2018 at 9:45 AM, Martin Jansa <martin.jansa at gmail
>>>>>> .com> wrote:
>>>>>>> Check this thread:
>>>>>>> http://lists.openembedded.org/pipermail/openembedded-commits/20
>>>>>>> 18-January/218460.html
>>>>>>>
>>>>>>> but my patch wasn't merged:
>>>>>>> http://lists.openembedded.org/pipermail/openembedded-core/2018-
>>>>>>> January/146974.html
>>>>>>> only the one from Joshua.
>>>>>>>
>>>>>>>
>>>>>>> The original issue is still in rocko as well, the backported
>>>>>>> waf change doesn't work and causes useless warning.
>>>>>>>
>>>>>>> Either the "waf.bbclass: explicitly pass bindir and libdir if
>>>>>>> supported" should be reverted in rocko or all fixes for this
>>>>>>> should be backported to rocko once they are all in oe-core and
>>>>>>> meta-oe master.
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> On Fri, Feb 16, 2018 at 2:03 AM, Denys Dmytriyenko <denis at denix
>>>>>>> .org> wrote:
>>>>>>>> On Thu, Feb 15, 2018 at 06:37:11PM -0600, Joshua Watt wrote:
>>>>>>>>
>>>>>>>>> On Feb 15, 2018 17:42, "Denys Dmytriyenko" <denis at denix.org
>>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>> On Thu, Feb 15, 2018 at 03:30:06PM -0800, Khem Raj wrote:
>>>>>>>>
>>>>>>>>>> On Thu, Feb 15, 2018 at 3:24 PM, Denys Dmytriyenko <denis
>>>>>>>> @denix.org>
>>>>>>>>
>>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>>> On Thu, Feb 15, 2018 at 11:20:49PM +0000, Tim Orling
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>>>> Then why did ‘sudo dnf install waf’ get me past the
>>>>>>>> error above? And
>>>>>>>>
>>>>>>>>> why
>>>>>>>>
>>>>>>>>>>>> does Fedora have a package for it?
>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>> https://src.fedoraproject.org/rpms/waf
>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>> Regardless, something broke.
>>>>>>>>
>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>> I thought so too. As waf.bbclass from oe-core looks for
>>>>>>>> waf binary in
>>>>>>>>
>>>>>>>>> the root
>>>>>>>>
>>>>>>>>>>> of the source package, I looked inside libtalloc 2.1.9
>>>>>>>> and 2.1.10 and
>>>>>>>>
>>>>>>>>> neither
>>>>>>>>
>>>>>>>>>>> of them have any "waf" files at the root. How was it
>>>>>>>> working before?
>>>>>>>>
>>>>>>>>> What
>>>>>>>>
>>>>>>>>>>> broke?
>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>>> its using waf-samba.bbclass, there is a patch floating
>>>>>>>> for that
>>>>>>>>
>>>>>>>>>> https://patchwork.openembedded.org/patch/148046/
>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>> So, it will fix libtalloc, but some other packages that
>>>>>>>> still use
>>>>>>>>
>>>>>>>>> waf.bbclass
>>>>>>>>
>>>>>>>>> will keep on failing with an exception?
>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>> They shouldn't. I tested all the ones I could find. The way
>>>>>>>> waf-samba uses
>>>>>>>>
>>>>>>>>> waf is more of the exception than the rule.... Most
>>>>>>>> projects will follow
>>>>>>>>
>>>>>>>>> the waf.bbclass pattern of a wscript and waf in $S, but we
>>>>>>>> can probably
>>>>>>>>
>>>>>>>>> parameterize it if necessary.
>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>> Do you know of a specific recipe that fails?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> No, but as Andre said here earlier, it should be more
>>>>>>>> forgiving when ${S}/waf
>>>>>>>>
>>>>>>>> is not available or at least give a proper error message
>>>>>>>> instead of dumping a
>>>>>>>>
>>>>>>>> cryptic exception stack...
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> In other words, before this waf.bbclass change in oe-core it
>>>>>>>> was handling such
>>>>>>>>
>>>>>>>> situation just fine and there was a warning "Unable to
>>>>>>>> execute waf --version,
>>>>>>>>
>>>>>>>> exit code 127". Now it never reaches that code and just
>>>>>>>> throws an exception.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>>>> On Thu, Feb 15, 2018 at 3:16 PM Joshua Watt <jpewhacke
>>>>>>>> r at gmail.com>
>>>>>>>>
>>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>> On Thu, 2018-02-15 at 23:10 +0000, Tim Orling wrote:
>>>>>>>>
>>>>>>>>>>>>>> Seeing the same and trying to figure it out. Also,
>>>>>>>> seems there is
>>>>>>>>
>>>>>>>>> no
>>>>>>>>
>>>>>>>>>>>>>> recipe
>>>>>>>>
>>>>>>>>>>>>>> for waf-native, so it becomes a new required host
>>>>>>>> tool.
>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>> There is no "waf" tool, so a "waf-native" tool
>>>>>>>> doesn't make sense...
>>>>>>>>
>>>>>>>>>>>>> it's not how waf works. Each project has their own
>>>>>>>> copy of the waf
>>>>>>>>
>>>>>>>>>>>>> program, it's not something the host has to provide.
>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>> On Thu, Feb 15, 2018 at 2:57 PM Denys Dmytriyenko
>>>>>>>> <denis at denix.org>
>>>>>>>>
>>>>>>>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>> Hi,
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>> I'm getting below stack dump building libtalloc
>>>>>>>> 2.1.10 in master.
>>>>>>>>
>>>>>>>>>>>>>>> Works
>>>>>>>>
>>>>>>>>>>>>>>> fine in
>>>>>>>>
>>>>>>>>>>>>>>> rocko with libtalloc 2.1.9. I need it for cifs-
>>>>>>>> utils. I'm not
>>>>>>>>
>>>>>>>>>>>>>>> familiar with
>>>>>>>>
>>>>>>>>>>>>>>> waf, any help? Thanks.
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>> ERROR: libtalloc-2.1.10-r0 do_configure: Error
>>>>>>>> executing a python
>>>>>>>>
>>>>>>>>>>>>>>> function
>>>>>>>>
>>>>>>>>>>>>>>> in exec_python_func() autogenerated:
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>> The stack trace of python calls that resulted in
>>>>>>>> this
>>>>>>>>
>>>>>>>>>>>>>>> exception/failure
>>>>>>>>
>>>>>>>>>>>>>>> was:
>>>>>>>>
>>>>>>>>>>>>>>> File: 'exec_python_func() autogenerated',
>>>>>>>> lineno: 2, function:
>>>>>>>>
>>>>>>>>>>>>>>> <module>
>>>>>>>>
>>>>>>>>>>>>>>> 0001:
>>>>>>>>
>>>>>>>>>>>>>>> *** 0002:waf_preconfigure(d)
>>>>>>>>
>>>>>>>>>>>>>>> 0003:
>>>>>>>>
>>>>>>>>>>>>>>> File: '/OE/master/sources/oe-
>>>>>>>> core/meta/classes/waf.bbclass',
>>>>>>>>
>>>>>>>>>>>>>>> lineno: 34,
>>>>>>>>
>>>>>>>>>>>>>>> function: waf_preconfigure
>>>>>>>>
>>>>>>>>>>>>>>> 0030: from distutils.version import
>>>>>>>> StrictVersion
>>>>>>>>
>>>>>>>>>>>>>>> 0031: subsrcdir = d.getVar('S')
>>>>>>>>
>>>>>>>>>>>>>>> 0032: wafbin = os.path.join(subsrcdir,
>>>>>>>> 'waf')
>>>>>>>>
>>>>>>>>>>>>>>> 0033: try:
>>>>>>>>
>>>>>>>>>>>>>>> *** 0034: result =
>>>>>>>> subprocess.check_output([wafbin, '
>>>>>>>>
>>>>>>>>>>>>>>> --version'],
>>>>>>>>
>>>>>>>>>>>>>>> cwd=subsrcdir, stderr=subprocess.STDOUT)
>>>>>>>>
>>>>>>>>>>>>>>> 0035: version = result.decode('utf-
>>>>>>>> 8').split()[1]
>>>>>>>>
>>>>>>>>>>>>>>> 0036: if StrictVersion(version) >=
>>>>>>>>
>>>>>>>>>>>>>>> StrictVersion("1.8.7"):
>>>>>>>>
>>>>>>>>>>>>>>> 0037: d.setVar("WAF_EXTRA_CONF",
>>>>>>>> "
>>>>>>>>
>>>>>>>>>>>>>>> --bindir=${bindir}
>>>>>>>>
>>>>>>>>>>>>>>> --libdir=${libdir}")
>>>>>>>>
>>>>>>>>>>>>>>> 0038: except
>>>>>>>> subprocess.CalledProcessError as e:
>>>>>>>>
>>>>>>>>>>>>>>> File: '/usr/lib/python3.5/subprocess.py',
>>>>>>>> lineno: 626, function:
>>>>>>>>
>>>>>>>>>>>>>>> check_output
>>>>>>>>
>>>>>>>>>>>>>>> 0622: # empty string. That is
>>>>>>>> maintained here for
>>>>>>>>
>>>>>>>>>>>>>>> backwards
>>>>>>>>
>>>>>>>>>>>>>>> compatibility.
>>>>>>>>
>>>>>>>>>>>>>>> 0623: kwargs['input'] = '' if
>>>>>>>>
>>>>>>>>>>>>>>> kwargs.get('universal_newlines',
>>>>>>>>
>>>>>>>>>>>>>>> False) else b''
>>>>>>>>
>>>>>>>>>>>>>>> 0624:
>>>>>>>>
>>>>>>>>>>>>>>> 0625: return run(*popenargs,
>>>>>>>> stdout=PIPE,
>>>>>>>>
>>>>>>>>> timeout=timeout,
>>>>>>>>
>>>>>>>>>>>>>>> check=True,
>>>>>>>>
>>>>>>>>>>>>>>> *** 0626: **kwargs).stdout
>>>>>>>>
>>>>>>>>>>>>>>> 0627:
>>>>>>>>
>>>>>>>>>>>>>>> 0628:
>>>>>>>>
>>>>>>>>>>>>>>> 0629:class CompletedProcess(object):
>>>>>>>>
>>>>>>>>>>>>>>> 0630: """A process that has finished
>>>>>>>> running.
>>>>>>>>
>>>>>>>>>>>>>>> File: '/usr/lib/python3.5/subprocess.py',
>>>>>>>> lineno: 693, function:
>>>>>>>>
>>>>>>>>>>>>>>> run
>>>>>>>>
>>>>>>>>>>>>>>> 0689: if 'stdin' in kwargs:
>>>>>>>>
>>>>>>>>>>>>>>> 0690: raise ValueError('stdin
>>>>>>>> and input arguments
>>>>>>>>
>>>>>>>>>>>>>>> may not
>>>>>>>>
>>>>>>>>>>>>>>> both be used.')
>>>>>>>>
>>>>>>>>>>>>>>> 0691: kwargs['stdin'] = PIPE
>>>>>>>>
>>>>>>>>>>>>>>> 0692:
>>>>>>>>
>>>>>>>>>>>>>>> *** 0693: with Popen(*popenargs, **kwargs)
>>>>>>>> as process:
>>>>>>>>
>>>>>>>>>>>>>>> 0694: try:
>>>>>>>>
>>>>>>>>>>>>>>> 0695: stdout, stderr =
>>>>>>>> process.communicate(input,
>>>>>>>>
>>>>>>>>>>>>>>> timeout=timeout)
>>>>>>>>
>>>>>>>>>>>>>>> 0696: except TimeoutExpired:
>>>>>>>>
>>>>>>>>>>>>>>> 0697: process.kill()
>>>>>>>>
>>>>>>>>>>>>>>> File: '/usr/lib/python3.5/subprocess.py',
>>>>>>>> lineno: 947, function:
>>>>>>>>
>>>>>>>>>>>>>>> __init__
>>>>>>>>
>>>>>>>>>>>>>>> 0943:
>>>>>>>> startupinfo,
>>>>>>>>
>>>>>>>>>>>>>>> creationflags,
>>>>>>>>
>>>>>>>>>>>>>>> shell,
>>>>>>>>
>>>>>>>>>>>>>>> 0944:
>>>>>>>> p2cread, p2cwrite,
>>>>>>>>
>>>>>>>>>>>>>>> 0945:
>>>>>>>> c2pread, c2pwrite,
>>>>>>>>
>>>>>>>>>>>>>>> 0946:
>>>>>>>> errread, errwrite,
>>>>>>>>
>>>>>>>>>>>>>>> *** 0947:
>>>>>>>> restore_signals,
>>>>>>>>
>>>>>>>>>>>>>>> start_new_session)
>>>>>>>>
>>>>>>>>>>>>>>> 0948: except:
>>>>>>>>
>>>>>>>>>>>>>>> 0949: # Cleanup if the child
>>>>>>>> failed starting.
>>>>>>>>
>>>>>>>>>>>>>>> 0950: for f in filter(None,
>>>>>>>> (self.stdin,
>>>>>>>>
>>>>>>>>>>>>>>> self.stdout,
>>>>>>>>
>>>>>>>>>>>>>>> self.stderr)):
>>>>>>>>
>>>>>>>>>>>>>>> 0951: try:
>>>>>>>>
>>>>>>>>>>>>>>> File: '/usr/lib/python3.5/subprocess.py',
>>>>>>>> lineno: 1551, function:
>>>>>>>>
>>>>>>>>>>>>>>> _execute_child
>>>>>>>>
>>>>>>>>>>>>>>> 1547: # The
>>>>>>>> error must be
>>>>>>>>
>>>>>>>>> from
>>>>>>>>
>>>>>>>>>>>>>>> chdir(cwd).
>>>>>>>>
>>>>>>>>>>>>>>> 1548:
>>>>>>>> err_msg += ': ' +
>>>>>>>>
>>>>>>>>>>>>>>> repr(cwd)
>>>>>>>>
>>>>>>>>>>>>>>> 1549: else:
>>>>>>>>
>>>>>>>>>>>>>>> 1550:
>>>>>>>> err_msg += ': ' +
>>>>>>>>
>>>>>>>>>>>>>>> repr(orig_executable)
>>>>>>>>
>>>>>>>>>>>>>>> *** 1551: raise
>>>>>>>> child_exception_type(errno_
>>>>>>>>
>>>>>>>>> num,
>>>>>>>>
>>>>>>>>>>>>>>> err_msg)
>>>>>>>>
>>>>>>>>>>>>>>> 1552: raise
>>>>>>>> child_exception_type(err_msg)
>>>>>>>>
>>>>>>>>>>>>>>> 1553:
>>>>>>>>
>>>>>>>>>>>>>>> 1554:
>>>>>>>>
>>>>>>>>>>>>>>> 1555: def _handle_exitstatus(self,
>>>>>>>> sts,
>>>>>>>>
>>>>>>>>>>>>>>> _WIFSIGNALED=os.WIFSIGNALED,
>>>>>>>>
>>>>>>>>>>>>>>> Exception: FileNotFoundError: [Errno 2] No such
>>>>>>>> file or
>>>>>>>>
>>>>>>>>> directory:
>>>>>>>>
>>>>>>>>>>>>>>> '/OE/master/build/tmp-glibc/work/armv7ahf-neon-
>>>>>>>> oe-linux-
>>>>>>>>
>>>>>>>>>>>>>>> gnueabi/libtalloc/2.1.10-r0/talloc-2.1.10/waf'
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>> ERROR: libtalloc-2.1.10-r0 do_configure:
>>>>>>>> Function failed:
>>>>>>>>
>>>>>>>>>>>>>>> waf_preconfigure
>>>>>>>>
>>>>>>>>>>>>>>> ERROR: Logfile of failure stored in:
>>>>>>>>
>>>>>>>>>>>>>>> /OE/master/build/tmp-glibc/work/armv7ahf-neon-
>>>>>>>> oe-linux-
>>>>>>>>
>>>>>>>>>>>>>>> gnueabi/libtalloc/2.1.10-
>>>>>>>> r0/temp/log.do_configure.52699
>>>>>>>>
>>>>>>>>>>>>>>> ERROR: Task
>>>>>>>>
>>>>>>>>>>>>>>> (/OE/master/sources/meta-openembedded/meta-
>>>>>>>> networking/recipes-
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> support/libtalloc/libtalloc_2.1.10.bb:do_configure)
>>>>>>>>
>>>>>>>>>>>>>>> failed with exit code '1'
>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>
>>>>>>>>>>>>>>> Openembedded-devel mailing list
>>>>>>>>
>>>>>>>>>>>>>>> Openembedded-devel at lists.openembedded.org
>>>>>>>>
>>>>>>>>>>>>>>> http://lists.openembedded.org/mailman/listinfo/o
>>>>>>>> penembedded-devel
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>
>>>>>>>>>>> Openembedded-devel mailing list
>>>>>>>>
>>>>>>>>>>> Openembedded-devel at lists.openembedded.org
>>>>>>>>
>>>>>>>>>>> http://lists.openembedded.org/mailman/listinfo/openembe
>>>>>>>> dded-devel
>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>> --
>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>
>>>>>>>>> Openembedded-devel mailing list
>>>>>>>>
>>>>>>>>> Openembedded-devel at lists.openembedded.org
>>>>>>>>
>>>>>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded
>>>>>>>> -devel
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>>
>>>>>>>> Openembedded-devel mailing list
>>>>>>>>
>>>>>>>> Openembedded-devel at lists.openembedded.org
>>>>>>>>
>>>>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-d
>>>>>>>> evel
>>>>>>>>
>>> --
>>> _______________________________________________
>>> Openembedded-devel mailing list
>>> Openembedded-devel at lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
More information about the Openembedded-devel
mailing list