From: Trevor Woerner <twoerner@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v6 3/6] wic: add runtime dependencies on the tools it invokes
Date: Sat, 1 Aug 2026 22:09:57 -0400 [thread overview]
Message-ID: <20260802021000.2886095-4-twoerner@gmail.com> (raw)
In-Reply-To: <20260802021000.2886095-1-twoerner@gmail.com>
wic shells out to a range of host tools (parted, mkfs.*, mcopy, sfdisk,
and more) but, since the recipe was created, has declared none of them,
so an installed wic works only by chance depending on what the host
provides. Declare them as RDEPENDS so they are installed with wic.
The wic image type and wic-tools each carried a copy of that same list,
and the copies had drifted: only wic-tools staged tar-native and
util-linux-native. Neither needs a list of its own now. native.bbclass
makes a native recipe's do_populate_sysroot depend on its RDEPENDS, so
depending on wic-native stages the lot.
Three entries stay written out. cdrtools has only a native recipe, so
there is no package a target or nativesdk wic could name, even though
wic does run mkisofs. grub is bootloader territory and belongs to
whatever drives wic. pseudo is wic-tools staging what the oe-selftest
needs.
AI-Generated: codex/claude-opus 5 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
changes in v6:
- carry the tool list here directly; the shared
conf/wic-helper-tools.inc that v5 added is gone
- fold the image_types_wic.bbclass and wic-tools change into this patch,
so the one list is defined and used in the same place: both now take
the tools from wic-native instead of repeating them
changes in v5:
- take the tool list from the shared conf/wic-helper-tools.inc
- drop the bootloader (grub, syslinux) RDEPENDS entirely; declare only
the host tools wic runs
- trimmed the commit message; dropped the in-recipe comments
changes in v4:
- gate grub to x86 and aarch64; move syslinux into the same arch-gated
appends
- also depend on syslinux-isolinux for isolinux.bin
changes in v3:
- list the tools on all variants rather than only the nativesdk variant
changes in v2:
- merge the tool list into the wic recipe as RDEPENDS; drop the separate
.inc
---
meta/classes-recipe/image_types_wic.bbclass | 4 ++--
meta/recipes-core/meta/wic-tools.bb | 5 +----
meta/recipes-support/wic/wic_0.3.1.bb | 12 ++++++++++++
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass
index 671577cc062b..2dbe89fd899a 100644
--- a/meta/classes-recipe/image_types_wic.bbclass
+++ b/meta/classes-recipe/image_types_wic.bbclass
@@ -112,14 +112,14 @@ do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
WKS_FILE_CHECKSUM = "${@wks_checksums(d.getVar('WKS_FILES').split(), d.getVar('WKS_SEARCH_PATH')) if '${USING_WIC}' else ''}"
do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}"
-do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r in ('wic', 'parted', 'gptfdisk', 'dosfstools', 'mtools'))}"
+do_image_wic[depends] += "wic-native:do_populate_sysroot"
# We ensure all artfacts are deployed (e.g virtual/bootloader)
do_image_wic[recrdeptask] += "do_deploy"
do_image_wic[deptask] += "do_image_complete"
WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
-WKS_FILE_DEPENDS_DEFAULT += "wic-native bmaptool-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native erofs-utils-native"
+WKS_FILE_DEPENDS_DEFAULT += "cdrtools-native"
WKS_FILE_DEPENDS_BOOTLOADERS = ""
WKS_FILE_DEPENDS_BOOTLOADERS:aarch64 = "grub-efi systemd-boot"
WKS_FILE_DEPENDS_BOOTLOADERS:arm = "systemd-boot"
diff --git a/meta/recipes-core/meta/wic-tools.bb b/meta/recipes-core/meta/wic-tools.bb
index a4b7669137dd..4a4473469b7f 100644
--- a/meta/recipes-core/meta/wic-tools.bb
+++ b/meta/recipes-core/meta/wic-tools.bb
@@ -4,10 +4,7 @@ LICENSE = "MIT"
DEPENDS = "\
wic-native \
- parted-native gptfdisk-native dosfstools-native \
- mtools-native bmaptool-native grub-native cdrtools-native \
- btrfs-tools-native squashfs-tools-native pseudo-native \
- e2fsprogs-native util-linux-native tar-native erofs-utils-native \
+ cdrtools-native grub-native pseudo-native \
"
DEPENDS:append:x86 = " syslinux-native"
DEPENDS:append:x86-64 = " syslinux-native"
diff --git a/meta/recipes-support/wic/wic_0.3.1.bb b/meta/recipes-support/wic/wic_0.3.1.bb
index d9b4cc05c4bd..116b0a2cd292 100644
--- a/meta/recipes-support/wic/wic_0.3.1.bb
+++ b/meta/recipes-support/wic/wic_0.3.1.bb
@@ -15,6 +15,18 @@ RDEPENDS:${PN} += " \
python3-json \
python3-logging \
python3-misc \
+ parted \
+ gptfdisk \
+ dosfstools \
+ mtools \
+ bmaptool \
+ btrfs-tools \
+ squashfs-tools \
+ e2fsprogs \
+ e2fsprogs-resize2fs \
+ util-linux \
+ tar \
+ erofs-utils \
"
BBCLASSEXTEND = "native nativesdk"
--
2.50.0.173.g8b6f19ccfc3a
next prev parent reply other threads:[~2026-08-02 2:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 2:09 [PATCH v6 0/6] wic: ship the tools it invokes Trevor Woerner
2026-08-02 2:09 ` [PATCH v6 1/6] wic-tools: drop the target bootloader firmware Trevor Woerner
2026-08-02 2:09 ` [PATCH v6 2/6] image_types_wic, wic-tools: drop the obsolete cross-binutils dependency Trevor Woerner
2026-08-02 2:09 ` Trevor Woerner [this message]
2026-08-02 2:09 ` [PATCH v6 4/6] oeqa/selftest/wic: drop dead COREBASE/scripts wic lookup Trevor Woerner
2026-08-02 2:09 ` [PATCH v6 5/6] oeqa/selftest/wic: drop redundant per-test PATH overrides Trevor Woerner
2026-08-02 2:10 ` [PATCH v6 6/6] image_types_wic: gate syslinux-native on the target, not the build host Trevor Woerner
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=20260802021000.2886095-4-twoerner@gmail.com \
--to=twoerner@gmail.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