[OE-core] DEPENDS_virtclass-native = "libpng jpeg" not extended to libpng-native jpeg-native

Martin Jansa martin.jansa at gmail.com
Tue Sep 11 10:07:45 UTC 2012


On Tue, Sep 11, 2012 at 11:36:05AM +0200, Martin Jansa wrote:
> On Tue, Sep 11, 2012 at 10:03:27AM +0100, Richard Purdie wrote:
> > On Tue, 2012-09-11 at 10:03 +0200, Martin Jansa wrote:
> > > Hi,
> > > 
> > > in meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb:
> > > 
> > > DEPENDS_virtclass-native = "libpng jpeg"
> > > DEPENDS = "libpng jpeg expat gtk+"
> > > 
> > > BBCLASSEXTEND = "native"
> > > 
> > > Did it work (at least at some point of time) that DEPENDS for
> > > libwmf-native were expanded to libpng-native and jpeg-native?
> > 
> > I don't think that has ever worked. Its assumed that if you're going to
> > use class overrides, you put the right thing in place.
> 
> OK, good. That probably applies also to:
> http://lists.linuxtogo.org/pipermail/openembedded-core/2012-August/028091.html
> ccing Andrei Gherzan
> 
> > > Because now it does not:
> > > OE tuna at shr ~/shr-core $ bitbake-diffsigs
> > > stamps.1347348593/nokia900/x86_64-linux/libwmf-native-0.2.8.4-r1.do_configure.sigdata.315a83efebb27040d6bf0aaead16671e
> > > stamps.1347348593/om-gta02/x86_64-linux/libwmf-native-0.2.8.4-r1.do_configure.sigdata.0f8349ada0c8a18a6d6ed7b7841ec955
> > > Hash for dependent task libpng_1.2.49.bb.do_populate_sysroot changed
> > > from 640001ee0530e51ef0aefb300c34f7dd to 7ba7d74a27e1e0af253ddac00a2be1c2
> > > Hash for dependent task libjpeg-turbo_svn.bb.do_populate_sysroot changed
> > > from 3fe6eae3a6fd1af40233d548680c5bab to ff852ac3d5e826ff74e68b5ddc4ac3e1
> > > 
> > > So native recipe depending on target checksum -> rebuilding with each
> > > MACHINE switch.
> > > 
> > > I can fix it by:
> > > DEPENDS_virtclass-native = "libpng-native jpeg-native"
> > > but maybe there is more cases like this and this could be checked by
> > > native.bbclass or something like that.
> > 
> > That is the correct thing to do, the code assumes when you write
> > explicit class overrides, you mean what you say...
> 
> Ok, testing patch for that. 2nd similar issue is with sip-native which
> gets target DEPENDS through inherits, weirdly if I override DEPENDS
> in recipe after inherit it still gets qt4-x11-free :/
> 
> meta-oe/recipes-extended/sip/sip-native_4.13.3.bb:
> inherit qt4x11 native python-dir
> 
> # inherit qt4x11 adds dependency on target qt4-x11-free, which is bad,
> # because we don't need it and it's causing different sstate checksum:
> # $ bitbake-diffsigs
> #     stamps.1347348593/nokia900/x86_64-linux/sip-native-4.13.3-r0.do_configure.sigdata.6e44871660ef91eab5ee4d56e55b6728
> #     stamps.1347348593/om-gta02/x86_64-linux/sip-native-4.13.3-r0.do_configure.sigdata.cdaf666b98c2c6ccfb710743dcdbd988
> #       Hash for dependent task qt4-x11-free_4.8.1.bb.do_populate_sysroot changed from 79234aca07686c1d97782e21fc098071 to 7e9ba3de3ba9f709a5d9ef5abadb2d9e
> DEPENDS_class-native = "qt4-tools-native "
> 
> Even with different overrides it does not work, from bitbake -e:
> sip-native.env.DEPENDS:# DEPENDS=qt4-tools-native ${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}${BASEDEPENDS} qt4-tools-native 
> sip-native.env.DEPENDS:DEPENDS="qt4-tools-native qt4-x11  qt4-tools-native"
> sip-native.env.DEPENDS_class-native:# DEPENDS_class-native=None
> sip-native.env.DEPENDS_class-native:# DEPENDS=qt4-tools-native ${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}${BASEDEPENDS} qt4-tools-native 
> sip-native.env.DEPENDS_class-native:DEPENDS="qt4-tools-native qt4-x11  qt4-tools-native"
> sip-native.env.DEPENDS_virtclass-native:# DEPENDS_virtclass-native=qt4-tools-native 
> sip-native.env.DEPENDS_virtclass-native:# DEPENDS=qt4-tools-native ${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}${BASEDEPENDS} 
> sip-native.env.DEPENDS_virtclass-native:DEPENDS_virtclass-native="qt4-tools-native"
> sip-native.env.DEPENDS_virtclass-native:DEPENDS="qt4-tools-native qt4-x11"
> sip-native.env.old.DEPENDS:# DEPENDS=qt4-tools-native ${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}${BASEDEPENDS} 
> sip-native.env.old.DEPENDS:DEPENDS="qt4-tools-native qt4-x11"
> 
> How to override DEPENDS_prepend from inherited bbclasses?

This works, but is it right solution?

Tested on sip-native (where I don't have qt4-x11-free now).
meta/recipes-qt/qt4/qt-mobility-x11_1.2.0.bb which has redundant DEPENDS = "qt4-x11-free"
meta/recipes-qt/qt-apps/qmmp_0.6.1.bb which has redundant inherit qmake2

OE om-gta02 at shr ~/shr-core $ grep ^DEPENDS qmmp.env
DEPENDS="qt4-x11 autoconf-native automake-native libtool-native libtool-cross gnu-config-native qt4-tools-native  virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc  taglib libmad libvorbis libogg alsa-lib  cmake-native"
OE om-gta02 at shr ~/shr-core $ grep ^DEPENDS qt-mobility-x11.env 
DEPENDS="qt4-tools-native qt4-x11  virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc  qt4-x11-free pulseaudio bluez4"

diff --git a/meta/classes/qt4x11.bbclass b/meta/classes/qt4x11.bbclass
index 52190f4..267a1cc 100644
--- a/meta/classes/qt4x11.bbclass
+++ b/meta/classes/qt4x11.bbclass
@@ -1,4 +1,4 @@
-DEPENDS_prepend = "${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}"
+DEPENDS_prepend_class-target = "${@base_contains("PROVIDES", "qt4-x11", "", "qt4-x11 ", d)}"
 
 inherit qmake2
 

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120911/267a34ac/attachment-0002.sig>


More information about the Openembedded-core mailing list