From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: DEPENDS broken for native(sdk).bbclass Was: libgee introspection problem
Date: Tue, 26 Oct 2010 13:25:51 +0200 [thread overview]
Message-ID: <20101026112551.GD3514@jama> (raw)
In-Reply-To: <20101026093926.GC3514@jama>
On Tue, Oct 26, 2010 at 11:39:26AM +0200, Martin Jansa wrote:
> On Tue, Oct 26, 2010 at 11:16:46AM +0200, Frans Meulenbroeks wrote:
> > Hi,
> >
> > With the testing branch I get a problem with libgee native in
> > combination with introspection.
> > I'm building distro minimal, target neek (but I doubt that the latter matters)
> >
> > Anyone an idea?
>
> that should be fixed with
> http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=df932a2769c2f6f7195363e8eb83994846805398
>
> but that didn't make it to DEPENDS_virtclass-native (as well as
> glib-2.0), I'm checking why (reading native.bbclass looks like it
> should be there automatically).
>
> if I don't find bug in native.bbclass I'll append it to
> DEPENDS_virtclass-native too
native.bbclass and nativesdk.bbclass use
ORIG_DEPENDS := "${DEPENDS}"
DEPENDS_virtclass-native ?= "${ORIG_DEPENDS}"
and then for every dependency in DEPENDS_virtclass-native it does:
1) if it ends with -cross appends dependency ending -native instead
2) if it ends with -native it just appends
3) else appends dependency ending with native instead
That's all nice and right and works in theory, BUT:
base.bbclass:
DEPENDS_prepend="${@base_deps(d)} "
DEPENDS_virtclass-native_prepend="${@base_deps(d)} "
DEPENDS_virtclass-nativesdk_prepend="${@base_deps(d)} "
autotools.bbclass:
DEPENDS_prepend = "${@autotools_deps(d)}"
DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}"
DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}"
vala.bbclass:
DEPENDS += "vala-native"
DEPENDS_virtclass-native += "vala-native"
so DEPENDS_virtclass-native is not empty when native.bbclass calls:
DEPENDS_virtclass-native ?= "${ORIG_DEPENDS}"
and ORIG_DEPENDS are just ignored
we cannot fix it with
DEPENDS_virtclass-native += "${ORIG_DEPENDS}"
because sometimes we want to override DEPENDS_virtclass-native from
recipe (ie when target recipe depends on its own ${PN}-native).
Maybe it's because the order of bbclass processing was changed? It would
work OK if we process native and nativesdk first.
I've added small debug output to see order now
DEBUG: Removing /OE/dev/recipes/libgee/libgee_0.6.0.bb from cache
DEBUG: Parsing /OE/dev/recipes/libgee/libgee_0.6.0.bb
DEBUG: inherited base
DEBUG: inherited autotools
DEBUG: inherited vala
DEBUG: inherited base
DEBUG: inherited autotools
DEBUG: inherited vala
DEBUG: inherited native
No idea why I see it twice..
Current broken state:
DEBUG: OrigDepends: autoconf-native automake-native libtool-native gnu-config-native coreutils-native linux-libc-headers-native glib-2.0 vala-native gobject-introspection-native
DEBUG: Depends: autoconf-native automake-native libtool-native gnu-config-native coreutils-native linux-libc-headers-native vala-native
glib-2.0 is from libgee.inc, gobject-introspection-native from libgee_0.6.0.bb, but both lost
If I remove those append/preppend from bbclasses:
DEBUG: OrigDepends: autoconf-native automake-native libtool-native gnu-config-native coreutils-native linux-libc-headers-native glib-2.0 vala-native gobject-introspection-native
DEBUG: Depends: autoconf-native automake-native libtool-native gnu-config-native coreutils-native linux-libc-headers-native glib-2.0 vala-native gobject-introspection-native
I'll send patch for removing those DEPENDS_virtclass-native(sdk) from bbclasses.
But that will break those recipes where DEPENDS_virtclass-native is used to override
common DEPENDS but without still needed dependencies from classes, so enforced
bbclass order would be probably better fix.
We really need some sort of unit tests :/.
Regards,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
next prev parent reply other threads:[~2010-10-26 11:26 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-26 9:16 libgee introspection problem Frans Meulenbroeks
2010-10-26 9:39 ` Martin Jansa
2010-10-26 11:25 ` Martin Jansa [this message]
2010-10-26 11:35 ` [PATCH] autotools, base, vala: don't define DEPENDS with _virtclass overrides Martin Jansa
2010-11-04 7:40 ` DEPENDS broken for native(sdk).bbclass Was: libgee introspection problem Martin Jansa
2010-11-04 8:05 ` Frans Meulenbroeks
2010-11-04 14:11 ` Chris Larson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101026112551.GD3514@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.