Openembedded Core Discussions
 help / color / mirror / Atom feed
From: AdrianF <adrian.freihofer@siemens.com>
To: openembedded-core@lists.openembedded.org
Cc: Adrian Freihofer <adrian.freihofer@siemens.com>
Subject: [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task
Date: Sun,  2 Aug 2026 21:52:48 +0200	[thread overview]
Message-ID: <20260802195324.64533-2-adrian.freihofer@siemens.com> (raw)
In-Reply-To: <20260802195324.64533-1-adrian.freihofer@siemens.com>

From: Adrian Freihofer <adrian.freihofer@siemens.com>

There seems to be still some corner cases where the qemuboot.conf file
is not deployed reliably.

Previously do_write_qemuboot_conf wrote its output into IMGDEPLOYDIR,
which is shared with do_image_complete. The conf file only reached
DEPLOY_DIR_IMAGE when do_image_complete ran, so for example running:

  bitbake <image> -c write_qemuboot_conf --force

had no visible effect on the deployed conf.

Introduce a dedicated QEMUBOOTCONFDEPLOYDIR and register
do_write_qemuboot_conf as a proper SSTATE task with its own
sstate-inputdirs/sstate-outputdirs pair pointing at DEPLOY_DIR_IMAGE.
A matching do_write_qemuboot_conf_setscene task handles sstate restores.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
 meta/classes-recipe/qemuboot.bbclass | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/meta/classes-recipe/qemuboot.bbclass b/meta/classes-recipe/qemuboot.bbclass
index d1794c7899..1ced9b9b73 100644
--- a/meta/classes-recipe/qemuboot.bbclass
+++ b/meta/classes-recipe/qemuboot.bbclass
@@ -126,6 +126,11 @@ QB_DRIVE_TYPE ?= "/dev/sd"
 
 inherit image-artifact-names
 
+# Dedicated deploy directory for the qemuboot config, separate from IMGDEPLOYDIR
+# so that do_write_qemuboot_conf can be its own sstate task and deploy its
+# output to DEPLOY_DIR_IMAGE independently of do_image_complete.
+QEMUBOOTCONFDEPLOYDIR = "${WORKDIR}/deploy-${PN}-qemubootconf"
+
 # Create qemuboot.conf
 addtask do_write_qemuboot_conf after do_rootfs before do_image
 do_write_qemuboot_conf[depends] += "${@ '' if bb.utils.to_boolean(d.getVar('INITRAMFS_IMAGE_BUNDLE')) else (d.getVar('KERNEL_DEPLOY_DEPEND') or '')}"
@@ -140,12 +145,22 @@ def qemuboot_vars(d):
 
 do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}"
 do_write_qemuboot_conf[vardepsexclude] += "TOPDIR"
+do_write_qemuboot_conf[dirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[cleandirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[stamp-extra-info] = "${MACHINE_ARCH}"
+SSTATETASKS += "do_write_qemuboot_conf"
+do_write_qemuboot_conf[sstate-inputdirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+python do_write_qemuboot_conf_setscene () {
+    sstate_setscene(d)
+}
+addtask do_write_qemuboot_conf_setscene
 python do_write_qemuboot_conf() {
     import configparser
 
-    qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_NAME'))
+    qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('QEMUBOOTCONFDEPLOYDIR'), d.getVar('IMAGE_NAME'))
     if d.getVar('IMAGE_LINK_NAME'):
-        qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
+        qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('QEMUBOOTCONFDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
     else:
         qemuboot_link = ""
     finalpath = d.getVar("DEPLOY_DIR_IMAGE")
-- 
2.55.0



  reply	other threads:[~2026-08-02 19:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-02 19:52 [PATCH 00/14] devtool ide-sdk: clang and lldb support AdrianF
2026-08-02 19:52 ` AdrianF [this message]
2026-08-02 21:16   ` [OE-core] [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task Richard Purdie
2026-08-02 19:52 ` [PATCH 02/14] oe-selftest: devtool: use stat for reading user/group names in ide-sdk tests AdrianF
2026-08-02 19:52 ` [PATCH 03/14] devtool: ide-sdk: fix duplicate -p flag in _target_ssh_args AdrianF
2026-08-02 19:52 ` [PATCH 04/14] devtool: ide-sdk: fix $@ overwritten by set in install_and_deploy script AdrianF
2026-08-02 19:52 ` [PATCH 05/14] devtool: ide-sdk: fix meson compile_commands.json AdrianF
2026-08-02 19:52 ` [PATCH 06/14] oe-selftest: devtool ide-sdk: cover breakpoints in exe, header and library AdrianF
2026-08-02 19:52 ` [PATCH 07/14] oe-selftest: devtool ide-sdk: add real debug coverage for meson+code AdrianF
2026-08-02 19:52 ` [PATCH 08/14] devtool: ide-sdk debugger back-end abstraction AdrianF
2026-08-02 19:52 ` [PATCH 09/14] devtool: ide-sdk: wait for gdbserver port before returning AdrianF
2026-08-02 19:52 ` [PATCH 10/14] devtool: ide-sdk add LLDB support for clang toolchain AdrianF
2026-08-02 19:52 ` [PATCH 11/14] devtool: ide-sdk: add LLDB support for ide=none (clang toolchain) AdrianF
2026-08-02 19:52 ` [PATCH 12/14] meta-selftest: refactor cpp examples into .inc files and add clang variants AdrianF
2026-08-02 19:53 ` [PATCH 13/14] oe-selftest: devtool ide-sdk: add clang/LLDB test AdrianF
2026-08-02 19:53 ` [PATCH 14/14] oe-selftest: devtool ide-sdk: add test for ide=none LLDB/clang support AdrianF
2026-08-03  8:01 ` [OE-core] [PATCH 00/14] devtool ide-sdk: clang and lldb support Richard Purdie

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=20260802195324.64533-2-adrian.freihofer@siemens.com \
    --to=adrian.freihofer@siemens.com \
    --cc=openembedded-core@lists.openembedded.org \
    /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