From: "'Jan Kiszka' via isar-users" <isar-users@googlegroups.com>
To: Zhihang Wei <wzh@ilbers.de>, isar-users@googlegroups.com
Subject: Re: [PATCH v7 3/3] meta: Deploy image build artifacts into distro- and image-specific subdirs
Date: Mon, 2 Mar 2026 10:45:50 +0100 [thread overview]
Message-ID: <d89d4970-52ec-430e-a0e6-b28bc96f4489@siemens.com> (raw)
In-Reply-To: <20260226162613.1954014-4-wzh@ilbers.de>
On 26.02.26 17:26, Zhihang Wei wrote:
> From: Ilia Skochilov <iskochilov@ilbers.de>
>
> When building different distros or images for the same machine (e.g.
> phyboard-mira-bullseye and phyboard-mira-bookworm, or isar-image-ci
> and isar-image-base), artifacts with identical names (e.g. DTB files)
> may be deployed to the same location, resulting file conflicts and
> build failures.
>
> Deploy image build artifacts into a subdirectory named
> ${DISTRO}-${IMAGE_PN} to avoid such collisions.
>
> Since the directory now encodes the distro and image name, remove the
> ${DISTRO} and ${IMAGE_PN} prefixes from artifact filenames to
> keep the names short and clear.
>
> Fixes test_dtb_deploy_distros testcase:
>
> ERROR: mc:phyboard-mira-bookworm:isar-image-base-1.0-r0 do_copy_boot_files: The recipe isar-image-base is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
> NOTE: recipe isar-image-base-1.0-r0: task do_copy_boot_files: Failed
> build/tmp/deploy/images/phyboard-mira/imx6q-phytec-mira-rdk-nand.dtb
> (not matched to any task)
> Please verify which recipe should provide the above files.
>
> Signed-off-by: Ilia Skochilov <iskochilov@ilbers.de>
> Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
> Signed-off-by: Badrikesh Prusty <badrikesh.prusty@siemens.com>
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
Were really all those people involved in developing and signing off this
change?
> Signed-off-by: Zhihang Wei <wzh@ilbers.de>
> ---
> RECIPE-API-CHANGELOG.md | 63 +++++++++++++++++++
> .../installer-add-rootfs.bbclass | 9 +--
> meta/classes-recipe/image.bbclass | 11 ++--
> .../imagetypes_container.bbclass | 2 +-
> meta/conf/bitbake.conf | 3 +-
> .../plugins/source/isoimage-isohybrid-isar.py | 2 +-
> testsuite/cibase.py | 2 +-
> testsuite/citest.py | 7 ++-
> testsuite/start_vm.py | 2 +-
> 9 files changed, 84 insertions(+), 17 deletions(-)
>
> diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
> index 0bad8a44..bc7abb37 100644
> --- a/RECIPE-API-CHANGELOG.md
> +++ b/RECIPE-API-CHANGELOG.md
> @@ -962,3 +962,66 @@ INSTALLER_UNATTENDED_ABORT_ENABLE = "1"
> # Optional: set countdown timeout in seconds (default 5)
> INSTALLER_UNATTENDED_ABORT_TIMEOUT = "5"
> ```
> +
> +### Change DEPLOY_DIR_IMAGE path and artifacts naming
> +
> +Change DEPLOY_DIR_IMAGE from ${DEPLOY_DIR}/images/${MACHINE} to
> +${DEPLOY_DIR}/images/${MACHINE}/${DISTRO}-${IMAGE_PN}.
> +
> +When building different distros with the same machine the following
> +error occurs:
> +
> +do_copy_boot_files: The recipe isar-image-base is trying to install
> +files into a shared area when those files already exists. It happens
> +when some files have the same names (e.g., dtb files) for different
> +distros.
> +
> +To prevent such collisions, image artifacts are now deployed into a
> +distro- and image-specific subdirectory.
> +
> +Additionally, artifact filenames have been shortened by removing the
> +${DISTRO} and ${IMAGE_PN} prefix, since this information is now
> +encoded in the directory path.
> +
> +Example 1: Build isar-image-base (phyboard-mira, debian-bookworm)
> +Under "build/tmp/deploy/images/":
> +Before:
> +phyboard-mira/imx6q-phytec-mira-rdk-nand.dtb
> +phyboard-mira/isar-image-base-debian-bookworm-phyboard-mira-initrd.img
> +phyboard-mira/isar-image-base-debian-bookworm-phyboard-mira-vmlinuz
> +phyboard-mira/isar-image-base-debian-bookworm-phyboard-mira.dpkg_status
> +phyboard-mira/isar-image-base-debian-bookworm-phyboard-mira.ubi
> +
> +After:
> +phyboard-mira/debian-bookworm-isar-image-base/imx6q-phytec-mira-rdk-nand.dtb
> +phyboard-mira/debian-bookworm-isar-image-base/initrd.img
> +phyboard-mira/debian-bookworm-isar-image-base/vmlinuz
> +phyboard-mira/debian-bookworm-isar-image-base/phyboard-mira.dpkg_status
> +phyboard-mira/debian-bookworm-isar-image-base/phyboard-mira.ubi
> +
> +Example 2: Build isar-image-ci (qemuamd64, debian-bookworm)
> +Under "build/tmp/deploy/images/":
> +Before:
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64-initrd.img
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64-vmlinuz
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64.dpkg_status
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64.manifest
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64.wic
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64.wic.bmap
> +qemuamd64/isar-image-ci-debian-bookworm-qemuamd64.wic.manifest
> +
> +After:
> +qemuamd64/debian-bookworm-isar-image-ci/initrd.img
> +qemuamd64/debian-bookworm-isar-image-ci/vmlinuz
> +qemuamd64/debian-bookworm-isar-image-ci/qemuamd64.dpkg_status
> +qemuamd64/debian-bookworm-isar-image-ci/qemuamd64.manifest
> +qemuamd64/debian-bookworm-isar-image-ci/qemuamd64.wic
> +qemuamd64/debian-bookworm-isar-image-ci/qemuamd64.wic.bmap
> +qemuamd64/debian-bookworm-isar-image-ci/qemuamd64.wic.manifest
> +
> +Artifacts that do not belong to a full image (e.g. isar-image-base,
> +isar-image-ci) remain unchanged. For example, a customized initramfs
> +built independently is not affected.
> +
> +This change affects the location and naming of build artifacts and must
> +be taken into account by downstream users.
The chosen pattern looks reasonable to me. I'm just wondering what OE
does when generating multiple images per target, and why it did not use
something similar. Any ideas?
Jan
--
Siemens AG, Foundational Technologies
Linux Expert Center
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/d89d4970-52ec-430e-a0e6-b28bc96f4489%40siemens.com.
next prev parent reply other threads:[~2026-03-02 9:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-26 16:26 Deploy DTBs and other image artifacts into subdirs to avoid conflicts Zhihang Wei
2026-02-26 16:26 ` [PATCH v7 1/3] wic: Obtain real machine name in isoimage source plugin Zhihang Wei
2026-02-26 16:26 ` [PATCH v7 2/3] testsuite: Add testcases to check dtb deployment Zhihang Wei
2026-02-26 16:26 ` [PATCH v7 3/3] meta: Deploy image build artifacts into distro- and image-specific subdirs Zhihang Wei
2026-03-02 9:45 ` 'Jan Kiszka' via isar-users [this message]
2026-03-03 10:22 ` Zhihang Wei
2026-03-03 12:50 ` 'Jan Kiszka' via isar-users
2026-03-03 13:35 ` Zhihang Wei
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=d89d4970-52ec-430e-a0e6-b28bc96f4489@siemens.com \
--to=isar-users@googlegroups.com \
--cc=jan.kiszka@siemens.com \
--cc=wzh@ilbers.de \
/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