diff mbox series

[v3] uki.bbclass: drop INITRD_ARCHIVE, fixing multiple INITRAMFS_FSTYPES

Message ID 20260123131814.586417-1-dmitry.baryshkov@oss.qualcomm.com
State New
Headers show
Series [v3] uki.bbclass: drop INITRD_ARCHIVE, fixing multiple INITRAMFS_FSTYPES | expand

Commit Message

Dmitry Baryshkov Jan. 23, 2026, 1:18 p.m. UTC
If INITRAMFS_FSTYPES contains more than one entry, ukify build command
will fail as INITRD_ARCHIVE will contain extra strings. Drop
INITRD_ARCHIVE and handle fstypes directly in do_uki(), letting the user
to specify other fstypes in INITRAMFS_FSTYPES.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 meta/classes-recipe/uki.bbclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Marko, Peter Jan. 23, 2026, 1:32 p.m. UTC | #1
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-
> core@lists.openembedded.org> On Behalf Of Dmitry Baryshkov via
> lists.openembedded.org
> Sent: Friday, January 23, 2026 14:18
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH v3] uki.bbclass: drop INITRD_ARCHIVE, fixing multiple
> INITRAMFS_FSTYPES
> 
> If INITRAMFS_FSTYPES contains more than one entry, ukify build command
> will fail as INITRD_ARCHIVE will contain extra strings. Drop
> INITRD_ARCHIVE and handle fstypes directly in do_uki(), letting the user
> to specify other fstypes in INITRAMFS_FSTYPES.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
>  meta/classes-recipe/uki.bbclass | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
> index a2b1c8a82d6f..ea449540db66 100644
> --- a/meta/classes-recipe/uki.bbclass
> +++ b/meta/classes-recipe/uki.bbclass
> @@ -73,8 +73,6 @@ require ../conf/image-uefi.conf
> 
>  INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
> 
> -INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-
> ${MACHINE}.${INITRAMFS_FSTYPES}"
> -
>  do_image_complete[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
> 
>  UKIFY_CMD ?= "ukify build"
> @@ -127,7 +125,8 @@ python do_uki() {
>      ukify_cmd += " --stub %s" % (stub)
> 
>      # initrd
> -    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
> +    uki_fstype = d.getVar("INITRAMFS_FSTYPES").split()[0]
> +    initramfs_image = "%s-%s.%s" % (d.getVar('INITRAMFS_IMAGE'),
> d.getVar('MACHINE'), uki_fstype)

This will leave orphan INITRD_ARCHIVE variable defined.

Additionally, I think there is probably issue if someone sets non-default values for IMAGE_MACHINE_SUFFIX or INITRAMFS_IMAGE_NAME.
Isn't INITRAMFS_IMAGE_NAME the correct variable here instead of ${INITRAMFS_IMAGE}-${MACHINE}?

Peter

>      ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image,
> initramfs_image))
> 
>      # kernel
> --
> 2.47.3
Dmitry Baryshkov Jan. 23, 2026, 1:35 p.m. UTC | #2
On Fri, 23 Jan 2026 at 15:32, Marko, Peter <Peter.Marko@siemens.com> wrote:
>
>
>
> > -----Original Message-----
> > From: openembedded-core@lists.openembedded.org <openembedded-
> > core@lists.openembedded.org> On Behalf Of Dmitry Baryshkov via
> > lists.openembedded.org
> > Sent: Friday, January 23, 2026 14:18
> > To: openembedded-core@lists.openembedded.org
> > Subject: [OE-core] [PATCH v3] uki.bbclass: drop INITRD_ARCHIVE, fixing multiple
> > INITRAMFS_FSTYPES
> >
> > If INITRAMFS_FSTYPES contains more than one entry, ukify build command
> > will fail as INITRD_ARCHIVE will contain extra strings. Drop
> > INITRD_ARCHIVE and handle fstypes directly in do_uki(), letting the user
> > to specify other fstypes in INITRAMFS_FSTYPES.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> >  meta/classes-recipe/uki.bbclass | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
> > index a2b1c8a82d6f..ea449540db66 100644
> > --- a/meta/classes-recipe/uki.bbclass
> > +++ b/meta/classes-recipe/uki.bbclass
> > @@ -73,8 +73,6 @@ require ../conf/image-uefi.conf
> >
> >  INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
> >
> > -INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-
> > ${MACHINE}.${INITRAMFS_FSTYPES}"
> > -
> >  do_image_complete[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
> >
> >  UKIFY_CMD ?= "ukify build"
> > @@ -127,7 +125,8 @@ python do_uki() {
> >      ukify_cmd += " --stub %s" % (stub)
> >
> >      # initrd
> > -    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
> > +    uki_fstype = d.getVar("INITRAMFS_FSTYPES").split()[0]
> > +    initramfs_image = "%s-%s.%s" % (d.getVar('INITRAMFS_IMAGE'),
> > d.getVar('MACHINE'), uki_fstype)
>
> This will leave orphan INITRD_ARCHIVE variable defined.

Where? It is removed in the first chunk.

>
> Additionally, I think there is probably issue if someone sets non-default values for IMAGE_MACHINE_SUFFIX or INITRAMFS_IMAGE_NAME.
> Isn't INITRAMFS_IMAGE_NAME the correct variable here instead of ${INITRAMFS_IMAGE}-${MACHINE}?

It's a separate issue, which needs a separate commit.
Marko, Peter Jan. 23, 2026, 1:37 p.m. UTC | #3
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-
> core@lists.openembedded.org> On Behalf Of Dmitry Baryshkov via
> lists.openembedded.org
> Sent: Friday, January 23, 2026 14:36
> To: Marko, Peter (FT D EU SK BFS1) <Peter.Marko@siemens.com>
> Cc: openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH v3] uki.bbclass: drop INITRD_ARCHIVE, fixing
> multiple INITRAMFS_FSTYPES
> 
> On Fri, 23 Jan 2026 at 15:32, Marko, Peter <Peter.Marko@siemens.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: openembedded-core@lists.openembedded.org <openembedded-
> > > core@lists.openembedded.org> On Behalf Of Dmitry Baryshkov via
> > > lists.openembedded.org
> > > Sent: Friday, January 23, 2026 14:18
> > > To: openembedded-core@lists.openembedded.org
> > > Subject: [OE-core] [PATCH v3] uki.bbclass: drop INITRD_ARCHIVE, fixing
> multiple
> > > INITRAMFS_FSTYPES
> > >
> > > If INITRAMFS_FSTYPES contains more than one entry, ukify build command
> > > will fail as INITRD_ARCHIVE will contain extra strings. Drop
> > > INITRD_ARCHIVE and handle fstypes directly in do_uki(), letting the user
> > > to specify other fstypes in INITRAMFS_FSTYPES.
> > >
> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > > ---
> > >  meta/classes-recipe/uki.bbclass | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
> > > index a2b1c8a82d6f..ea449540db66 100644
> > > --- a/meta/classes-recipe/uki.bbclass
> > > +++ b/meta/classes-recipe/uki.bbclass
> > > @@ -73,8 +73,6 @@ require ../conf/image-uefi.conf
> > >
> > >  INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
> > >
> > > -INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-
> > > ${MACHINE}.${INITRAMFS_FSTYPES}"
> > > -
> > >  do_image_complete[depends] +=
> "${INITRAMFS_IMAGE}:do_image_complete"
> > >
> > >  UKIFY_CMD ?= "ukify build"
> > > @@ -127,7 +125,8 @@ python do_uki() {
> > >      ukify_cmd += " --stub %s" % (stub)
> > >
> > >      # initrd
> > > -    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
> > > +    uki_fstype = d.getVar("INITRAMFS_FSTYPES").split()[0]
> > > +    initramfs_image = "%s-%s.%s" % (d.getVar('INITRAMFS_IMAGE'),
> > > d.getVar('MACHINE'), uki_fstype)
> >
> > This will leave orphan INITRD_ARCHIVE variable defined.
> 
> Where? It is removed in the first chunk.

Sure, selective blindness on my side...

> 
> >
> > Additionally, I think there is probably issue if someone sets non-default values
> for IMAGE_MACHINE_SUFFIX or INITRAMFS_IMAGE_NAME.
> > Isn't INITRAMFS_IMAGE_NAME the correct variable here instead of
> ${INITRAMFS_IMAGE}-${MACHINE}?
> 
> It's a separate issue, which needs a separate commit.
> 
> --
> With best wishes
> Dmitry
diff mbox series

Patch

diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
index a2b1c8a82d6f..ea449540db66 100644
--- a/meta/classes-recipe/uki.bbclass
+++ b/meta/classes-recipe/uki.bbclass
@@ -73,8 +73,6 @@  require ../conf/image-uefi.conf
 
 INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
 
-INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}"
-
 do_image_complete[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
 
 UKIFY_CMD ?= "ukify build"
@@ -127,7 +125,8 @@  python do_uki() {
     ukify_cmd += " --stub %s" % (stub)
 
     # initrd
-    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
+    uki_fstype = d.getVar("INITRAMFS_FSTYPES").split()[0]
+    initramfs_image = "%s-%s.%s" % (d.getVar('INITRAMFS_IMAGE'), d.getVar('MACHINE'), uki_fstype)
     ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image, initramfs_image))
 
     # kernel