Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Bruce Ashfield <bruce.ashfield@gmail.com>
To: Prasanth R <ragaprasanth@gmail.com>
Cc: openembedded-core@lists.openembedded.org, prasanth.r@lineo.co.jp
Subject: Re: [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
Date: Wed, 28 Oct 2026 20:35:37 -0700 (PDT)	[thread overview]
Message-ID: <6ae2bf09.0a372733.3ab85e.5e55@mx.google.com> (raw)
In-Reply-To: <20261029024010.2113092-1-ragaprasanth@gmail.com>

On Wed, Oct 29, 2026 at 11:40 AM Prasanth R <ragaprasanth@gmail.com> wrote:
>

Can you elaborate on the configuration / build that you are doing that
is triggering this ? You have multiple kernels ? and you are setting
KERNEL_PACKAGE_NAME =  "${PN}" as part of that ? How you ran into this
is important for understanding the context. It could be that we can
avoid the issue in another way.

> With KERNEL_PACKAGE_NAME = "${PN}", FILES:${KERNEL_PACKAGE_NAME}-dev and
> FILES:${PN}-dev from bitbake.conf become the same variable and the
> bitbake.conf value wins. The same happens for -dbg. The kernel files are
> then not packaged and do_package fails:

Also for -dbg, the bitbake.conf value is a superset of what the kernel class
sets, so nothing is actually lost there. It is just the key collision
warning. Worth saying that, so it is clear that -dev is the real breakage.

>
>   ERROR: linux-yocto-7.2.8+git-r0 do_package: QA Issue: linux-yocto:
>   Files/directories were installed but not shipped in any package:
>     /boot/System.map-7.2.8-yocto-standard
>     /boot/config-7.2.8-yocto-standard
>     /boot/Module.symvers-7.2.8-yocto-standard
>
> This matters when a second kernel recipe. So, Rename the kernel variables
> to the ${PN} names before the keys are expanded, so the kernel values are kept.

This sentence is broken. Can you say who actually sets
KERNEL_PACKAGE_NAME = "${PN}" and why? I assume an alternate/second
kernel recipe, but that should be spelled out. This is the specifics
that are hinted at in my opening question.

I'd also like the commit message to explain why an event handler is
needed. My first reaction was that this was more complex than it needed
to be. But key expansion happens (in sorted order) before anonymous python
runs, so by the time __anonymous() sees it, the kernel value is already
gone. Fixing it in anonymous python would also clobber any :append to
FILES:${KERNEL_PACKAGE_NAME}-dev from a bbappend. A :append in the class
keeps the files but still triggers the "Variable key ... replaces original
key" warning on every parse. So renaming before expansion is the right
place. Just say so in the commit, so the next person doesn't have to work
it out again.

>
> Remove the old warning about bug 11905, which was closed as not a bug.

Fine. 11905 is the same key expansion ordering issue, and that is
expected bitbake behaviour, which is why the fix belongs here.

>
> AI-Generated: Uses Claude
> Signed-off-by: Prasanth R <prasanth.r@lineo.co.jp>
> ---
>
> Notes:
>     Tested on master: without this patch do_package fails with the
>     QA error above; with it the build passes with no warnings and linux-yocto-dev
>     contains System.map, Module.symvers and the config.

Please also confirm the default case (KERNEL_PACKAGE_NAME = "kernel") is
unchanged. It should be, since the handler returns early, but it is the
case almost everyone uses.

Also note in the commit that with KERNEL_PACKAGE_NAME = "${PN}", the -dev
package no longer picks up the bitbake.conf default -dev contents
(includedir, .so symlinks, etc). That matches what kernel-dev gets
today, so I think it is correct, but it is a behaviour change and should
be stated (and confirmed by testing).

>
>  meta/classes-recipe/kernel.bbclass | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
> index 0a6d754108..b018c164fd 100644
> --- a/meta/classes-recipe/kernel.bbclass
> +++ b/meta/classes-recipe/kernel.bbclass
> @@ -60,16 +60,23 @@ 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.

Same here. Add a line saying this must run before key expansion
(i.e. it can't live in __anonymous), so nobody "simplifies" it later.

> +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 code itself looks fine. A v2 with the commit message and comment
updates and I'll ack it.

Bruce

> --
> 2.34.1

  reply	other threads:[~2026-10-29  3:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29  2:40 [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN prasanth
2026-10-29  3:35 ` Bruce Ashfield [this message]
2026-10-29  5:08   ` prasanth
2026-10-29  6:00     ` Prasanth Ramesh

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=6ae2bf09.0a372733.3ab85e.5e55@mx.google.com \
    --to=bruce.ashfield@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=prasanth.r@lineo.co.jp \
    --cc=ragaprasanth@gmail.com \
    /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