From: Trevor Woerner <twoerner@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v5 0/6] wic: ship the tools it invokes
Date: Fri, 31 Jul 2026 11:28:04 -0400 [thread overview]
Message-ID: <20260731152810.2641327-1-twoerner@gmail.com> (raw)
wic shells out to a range of host tools but does not declare them, so
wherever it is installed as a package it works only by chance depending
on what the host has installed. The do_image_wic task does not have that
problem: image_types_wic.bbclass makes the image recipe depend on the
-native recipe of each tool, so they are all in the image's own native
sysroot by the time wic runs. Nothing outside that task gets the same
treatment.
Patch 1 narrows wic-tools to staging wic's host tools: the target
bootloader firmware (syslinux, grub-efi, systemd-boot) it depended on
for the wic oe-selftest is now built by that oe-selftest instead. Which
firmware is needed depends on the plugins a .wks uses, so it belongs to
whoever supplies the .wks, not to wic-tools. Images already work that
way through WKS_FILE_DEPENDS in image_types_wic.bbclass, and now the
oe-selftest does too.
Patch 2 gives that tool list a single home. It was written out three
times -- in wic-tools, in image_types_wic.bbclass and (as of patch 3)
in the wic recipe -- and the copies had already drifted.
Patch 3 makes wic declare the host tools it runs as RDEPENDS, so they
are installed alongside it in every variant that packages it.
Patches 4 and 5 are follow-on cleanups of the wic oe-selftest: drop a
dead in-tree wic lookup, and drop the redundant per-test PATH overrides
that duplicated what the test setup already establishes.
Patch 6 fixes a dependency that has been on the wrong axis since 2019:
an image depends on syslinux-native when the build host is x86, but it
is the target that decides whether a .wks needs it, so an x86 image
built on a non-x86 host ends up with the bootloader but not the
installer. That is bug 16383, which carries the full history:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16383
Should wic-tools be renamed? Nothing but the wic oe-selftest has used it
since 2017, when do_image_wic stopped depending on it, and it already
sits in meta/recipes-core/meta/ alongside meta-environment,
meta-ide-support and meta-toolchain without following their naming.
meta-wic-support would fit better, but it is a user-visible rename, so I
would rather hear objections before doing it.
changes in v5:
- the SDK_FEATURES half of the v4 series (patches 5 to 10) is not here.
Reworking it to resolve features at the class level, as review asked,
turned it into a larger piece of work than the wic changes it was
travelling with, so it is being finished and sent as its own series.
- new patch 2: one shared list of the tools wic runs, replacing the
three copies that had drifted apart. Images gain tar-native and
util-linux-native, which only wic-tools staged before.
- new patch 6: gate syslinux-native on the target rather than the build
host [YOCTO #13276]
- wic RDEPENDS patch: drop the bootloader (grub, syslinux) RDEPENDS
entirely; wic declares only the host tools it runs. The bootloader
firmware wic copies into an image is the responsibility of whatever
drives wic (the oe-selftest, and image_types_wic.bbclass via
WKS_FILE_DEPENDS), not of the wic package. This also removes the
arch-gating that the v4 grub/syslinux RDEPENDS required.
- drastically trimmed the commit messages and in-tree comments
throughout the series
changes in v4:
- new patch 1: move the target bootloader firmware out of wic-tools and
stage it from the wic oe-selftest instead, so wic-tools carries only
the host tools wic runs
- new selftest cleanups (drop the dead COREBASE/scripts wic lookup and
the redundant per-test PATH overrides)
changes in v3:
- list the tools on all variants rather than only the nativesdk variant
changes in v2:
- dropped the wic-tools.inc refactor; folded the tool list into the wic
recipe
- reworked the buildtools-extended-tarball change into a plain removal
Trevor Woerner (6):
wic-tools: drop the target bootloader firmware
wic: add a shared helper tool list
wic: add runtime dependencies on the tools it invokes
oeqa/selftest/wic: drop dead COREBASE/scripts wic lookup
oeqa/selftest/wic: drop redundant per-test PATH overrides
wic: gate syslinux-native on the target, not the build host
meta/classes-recipe/image_types_wic.bbclass | 8 +-
meta/conf/wic-helper-tools.inc | 22 +
meta/lib/oeqa/selftest/cases/wic.py | 842 +++++++++-----------
meta/recipes-core/meta/wic-tools.bb | 12 +-
meta/recipes-support/wic/wic_0.3.1.bb | 3 +
5 files changed, 425 insertions(+), 462 deletions(-)
create mode 100644 meta/conf/wic-helper-tools.inc
--
2.50.0.173.g8b6f19ccfc3a
next reply other threads:[~2026-07-31 15:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 15:28 Trevor Woerner [this message]
2026-07-31 15:28 ` [PATCH v5 1/6] wic-tools: drop the target bootloader firmware Trevor Woerner
2026-07-31 15:28 ` [PATCH v5 2/6] wic: add a shared helper tool list Trevor Woerner
2026-07-31 15:28 ` [PATCH v5 3/6] wic: add runtime dependencies on the tools it invokes Trevor Woerner
2026-07-31 15:28 ` [PATCH v5 4/6] oeqa/selftest/wic: drop dead COREBASE/scripts wic lookup Trevor Woerner
2026-07-31 15:28 ` [PATCH v5 5/6] oeqa/selftest/wic: drop redundant per-test PATH overrides Trevor Woerner
2026-07-31 15:28 ` [PATCH v5 6/6] 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=20260731152810.2641327-1-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.