Hi Mathieu,
The circular dependency occurs because when INITRAMFS_IMAGE_BUNDLE=1,
linux-yocto:do_deploy depends on the initramfs image completing first,
so adding an unconditional kernel deploy dependency on
do_write_qemuboot_conf created a cycle back into the initramfs image.
v4 fixes this by skipping the kernel deploy dependency when
INITRAMFS_IMAGE_BUNDLE=1:
do_write_qemuboot_conf[depends] += "${@ '' if
bb.utils.to_boolean(d.getVar('INITRAMFS_IMAGE_BUNDLE')) else
(d.getVar('KERNEL_DEPLOY_DEPEND') or '')}"
Tested with INITRAMFS_IMAGE_BUNDLE=1 using bitbake -g — no circular
dependency detected.
https://lists.openembedded.org/g/openembedded-core/topic/patch_v4_qemuboot_bbclass/119770767
Thanks,
Siva
On Wed, Jun 3, 2026 at 7:19 PM Siva Kumar Balasubramanian <
[email protected]> wrote:
> Hi Mathieu,
>
> I will look into this and get back to you.
>
> Thanks,
> Siva
>
> On Wed, Jun 3, 2026 at 6:03 PM Mathieu Dubois-Briand <
> [email protected]> wrote:
>
>> On Tue Jun 2, 2026 at 1:42 PM CEST, Siva Balasubramanian via
>> lists.openembedded.org wrote:
>> > do_write_qemuboot_conf had no dependency on the kernel deploy task,
>> > so if the kernel was rebuilt without invalidating the rootfs sstate,
>> > the task was skipped and .qemuboot.conf was left stale while new
>> > image artifacts were deployed with a new timestamp suffix.
>> >
>> > Add do_write_qemuboot_conf[depends] on KERNEL_DEPLOY_DEPEND using a
>> > Python expression to guard against the empty case, since baremetal
>> > images (which inherit qemuboot via baremetal-image.bbclass) do not
>> > set KERNEL_DEPLOY_DEPEND.
>> >
>> > KERNEL_DEPLOY_DEPEND is defined with ?= in image.bbclass and is
>> > already used by do_build[depends] for the same reason.
>> >
>> > Fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=14520
>> > Signed-off-by: Siva Balasubramanian <[email protected]>
>> > ---
>>
>> Hi Siva,
>>
>> Thanks for the new version.
>>
>> It looks like we still have a failing selftest:
>>
>> 2026-06-02 20:22:55,502 - oe-selftest - INFO -
>> fitimage.KernelFitImageRecipeTests.test_fit_image_sign_initramfs_bundle
>> (subunit.RemotedTestCase)
>> 2026-06-02 20:22:55,503 - oe-selftest - INFO - ... FAIL
>> ...
>> Initialising tasks...ERROR: 4014 unbuildable tasks were found.
>> These are usually caused by circular dependencies and any circular
>> dependency chains found will be printed below. Increase the debug level to
>> see a list of unbuildable tasks.
>>
>> Identifying dependency loops (this may take a short while)...
>>
>> ERROR:
>> Dependency loop #1 found:
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-core/images/core-image-minimal-initramfs.bb:do_image
>> (dependent Tasks ['core-image-minimal-initramfs.bb:do_flush_pseudodb',
>> 'core-image-minimal-initramfs.bb:do_image_qa',
>> 'core-image-minimal-initramfs.bb:do_write_qemuboot_conf',
>> 'core-image-minimal-initramfs.bb:do_rootfs',
>> 'core-image-minimal-initramfs.bb:do_create_rootfs_spdx'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-core/images/core-image-minimal-initramfs.bb:do_image_cpio
>> (dependent Tasks ['cpio_2.15.bb:do_populate_sysroot',
>> 'core-image-minimal-initramfs.bb:do_image'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-core/images/core-image-minimal-initramfs.bb:do_image_complete
>> (dependent Tasks ['u-boot_2026.04.bb:do_populate_sysroot',
>> 'core-image-minimal-initramfs.bb:do_image_cpio',
>> 'qemu-helper-native_1.0.bb:do_addto_recipe_sysroot',
>> 'core-image-minimal-initramfs.bb:do_image',
>> 'qemu-helper-native_1.0.bb:do_populate_sysroot',
>> 'qemu-native_10.2.0.bb:do_populate_sysroot', '
>> qemu-system-native_10.2.0.bb:do_populate_sysroot'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-kernel/linux/linux-yocto_6.18.bb:do_bundle_initramfs
>> (dependent Tasks ['linux-yocto_6.18.bb:do_install',
>> 'core-image-minimal-initramfs.bb:do_image_complete'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-kernel/linux/linux-yocto_6.18.bb:do_transform_bundled_initramfs
>> (dependent Tasks ['linux-yocto_6.18.bb:do_bundle_initramfs'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-kernel/linux/linux-yocto_6.18.bb:do_deploy
>> (dependent Tasks ['pigz_2.8.bb:do_populate_sysroot',
>> 'linux-yocto_6.18.bb:do_bundle_initramfs',
>> 'linux-yocto_6.18.bb:do_transform_bundled_initramfs',
>> 'linux-yocto_6.18.bb:do_install',
>> 'depmodwrapper-cross_1.0.bb:do_populate_sysroot',
>> 'linux-yocto_6.18.bb:do_packagedata', 'linux-yocto_6.18.bb:
>> do_populate_sysroot'])
>> Task
>> /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/layers/openembedded-core/meta/recipes-core/images/core-image-minimal-initramfs.bb:do_write_qemuboot_conf
>> (dependent Tasks ['core-image-minimal-initramfs.bb:do_rootfs',
>> 'linux-yocto_6.18.bb:do_deploy'])
>> ...
>>
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/4039
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3951
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3809
>>
>> Can you have a look at the issue?
>> The configuration used to reproduce can be found in the "OE Selftest:
>> Add layers" and "OE Selftest: Write config" steps.
>>
>> Thanks,
>> Mathieu
>>
>> --
>> Mathieu Dubois-Briand, Bootlin
>> Embedded Linux and Kernel engineering
>> https://bootlin.com
>>
>>
>
> --
>
> Sivakumar B
>
--
Sivakumar B
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#238596):
https://lists.openembedded.org/g/openembedded-core/message/238596
Mute This Topic: https://lists.openembedded.org/mt/119609347/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-