Skip to contentSkip to conversation

DEPENDS_virtclass-native = "libpng jpeg" not extended to libpng-native jpeg-native

DISCUSSION Martin Jansa 2 participants 4 messages Sep 11, 2012

lore
Share & tools
lore
#0 lore raw

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?

Because now it does not:
OE tuna@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.

Cheers,

#1 lore raw
Quoted 11 lines · Martin Jansa

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.

Quoted 9 lines

Because now it does not:
OE tuna@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

Quoted 7 lines

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...

Cheers,

Richard

#2 lore raw
Quoted 8 lines · Richard Purdie
Quoted 7 lines · Martin Jansa

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+"

Quoted 7 lines
Quoted 4 lines

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

Quoted 12 lines
Quoted 12 lines

Because now it does not:
OE tuna@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.

Quoted 7 lines
Quoted 4 lines

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?

Cheers,

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#3 lore raw
Quoted 69 lines · Martin Jansa
Quoted 8 lines · Richard Purdie
Quoted 7 lines · Martin Jansa

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+"

Quoted 7 lines
Quoted 4 lines

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

Quoted 12 lines
Quoted 12 lines

Because now it does not:
OE tuna@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.

Quoted 7 lines
Quoted 4 lines

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"

Quoted 1 line

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@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@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"

meta/classes/qt4x11.bbclass +1 -1
index 52190f4..267a1cc 100644
@@ -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
 
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]