On 10/2/24 8:11 PM, Peter Kjellerstedt wrote:
-----Original Message-----
From: [email protected] 
<[email protected]> On Behalf Of Mark Hatle
Sent: den 3 oktober 2024 00:39
To: [email protected]
Subject: [meta-virtualization][scarthgap][PATCH] 
linux-yocto_virtualization.inc: If using externalsrc adjust dependency

From: Mark Hatle <[email protected]>

When using externalsrc, the system will disable a number of tasks such as
do_validate_branches, do_unpack and do_patch.  The do_kernel_metadata task
is configured to run after do_validate_branches do_unpack and before
do_patch.  Since all of these have been removed, the task will never
run.

The do_kernel_metadata task is responsible for populating the
recipe-sysroot-native/kcfg directory via it's own dependency to
yocto-cfg-fragments-native:do_populate_sysroot.

Without do_kernel_metadata running, do_kernel_configme will fail to run
with errors like:
   ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Feature 
'../recipe-sysroot-native/kcfg/cfg/virtio.scc' not found, this will cause 
configuration failures.
   ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Check the SRC_URI for 
meta-data repositories or directories that may be missing
   ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Set 
KERNEL_DANGLING_FEATURES_WARN_ONLY to ignore this issue

Fix this issue by detecting if we're running with externalsrc, and then
adding the task do_kernel_metadata (from the current recipe) as a
dependency of do_kernel_configme.

To reproduce th original issue:

   $ . ./oe-initbuild-env
   $ bitbake linux-yocto -c patch
   $ cp -r tmp/work-shared/<machine>/kernel-source linux-yocto

   edit the conf/local.conf adding:
   DISTRO_FEATURES:append = " virtualization"
   INHERIT += "externalsrc"
   EXTERNALSRC:pn-linux-yocto = "${TOPDIR}/linux-yocto"

   $ rm -rf tmp
   $ bitbake linux-yocto -c menuconfig

Signed-off-by: Mark Hatle <[email protected]>
---
  recipes-kernel/linux/linux-yocto_virtualization.inc | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/recipes-kernel/linux/linux-yocto_virtualization.inc 
b/recipes-kernel/linux/linux-yocto_virtualization.inc
index 9a6554d..f0ec80c 100644
--- a/recipes-kernel/linux/linux-yocto_virtualization.inc
+++ b/recipes-kernel/linux/linux-yocto_virtualization.inc
@@ -49,6 +49,12 @@ KERNEL_FEATURES:append = " ${KERNEL_CACHE_FEATURES}"
  # features can be enabled via the fragments
  do_kernel_metadata[depends] += "${@['', 
'yocto-cfg-fragments-native:do_populate_sysroot'][(bb.data.inherits_class('kernel-yocto', 
d))]}"

+# if externalsrc is enabled, do_kernel_metadata dependency on
+# yocto-cfg-fragments-native won't be run to populate
+# recipe-sysroot-native/kcfg because do_patch is not run.  Manully add

Typo: Manully -> Manually

+# the dependency to do_kernel_configme for this special case
+do_kernel_configme[depends] += "${@['', d.getVar('PN') + 
':do_kernel_metadata'][(bb.data.inherits_class('externalsrc', d))]}"

This can be written more readable as:

do_kernel_configme[depends] += "${@d.getVar('PN') + ':do_kernel_metadata' if 
bb.data.inherits_class('externalsrc', d) else ''}"

I followed the existing style in the recipe of the other [depends] line above.

--Mark

+
  # xen kernel support
  # SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', 
'', d)}"
  KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/xen.scc', 'xen', d)}"
--
2.34.1

//Peter





-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8914): 
https://lists.yoctoproject.org/g/meta-virtualization/message/8914
Mute This Topic: https://lists.yoctoproject.org/mt/108789783/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to