Skip to contentSkip to conversation

dbus-test no longer built for dbus-ptest after last bitbake changes

DISCUSSION Martin Jansa 3 participants 7 messages Jul 14, 2015 – Jul 21, 2015

lore
Share & tools
lore
#0 lore raw

I'm not 100% sure it's related to recent bitbake variable expansion changes, but my recent builds are failing with errors about dbus-ptest cannot be installed because dbus-test-ptest doesn't exist

ERROR:
Collected errors:

* satisfy_dependencies_for: Cannot satisfy the following dependencies
* for dbus-ptest:

* dbus-test-ptest *

* opkg_install_cmd: Cannot install package dbus-ptest.

It's using a bit strange construct to add it to RDEPENDS:
meta/recipes-core/dbus/dbus.inc:RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"

but checking cooker log shows that dbus-test (meta/recipes-core/dbus/dbus-test_1.8.18.bb) wasn't built at all, only dbus-test message is from opkg error and this QA error from dbus itself:

NOTE: recipe dbus-1.8.18-r0: task do_package_write_ipk: Started
WARNING: QA Issue: dbus-ptest rdepends on dbus-test-ptest, but it isn't a build dependency? [build-deps]

Any ideas?

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#1 lore raw
Quoted 18 lines · Martin Jansa

I'm not 100% sure it's related to recent bitbake variable expansion changes, but my recent builds are failing with errors about dbus-ptest cannot be installed because dbus-test-ptest doesn't exist

ERROR:
Collected errors:

* satisfy_dependencies_for: Cannot satisfy the following dependencies
* for dbus-ptest:

* dbus-test-ptest *

* opkg_install_cmd: Cannot install package dbus-ptest.

It's using a bit strange construct to add it to RDEPENDS:
meta/recipes-core/dbus/dbus.inc:RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"

Quoted 7 lines

but checking cooker log shows that dbus-test (meta/recipes-core/dbus/dbus-test_1.8.18.bb) wasn't built at all, only dbus-test message is from opkg error and this QA error from dbus itself:

NOTE: recipe dbus-1.8.18-r0: task do_package_write_ipk: Started
WARNING: QA Issue: dbus-ptest rdepends on dbus-test-ptest, but it isn't a build dependency? [build-deps]

Possibly other issues caused by different data expansion (because I don't remember any metadata changes in this area)

Parsing of 2408 .bb files complete (0 cached, 2408 parsed). 2963 targets, 125 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for runtime opencv-samples (opencv-samples, opencv)
NOTE: consider defining a PREFERRED_PROVIDER entry to match opencv-samples
ERROR: Nothing PROVIDES 'qt4-x11-free-native' (but virtual:native:/home/jenkins/oe/world/shr-core/meta-smartphone/meta-fso/recipes-freesmartphone/freesmartphone/qfsodbusxml2cpp_git.bb DEPENDS on or otherwise requires it). Close matches:
qt4-x11-free
NOTE: Runtime target 'aurora-daemon-dev' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['aurora-daemon-dev', 'libfso-qt', 'qfsodbusxml2cpp-native', 'qt4-x11-free-native']
NOTE: Runtime target 'aurora-daemon' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['aurora-daemon', 'libfso-qt', 'qfsodbusxml2cpp-native', 'qt4-x11-free-native']
NOTE: Runtime target 'libfso-qt' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libfso-qt', 'qfsodbusxml2cpp-native', 'qt4-x11-free-native']
NOTE: Runtime target 'libfso-qt-dev' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libfso-qt-dev', 'qfsodbusxml2cpp-native', 'qt4-x11-free-native']
ERROR: Nothing PROVIDES 'gtk+-native' (but virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb DEPENDS on or otherwise requires it). Close matches:
tk-native
git-native
atk-native
NOTE: Runtime target 'abiword-dev' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['abiword-dev', 'libwmf-native', 'gtk+-native']
NOTE: Runtime target 'abiword' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['abiword', 'libwmf-native', 'gtk+-native']

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#2 lore raw
Quoted 4 lines · Martin Jansa

ERROR: Nothing PROVIDES 'gtk+-native' (but virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-extended/libwmf/ libwmf_0.2.8.4.bb DEPENDS on or otherwise requires it). Close matches:

So libwmf does this:

DEPENDS_virtclass-native = "freetype-native libpng-native jpeg-native" DEPENDS = "freetype libpng jpeg expat gtk+"

Interestingly changing this to _class-native fixes the problem.

Ross

#3 lore raw
Quoted 11 lines · Ross

On 16 July 2015 at 22:29, Martin Jansa <[email protected]> wrote:
ERROR: Nothing PROVIDES 'gtk+-native' (but virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb DEPENDS on or otherwise requires it). Close matches:

So libwmf does this:

DEPENDS_virtclass-native = "freetype-native libpng-native jpeg-native" DEPENDS = "freetype libpng jpeg expat gtk+"

Interestingly changing this to _class-native fixes the problem.

Strangely, the answer as to what might be wrong occurred to me in the shower this morning. We should try changing:

native.bbclass: e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-native")

to

e.data.setVar("FOO", "virtclass-native") e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":${FOO}")

