Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Prasanth R <ragaprasanth@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: bruce.ashfield@gmail.com, Prasanth R <ragaprasanth@gmail.com>
Subject: [PATCH v2] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
Date: Thu, 29 Oct 2026 15:08:34 +0900	[thread overview]
Message-ID: <20261029060834.1586465-1-ragaprasanth@gmail.com> (raw)

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(-)

diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index 0a6d754108..77ae9df4c9 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -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
-- 
2.34.1


             reply	other threads:[~2026-10-29  6:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29  6:08 Prasanth R [this message]
2026-10-29 13:11 ` [PATCH v2] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN Bruce Ashfield
  -- strict thread matches above, loose matches on Subject: below --
2026-10-29  4:13 prasanth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261029060834.1586465-1-ragaprasanth@gmail.com \
    --to=ragaprasanth@gmail.com \
    --cc=bruce.ashfield@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox