From: Trevor Woerner <twoerner@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [RFC][PATCH v2 0/9] standalone wic
Date: Mon, 2 Feb 2026 12:07:51 -0500 [thread overview]
Message-ID: <20260202170800.4172778-1-twoerner@gmail.com> (raw)
This series of patches explores the possibility of splitting wic out
from oe-core into its own standalone utility. The wic utility will
continue to fall under The Yocto Project umbrella, but will no longer
be integrated into the project as part of oe-core. The ultimate goal is
to make wic a completely independent tool, hosted on PyPI, with its own
tests, development roadmap, and releases.
Some benefits include:
- relieving the oe-core maintainers from having to review, understand,
merge, or reject wic patches
- allow the tool to be used outside of The Yocto Project for generating
Linux images
- provide more flexibility to explore other features, libraries,
mechanisms, etc
The initial task of splitting wic out into its own repository was
performed with the help of AI. It was checked, and subsequent work was
done without AI.
These changes have been tested with oe-selftest as follows:
$ sudo .../layers/openembedded-core/scripts/runqemu-gen-tapdevs <my numeric group id> 4
$ oe-selftest -v -r wic
On my machine my oe-selftest results for an unmodified oe-core give:
successes=93, skipped=1, failures=0, errors=1
with these patches I get:
successes=91, skipped=1, failures=2, errors=0
There are 2 tests that need to be fixed, but it would be great to get
some feedback on this work, and to see what the AB thinks of it so far.
I have also done some adhoc testing with meta-rockchip and
meta-raspberrypi.
Should this work eventually make its way to oe-core, it would need to
be squashed into a single commit otherwise builds will break when only
partially applied. They have been submitted here in this RFC series
separately to make review easier.
Trevor Woerner (9):
remove wic
provide oe-core wks files
add wic recipe
oe-selftest/cases/wic.py: update WicTestCase
oe-selftest -r wic.CLITests -> PASS
oe-selftest -r wic.ModifyTests -> PASS (except 1)
oe-selftest -r wic.Wic -> PASS
oe-selftest -r wic.Wic2 (non-runqemu) -> PASS
oe-selftest -r wic.Wic2 (runqemu) -> PASS (mostly)
meta/classes-recipe/image_types_wic.bbclass | 8 +-
meta/conf/distro/include/maintainers.inc | 3 +-
meta/lib/oeqa/selftest/cases/wic.py | 360 ++---
meta/recipes-core/meta/wic-tools.bb | 1 +
meta/recipes-support/wic/wic_0.3.0.bb | 18 +
.../canned-wks => meta/wic}/common.wks.inc | 0
.../wic}/directdisk-bootloader-config.cfg | 0
.../wic}/directdisk-bootloader-config.wks | 0
.../wic}/directdisk-gpt.wks | 0
.../wic}/directdisk-multi-rootfs.wks | 0
.../canned-wks => meta/wic}/directdisk.wks | 0
.../wic}/efi-bootdisk.wks.in | 0
.../wic}/efi-uki-bootdisk.wks.in | 0
.../wic/canned-wks => meta/wic}/mkefidisk.wks | 0
.../canned-wks => meta/wic}/mkhybridiso.wks | 0
.../canned-wks => meta/wic}/qemuloongarch.wks | 0
.../wic/canned-wks => meta/wic}/qemuriscv.wks | 0
.../wic}/qemux86-directdisk.wks | 0
.../wic}/sdimage-bootpart.wks | 0
.../wic}/systemd-bootdisk.wks | 0
scripts/lib/wic/__init__.py | 10 -
scripts/lib/wic/engine.py | 681 ----------
scripts/lib/wic/filemap.py | 583 --------
scripts/lib/wic/help.py | 1188 -----------------
scripts/lib/wic/ksparser.py | 322 -----
scripts/lib/wic/misc.py | 266 ----
scripts/lib/wic/partition.py | 562 --------
scripts/lib/wic/pluginbase.py | 144 --
scripts/lib/wic/plugins/imager/direct.py | 710 ----------
.../wic/plugins/source/bootimg_biosplusefi.py | 213 ---
scripts/lib/wic/plugins/source/bootimg_efi.py | 435 ------
.../wic/plugins/source/bootimg_partition.py | 162 ---
.../lib/wic/plugins/source/bootimg_pcbios.py | 483 -------
scripts/lib/wic/plugins/source/empty.py | 89 --
.../lib/wic/plugins/source/extra_partition.py | 134 --
.../wic/plugins/source/isoimage_isohybrid.py | 463 -------
scripts/lib/wic/plugins/source/rawcopy.py | 115 --
scripts/lib/wic/plugins/source/rootfs.py | 236 ----
scripts/wic | 600 ---------
39 files changed, 207 insertions(+), 7579 deletions(-)
create mode 100644 meta/recipes-support/wic/wic_0.3.0.bb
rename {scripts/lib/wic/canned-wks => meta/wic}/common.wks.inc (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/directdisk-bootloader-config.cfg (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/directdisk-bootloader-config.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/directdisk-gpt.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/directdisk-multi-rootfs.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/directdisk.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/efi-bootdisk.wks.in (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/efi-uki-bootdisk.wks.in (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/mkefidisk.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/mkhybridiso.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/qemuloongarch.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/qemuriscv.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/qemux86-directdisk.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/sdimage-bootpart.wks (100%)
rename {scripts/lib/wic/canned-wks => meta/wic}/systemd-bootdisk.wks (100%)
delete mode 100644 scripts/lib/wic/__init__.py
delete mode 100644 scripts/lib/wic/engine.py
delete mode 100644 scripts/lib/wic/filemap.py
delete mode 100644 scripts/lib/wic/help.py
delete mode 100644 scripts/lib/wic/ksparser.py
delete mode 100644 scripts/lib/wic/misc.py
delete mode 100644 scripts/lib/wic/partition.py
delete mode 100644 scripts/lib/wic/pluginbase.py
delete mode 100644 scripts/lib/wic/plugins/imager/direct.py
delete mode 100644 scripts/lib/wic/plugins/source/bootimg_biosplusefi.py
delete mode 100644 scripts/lib/wic/plugins/source/bootimg_efi.py
delete mode 100644 scripts/lib/wic/plugins/source/bootimg_partition.py
delete mode 100644 scripts/lib/wic/plugins/source/bootimg_pcbios.py
delete mode 100644 scripts/lib/wic/plugins/source/empty.py
delete mode 100644 scripts/lib/wic/plugins/source/extra_partition.py
delete mode 100644 scripts/lib/wic/plugins/source/isoimage_isohybrid.py
delete mode 100644 scripts/lib/wic/plugins/source/rawcopy.py
delete mode 100644 scripts/lib/wic/plugins/source/rootfs.py
delete mode 100755 scripts/wic
--
2.51.0
next reply other threads:[~2026-02-02 17:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-02 17:07 Trevor Woerner [this message]
2026-02-02 17:07 ` [RFC][PATCH v2 1/9] remove wic Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 2/9] provide oe-core wks files Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 3/9] add wic recipe Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 4/9] oe-selftest/cases/wic.py: update WicTestCase Trevor Woerner
2026-02-02 17:07 ` [RFC][PATCH v2 5/9] oe-selftest -r wic.CLITests -> PASS Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 6/9] oe-selftest -r wic.ModifyTests -> PASS (except 1) Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 7/9] oe-selftest -r wic.Wic -> PASS Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:07 ` [RFC][PATCH v2 8/9] oe-selftest -r wic.Wic2 (non-runqemu) " Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-02 17:08 ` [RFC][PATCH v2 9/9] oe-selftest -r wic.Wic2 (runqemu) -> PASS (mostly) Trevor Woerner
2026-02-02 17:16 ` Patchtest results for " patchtest
2026-02-03 13:56 ` [OE-core] [RFC][PATCH v2 0/9] standalone wic Mathieu Dubois-Briand
2026-02-03 15:37 ` 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=20260202170800.4172778-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox