diff mbox series

kernel-fit-image: skip sstate creation for deploy

Message ID 20260603152328.48500-1-tafil@tafhub.de
State Changes Requested
Headers show
Series kernel-fit-image: skip sstate creation for deploy | expand

Commit Message

Tafil Avdyli June 3, 2026, 3:23 p.m. UTC
When building completely from sstate (e.g. in pipeline), the
linux-yocto-fitimage recipe deploys from sstate even if the
INITRAMFS_IMAGE requires a rebuild.

Using dm-verity or verity image classes, the initramfs image must be
rebuilt after the rootfs. However, linux-yocto-fitimage:do_build was
skipped and went straight for do_deploy from sstate and deployed a
fitImage with an outdated initramfs with old roothash data while the
image and INITRAMFS_IMAGE were being built.

Skipping the do_deploy task in a sstate only build, successfully
triggers linux-yocto-fitimage:do_build after
INITRAMFS_IMAGE:do_image_complete.
This also follows fitimage.bbclass[1] from meta-oe.

[1]: https://git.openembedded.org/meta-openembedded/tree/meta-oe/classes/fitimage.bbclass?h=wrynose#n522

Signed-off-by: Tafil Avdyli <tafil@tafhub.de>
---
 meta/classes-recipe/kernel-fit-image.bbclass | 1 +
 1 file changed, 1 insertion(+)

Comments

Richard Purdie June 3, 2026, 4:22 p.m. UTC | #1
On Wed, 2026-06-03 at 17:23 +0200, Tafil Avdyli via lists.openembedded.org wrote:
> When building completely from sstate (e.g. in pipeline), the
> linux-yocto-fitimage recipe deploys from sstate even if the
> INITRAMFS_IMAGE requires a rebuild.
> 
> Using dm-verity or verity image classes, the initramfs image must be
> rebuilt after the rootfs. However, linux-yocto-fitimage:do_build was
> skipped and went straight for do_deploy from sstate and deployed a
> fitImage with an outdated initramfs with old roothash data while the
> image and INITRAMFS_IMAGE were being built.
> 
> Skipping the do_deploy task in a sstate only build, successfully
> triggers linux-yocto-fitimage:do_build after
> INITRAMFS_IMAGE:do_image_complete.
> This also follows fitimage.bbclass[1] from meta-oe.
> 
> [1]: https://git.openembedded.org/meta-openembedded/tree/meta-oe/classes/fitimage.bbclass?h=wrynose#n522
> 
> Signed-off-by: Tafil Avdyli <tafil@tafhub.de>
> ---
>  meta/classes-recipe/kernel-fit-image.bbclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass
> index ae8f3c6688..03272bab51 100644
> --- a/meta/classes-recipe/kernel-fit-image.bbclass
> +++ b/meta/classes-recipe/kernel-fit-image.bbclass
> @@ -241,3 +241,4 @@ do_deploy() {
>      fi
>  }
>  addtask deploy after do_compile before do_build
> +SSTATE_SKIP_CREATION:task-deploy = "1"

This is a workaround, it sounds like there is a missing dependency
somewhere to trigger the build needed?

Cheers,

Richard
Adrian Freihofer June 6, 2026, 10:48 a.m. UTC | #2
On Wed, 2026-06-03 at 17:22 +0100, Richard Purdie via
lists.openembedded.org wrote:
> On Wed, 2026-06-03 at 17:23 +0200, Tafil Avdyli via
> lists.openembedded.org wrote:
> > When building completely from sstate (e.g. in pipeline), the
> > linux-yocto-fitimage recipe deploys from sstate even if the
> > INITRAMFS_IMAGE requires a rebuild.
> > 
> > Using dm-verity or verity image classes, the initramfs image must
> > be
> > rebuilt after the rootfs. However, linux-yocto-fitimage:do_build
> > was
> > skipped and went straight for do_deploy from sstate and deployed a
> > fitImage with an outdated initramfs with old roothash data while
> > the
> > image and INITRAMFS_IMAGE were being built.
> > 
> > Skipping the do_deploy task in a sstate only build, successfully
> > triggers linux-yocto-fitimage:do_build after
> > INITRAMFS_IMAGE:do_image_complete.
> > This also follows fitimage.bbclass[1] from meta-oe.
> > 
> > [1]:
> > https://git.openembedded.org/meta-openembedded/tree/meta-oe/classes/fitimage.bbclass?h=wrynose#n522
> > 
> > Signed-off-by: Tafil Avdyli <tafil@tafhub.de>
> > ---
> >  meta/classes-recipe/kernel-fit-image.bbclass | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/meta/classes-recipe/kernel-fit-image.bbclass
> > b/meta/classes-recipe/kernel-fit-image.bbclass
> > index ae8f3c6688..03272bab51 100644
> > --- a/meta/classes-recipe/kernel-fit-image.bbclass
> > +++ b/meta/classes-recipe/kernel-fit-image.bbclass
> > @@ -241,3 +241,4 @@ do_deploy() {
> >      fi
> >  }
> >  addtask deploy after do_compile before do_build
> > +SSTATE_SKIP_CREATION:task-deploy = "1"
> 
> This is a workaround, it sounds like there is a missing dependency
> somewhere to trigger the build needed?

I agree with Richard, this is not the right fix. What are you exactly
doing and what are you then going to change before calling bitbake
again?

Regards,
Adrian


> 
> Cheers,
> 
> Richard
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#238102):
> https://lists.openembedded.org/g/openembedded-core/message/238102
> Mute This Topic: https://lists.openembedded.org/mt/119630574/4454582
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe:
> https://lists.openembedded.org/g/openembedded-core/unsub [
> adrian.freihofer@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
diff mbox series

Patch

diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass
index ae8f3c6688..03272bab51 100644
--- a/meta/classes-recipe/kernel-fit-image.bbclass
+++ b/meta/classes-recipe/kernel-fit-image.bbclass
@@ -241,3 +241,4 @@  do_deploy() {
     fi
 }
 addtask deploy after do_compile before do_build
+SSTATE_SKIP_CREATION:task-deploy = "1"