@@ -60,16 +60,24 @@ KERNEL_VERSION_NAME[vardepvalue] = "${LINUX_VERSION}"
KERNEL_VERSION_PKG_NAME = "${@legitimize_package_name(d.getVar('KERNEL_VERSION'))}"
KERNEL_VERSION_PKG_NAME[vardepvalue] = "${LINUX_VERSION}"
+# With KERNEL_PACKAGE_NAME = "${PN}", FILES:${PN}-dev/-dbg from bitbake.conf
+# would replace the kernel values during key expansion, so rename the kernel
+# variables to the ${PN} names first. This must run before key expansion, so
+# it cannot be moved to __anonymous().
+python kernel_package_name_handler () {
+ d = e.data
+ if d.getVar("KERNEL_PACKAGE_NAME") != d.getVar("PN"):
+ return
+
+ for pkg in ("dev", "dbg"):
+ d.renameVar("FILES:${KERNEL_PACKAGE_NAME}-%s" % pkg, "FILES:${PN}-%s" % pkg)
+}
+addhandler kernel_package_name_handler
+kernel_package_name_handler[eventmask] = "bb.event.RecipePreFinalise"
+
python __anonymous () {
- pn = d.getVar("PN")
kpn = d.getVar("KERNEL_PACKAGE_NAME")
- # XXX Remove this after bug 11905 is resolved
- # FILES:${KERNEL_PACKAGE_NAME}-dev doesn't expand correctly
- if kpn == pn:
- bb.warn("Some packages (E.g. *-dev) might be missing due to "
- "bug 11905 (variable KERNEL_PACKAGE_NAME == PN)")
-
# The default kernel recipe builds in a shared location defined by
# bitbake/distro confs: STAGING_KERNEL_DIR and STAGING_KERNEL_BUILDDIR.
# Set these variables to directories under ${WORKDIR} in alternate
For a second kernel next to virtual/kernel needs its own package names, e.g. KERNEL_PACKAGE_NAME:pn-linux-yocto-rt = "linux-yocto-rt" PROVIDES:remove:pn-linux-yocto-rt = "virtual/kernel" FILES:${KERNEL_PACKAGE_NAME}-dev and FILES:${PN}-dev from bitbake.conf are then the same key. Keys expand in sorted order, bitbake.conf wins and do_package fails with installed-vs-shipped for System.map, Module.symvers and config. -dbg only gets the collision warning, as the bitbake.conf value is a superset. Rename the kernel FILES to the ${PN} names in a RecipePreFinalise handler. __anonymous() is too late and would drop bbappend :append, and a class :append would still warn. -dev now matches kernel-dev, without the bitbake.conf -dev defaults. The default KERNEL_PACKAGE_NAME = "kernel" is unchanged. Drop the bug 11905 warning, as that is expected bitbake behaviour. AI-Generated: Uses Claude Signed-off-by: Prasanth R <prasanth.r@lineo.co.jp> --- Notes: v2: added the use case, why the handler is needed, -dbg/-dev notes and the comment. Found while checking the bug 11905 warning in kernel.bbclass. Tested on master (qemux86-64): linux-yocto-rt next to linux-yocto fails without the patch and builds with no warnings with it. The default "kernel" case is unchanged. meta/classes-recipe/kernel.bbclass | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)