and if that makes things work, its the override caching mechanism that is bust for direct changes to OVERRIDES which don't use variable indirection (most do).

If that is the case, a fix shouldn't be hard.

Cheers,

Richard

#4 lore raw
Quoted 20 lines · Richard Purdie
Quoted 11 lines · Ross

On 16 July 2015 at 22:29, Martin Jansa <[email protected]> wrote:
ERROR: Nothing PROVIDES 'gtk+-native' (but virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb DEPENDS on or otherwise requires it). Close matches:

So libwmf does this:

DEPENDS_virtclass-native = "freetype-native libpng-native jpeg-native" DEPENDS = "freetype libpng jpeg expat gtk+"

Interestingly changing this to _class-native fixes the problem.

Strangely, the answer as to what might be wrong occurred to me in the shower this morning. We should try changing:

native.bbclass: e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-native")

to

Quoted 8 lines

e.data.setVar("FOO", "virtclass-native") e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":${FOO}")

and if that makes things work, its the override caching mechanism that is bust for direct changes to OVERRIDES which don't use variable indirection (most do).

If that is the case, a fix shouldn't be hard.

Its actually much simpler than this. DEPENDS is evaluated in native_virtclass_handler(e):28 [map_dependencies] which is before virtclass-native is added to OVERRIDES. The act of setting the DEPENDS variable wipes out any other overrides which may not have been applied to that point. The fixes are:

a) Move the virtclass-native addition to OVERRIDES to earlier in the function
b) Change meta-oe use of virtclass -> class
c) Drop use of virtclass-native and virtclass-nativesdk entirely (only multilib really makes sense now).

Cheers,

Richard

#5 lore raw
In reply to Martin Jansa
Quoted 22 lines · Martin Jansa

I'm not 100% sure it's related to recent bitbake variable expansion changes, but my recent builds are failing with errors about dbus-ptest cannot be installed because dbus-test-ptest doesn't exist

ERROR:
Collected errors:

* satisfy_dependencies_for: Cannot satisfy the following dependencies
* for dbus-ptest:

* dbus-test-ptest *

* opkg_install_cmd: Cannot install package dbus-ptest.

It's using a bit strange construct to add it to RDEPENDS:
meta/recipes-core/dbus/dbus.inc:RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"

but checking cooker log shows that dbus-test (meta/recipes-core/dbus/dbus-test_1.8.18.bb) wasn't built at all, only dbus-test message is from opkg error and this QA error from dbus itself:

Quoted 5 lines

NOTE: recipe dbus-1.8.18-r0: task do_package_write_ipk: Started
WARNING: QA Issue: dbus-ptest rdepends on dbus-test-ptest, but it isn't a build dependency? [build-deps]

Any ideas?

I've not forgotten about this, I'm just neck deep in trying to fix the current failures on the autobuilder (libspeexdsp is proving to uncover scary things in smart). Its next on the queue when I get done with that assuming nobody beats me to it but may be Monday...

Cheers,

Richard

#6 lore raw
In reply to Martin Jansa
Quoted 22 lines · Martin Jansa

I'm not 100% sure it's related to recent bitbake variable expansion changes, but my recent builds are failing with errors about dbus-ptest cannot be installed because dbus-test-ptest doesn't exist

ERROR:
Collected errors:

* satisfy_dependencies_for: Cannot satisfy the following dependencies
* for dbus-ptest:

* dbus-test-ptest *

* opkg_install_cmd: Cannot install package dbus-ptest.

It's using a bit strange construct to add it to RDEPENDS:
meta/recipes-core/dbus/dbus.inc:RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"

but checking cooker log shows that dbus-test (meta/recipes-core/dbus/dbus-test_1.8.18.bb) wasn't built at all, only dbus-test message is from opkg error and this QA error from dbus itself:

Quoted 5 lines

NOTE: recipe dbus-1.8.18-r0: task do_package_write_ipk: Started
WARNING: QA Issue: dbus-ptest rdepends on dbus-test-ptest, but it isn't a build dependency? [build-deps]

Any ideas?

I've confirmed this is a bug in the bitbake data store changes. The fix is to replace a copy.copy() with a copy.deepcopy(). I'll sort out patches as soon as I can although I'm travelling a bit this week. Also need to write a testcase for it.

Cheers,

Richard