[OE-core] [PATCH 00/29] Add gobject introspection support to oe-core

Martin Jansa martin.jansa at gmail.com
Thu Mar 10 16:56:31 UTC 2016


On Mon, Nov 09, 2015 at 04:50:22PM +0200, Alexander Kanavin wrote:
> 1. Introduction
> 
> This patchset adds support for gobject introspection to oe-core. 
> Gir files go to -dev packages, typelib files go to main packages 
> (they are packaged together with libraries that are 
> introspected).
> 
> The work is based on a meta-gir layer, which was used as a proof of
> concept; overall approach is same and some implementation ideas were 
> used, but this implementation is otherwise different, and hopefully 
> simpler and cleaner.

Any idea what could be cause for these failures when testing
master-next?

NOTE: Your conf/bblayers.conf has been automatically updated.
Parsing recipes...NOTE: Building Ne10 for armv7
NOTE: glibc doesn't build cleanly with -Os, adding -Wno-error to SELECTED_OPTIMIZATION
NOTE: glibc-initial doesn't build cleanly with -Os, adding -Wno-error to SELECTED_OPTIMIZATION
WARNING: Exception during build_dependencies for do_configure
WARNING: Error during finalise of TOPDIR/oe-core/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb
ERROR: ExpansionError during parsing TOPDIR/oe-core/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb: Failure expanding variable do_configure, expression was         # Write out a qemu wrapper that will be given to gi-scanner so that it
        # can run target helper binaries through that.
        qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST//usr/lib','$STAGING_DIR_HOST//lib'])}"
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-qemuwrapper << EOF
#!/bin/sh
$qemu_binary "\$@"
if [ \$? -ne 0 ]; then
    echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
    echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
    exit 1
fi
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-qemuwrapper

        # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
        # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
        # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
        # from the target sysroot.
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-wrapper << EOF
#!/bin/sh
# This prevents g-ir-scanner from writing cache data to $HOME
export GI_SCANNER_DISABLE_CACHE=1

g-ir-scanner --use-binary-wrapper=SYSROOTS/MACHINE/usr/bin/g-ir-scanner-qemuwrapper --use-ldd-wrapper=SYSROOTS/MACHINE/usr/bin/g-ir-scanner-lddwrapper --add-include-path=SYSROOTS/MACHINE/usr/share/gir-1.0 "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-wrapper

        # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu.
        # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent.
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-compiler-wrapper << EOF
#!/bin/sh
SYSROOTS/MACHINE/usr/bin/g-ir-scanner-qemuwrapper SYSROOTS/MACHINE/usr/bin/g-ir-compiler "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-compiler-wrapper

        # Write out a wrapper to use instead of ldd, which does not work when a binary is built
        # for a different architecture
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-lddwrapper << EOF
#!/bin/sh
prelink-rtld --root=$STAGING_DIR_HOST "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-lddwrapper

        # Also tweak the target python scripts so that they don't refer to the
        # native version of python binary (the solution is taken from glib-2.0 recipe)
        sed -i -e '1s,#!.*,#!/usr/bin/env python,' WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0/tools/g-ir-tool-template.in
	( cd WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0; gtkdocize --docdir WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0 )
    set_icecc_env
    autotools_do_configure
 which triggered exception NameError: name 'qemu_wrapper_cmdline' is not defined

Summary: There were 2 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20160310/ca206eb8/attachment-0002.sig>


More information about the Openembedded-core mailing list