[meta-xilinx] meta-xilinx-tools shell function parsed as python function

Monaghan, Michael L. (GSFC-5870) michael.l.monaghan at nasa.gov
Wed Apr 17 10:46:32 PDT 2019


Luca,

Jean-Francois's patch did the trick. Thanks for the quick response!

Best,
Michael Monaghan

On 4/17/19, 3:09 AM, "Luca Ceresoli" <luca at lucaceresoli.net> wrote:

    Hi Michael,
    
    On 16/04/19 21:57, Monaghan, Michael L. (GSFC-5870) wrote:
    > Hello all,
    > 
    >  
    > 
    > Thank you in advance for your time. I’m new to the Yocto Project and
    > OpenEmbedded.
    > 
    >  
    > 
    > I am trying to add the meta-xilinx-tools layer to a working Yocto/OE
    > build for the zcu102 board, but bitbake subsequently fails to parse
    > meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb. Here
    > are some snippets from the console.
    > 
    >  
    > 
    > WARNING:
    > /yocto/projects/yocto-zcu102/build/../meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:
    > Error during finalise of
    > /yocto/projects/yocto-zcu102/build/../meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb
    > 
    > …
    > 
    > ERROR: Unable to parse
    > /yocto/projects/yocto-zcu102/build/../meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:20:23
    > 
    > Traceback (most recent call last):
    > 
    > …
    > 
    > File "/yocto/projects/yocto-zcu102/bitbake/lib/bb/codeparser.py", line
    > 327, in PythonParser.parse_python(node="\n\t[ -e
    > ${DTS_FILES_PATH}/system.dts ] && rm ${DTS_FILES_PATH}/system.dts\n   
    > bb.build.exec_func('devicetree_do_compile', d)\n", lineno=1,
    > filename='autogenerated'):
    > 
    >              code = compile(check_indent(str(node)), filename, "exec",
    > 
    >     >                       ast.PyCF_ONLY_AST)
    > 
    >                
    > 
    >   File "autogenerated", line 2
    > 
    >     [ -e ${DTS_FILES_PATH}/system.dts ] && rm ${DTS_FILES_PATH}/system.dts
    > 
    >          ^
    > 
    > SyntaxError: invalid syntax
    > 
    >                
    > 
    >                
    > 
    > Summary: There were 10 WARNING messages shown.
    > 
    > Summary: There was 1 ERROR message shown, returning a non-zero exit code.
    > 
    >  
    > 
    > I found the offending function at
    > meta-xilinx-tools/recipes-bsp/device-tree/device-tree.bbappend:71
    > 
    >  
    > 
    > do_compile_prepend() {
    > 
    >                                 [ -e ${DTS_FILES_PATH}/system.dts ] &&
    > rm ${DTS_FILES_PATH}/system.dts
    > 
    > }
    > 
    >  
    > 
    > And it appears to ultimately override this python function at
    > openembedded-core/meta/classes/devicetree.bbclass:119
    > 
    >  
    > 
    > python devicetree_do_compile() {
    > 
    >   …
    > 
    > }
    > 
    >  
    > 
    > devicetree.bbappend:do_compile_prepend() is clearly a shell script, but
    > the “SyntaxError: invalid syntax” message indicates that *it is being
    > parsed as a python function!* It looks like this could be a problem with
    > bitbake or yocto/oe but I thought I would reach out to the community
    > here first. Has anyone here encountered this?
    
    append and prepend functions must use the same language as the function
    being appended/prepended. Either all python or all shell, no mixing
    allowed. That's because bitbake simply concatenates the prepends, base
    functions and appends and then parses the result as a whole.
    
    For the problem you're facing a patch has been sent by Jean-Francois,
    check it out:
    
    https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.yoctoproject.org_pipermail_meta-2Dxilinx_2019-2DJanuary_004205.html&d=DwIDaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=AhQbwKgOZgBGATebE6Xpbon2PhUnmApX6zWRXj7OJp0&m=wK2Kn5G08_4rGMJ2SiJrk-pnV0MujJLuktOXt79uF28&s=VRX9jtvBEvfb5QV1Khv8rBjUW7Juw0Lm0KCrqX1VXbM&e=
    
    -- 
    Luca
    



More information about the meta-xilinx mailing list