dbus-test no longer built for dbus-ptest after last bitbake changes
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]
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]
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
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
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
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
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