* [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
@ 2026-10-29 2:40 prasanth
2026-10-29 3:35 ` Bruce Ashfield
0 siblings, 1 reply; 4+ messages in thread
From: prasanth @ 2026-10-29 2:40 UTC (permalink / raw)
To: openembedded-core; +Cc: bruce.ashfield, Prasanth R, Prasanth R
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:
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.
Remove the old warning about bug 11905, which was closed as not a bug.
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.
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.
+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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
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
2026-10-29 5:08 ` prasanth
0 siblings, 1 reply; 4+ messages in thread
From: Bruce Ashfield @ 2026-10-29 3:35 UTC (permalink / raw)
To: Prasanth R; +Cc: openembedded-core, prasanth.r
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
2026-10-29 3:35 ` Bruce Ashfield
@ 2026-10-29 5:08 ` prasanth
2026-10-29 6:00 ` Prasanth Ramesh
0 siblings, 1 reply; 4+ messages in thread
From: prasanth @ 2026-10-29 5:08 UTC (permalink / raw)
To: Bruce Ashfield; +Cc: openembedded-core, prasanth.r
[-- Attachment #1: Type: text/plain, Size: 5628 bytes --]
Hi Bruce,
Thanks for the detailed review and the explanation regarding the event
handler. That makes perfect sense.
Sent v2.
Thanks,
Prasanth R
On Thu, Oct 29, 2026 at 12:35 PM Bruce Ashfield <bruce.ashfield@gmail.com>
wrote:
> 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
>
[-- Attachment #2: Type: text/html, Size: 6912 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] kernel.bbclass: fix -dev files when KERNEL_PACKAGE_NAME is PN
2026-10-29 5:08 ` prasanth
@ 2026-10-29 6:00 ` Prasanth Ramesh
0 siblings, 0 replies; 4+ messages in thread
From: Prasanth Ramesh @ 2026-10-29 6:00 UTC (permalink / raw)
To: Bruce Ashfield; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 5979 bytes --]
Hi Bruce,
I don't see my patches in the patchwork, am i missing something?
Thanks,
Prasanth R
On Thu, Oct 29, 2026 at 2:08 PM Prasanth Ramesh <ragaprasanth@gmail.com>
wrote:
> Hi Bruce,
>
> Thanks for the detailed review and the explanation regarding the event
> handler. That makes perfect sense.
>
> Sent v2.
>
> Thanks,
> Prasanth R
>
>
> On Thu, Oct 29, 2026 at 12:35 PM Bruce Ashfield <bruce.ashfield@gmail.com>
> wrote:
>
>> 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
>>
>
[-- Attachment #2: Type: text/html, Size: 7434 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-29 6:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2026-10-29 5:08 ` prasanth
2026-10-29 6:00 ` Prasanth Ramesh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox