Re: [OE-core][PATCH 1/2] kernel.bbclass: run read_package_metadata only if packaging is enabled
From: Andrea Adami <hidden>
Date: 2021-06-22 22:59:37
On Wed, Jun 23, 2021 at 12:52 AM Richard Purdie [off-list ref] wrote:
On Wed, 2021-06-23 at 00:18 +0200, Andrea Adami wrote:quoted
As exposed in the ML https://lists.openembedded.org/g/openembedded-core/message/153000 up to commit 86142da in Gatesgarth it was possible to build a second mini-kernel w/out modules to be just deployed and collected by other recipes. These kernels use special care to avoid packaging: inherit nopackages PACKAGES = "" PROVIDES = "" Now the change in kernel.bblass calls a packaging routine: do_deploy[prefuncs] += "read_subpackage_metadata" As a result the kernel build fails. Fix this using bb.data.inherits_class() to verify the possible previous inherit of nopackages.bbclass. Signed-off-by: Andrea Adami <redacted> --- meta/classes/kernel.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 379bed44f2..06e6446a08 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass@@ -771,8 +771,8 @@ kernel_do_deploy() { } # We deploy to filenames that include PKGV and PKGR, read the saved data to -# ensure we get the right values for both -do_deploy[prefuncs] += "read_subpackage_metadata" +# ensure we get the right values for both. Do this only if packaging is enabled. +do_deploy[prefuncs] += "${@ '' if bb.data.inherits_class('nopackages', d) else 'read_subpackage_metadata' }" addtask deploy after do_populate_sysroot do_packagedataI'm not convinced this is the right fix. Which values is that function finding and reading which cause problems? It sounds like there is a deeper issue here that should be fixed instead... Is there a simple reproducer for this on master?
Well, yes. It is linux-kexecboot from meta-handheld. Pls see comments in message 153000. The razor is https://git.openembedded.org/openembedded-core/tree/meta/classes/packagedata.bbclass#n22 Cheers A.A.