On Wed Feb 25, 2026 at 8:49 AM CET, Trevor Woerner via lists.openembedded.org
wrote:
> This series of patches splits wic out from oe-core into its own
> standalone utility. The wic utility will continue to be 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 wic patches
> - allow the tool to be used outside of The Yocto Project
> - provide more flexibility to explore other features, libraries,
> mechanisms, etc
>
> 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
>
> Previously, I had two separate patch sets for wic on oe-core: one
> to create a standalone utility, and one to re-implement variable
> sector-size handling. Both these were combined to create a combined "v5"
> patch set.
>
> In v6 the major changes are:
> - code cleanups to remove cases of "if sector_size and sector_size =
> 512" in places where we can guarantee sector_size will exist
> - cleanups to replace "getattr(var, 'sector_size', 512) or 512" since
> the 3rd arg to getattr() is already setting a default if the variable
> name is not found
> - many comment and commit comment improvements
> - error out if extraopts includes options to set the sector-size in wks
> files
> - patch 2 (add ufs class) was dropped
> - patches 3 and 4 were reversed (move/save wks files before removing the
> rest of wic from oe-core)
>
> For the patch sets up to and including v5:
> For the standalone patch set:
> v1: an RFC patchset was sent out, split up into small patches for easy
> review
> v2: add wic utility to list of native dependencies of
> image_types_wic.bbclass
> v3: squash all commits together to apply atomically
> v4: (does not exist)
> v5: rebase on latest master
> split commits back out acknowledging any bisection that lands
> between them will fail
> combine with sector-size patch
>
> For the sector-size patch:
> v1: initial patch set
> v2: add Mark as co-author of ufs class
> try to fix a build warning when not using wic
> v3: actually fix warning when not using wic
> v4: deprecate, but allow, WIC_SECTOR_SIZE to continue to be used to set
> the sector-size both from config files and the environment
> warn when both are used, but prefer cmdline value
> change partition type of sample wks to gpt
> v5: fix a bug where WIC_SECTOR_SIZE is not given anywhere
> combine with standalone patch set
>
Hi Trevor,
I have another one, a bit more tricky. Two errors:
2026-02-26 15:48:07,027 - oe-selftest - INFO - wic.ModifyTests.test_wic_cp_ext
(subunit.RemotedTestCase)
2026-02-26 15:48:07,027 - oe-selftest - INFO - ... FAIL
...
2026-02-26 15:48:07,032 - oe-selftest - INFO - 9: 73/77 513/669 (24.92s) (0
failed) (wic.ModifyTests.test_wic_cp_ext)
2026-02-26 15:48:07,032 - oe-selftest - INFO -
testtools.testresult.real._StringException: Traceback (most recent call last):
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/layers/openembedded-core/meta/lib/oeqa/selftest/cases/wic.py",
line 2127, in test_wic_cp_ext
self.assertNotIn("Ext2 inode is not a directory", result.output,
File "/usr/lib64/python3.12/unittest/case.py", line 1159, in assertNotIn
self.fail(self._formatMessage(msg, standardMsg))
File "/usr/lib64/python3.12/unittest/case.py", line 715, in fail
raise self.failureException(msg)
AssertionError: 'Ext2 inode is not a directory' unexpectedly found in 'debugfs
1.47.3 (8-Jul-2025)\n-l: Ext2 inode is not a directory' : Regression detected
(inode not a directory). Output:
debugfs 1.47.3 (8-Jul-2025)
-l: Ext2 inode is not a directory
...
2026-02-26 16:03:49,379 - oe-selftest - INFO - wic.Wic2.test_expand_mbr_image
(subunit.RemotedTestCase)
2026-02-26 16:03:49,380 - oe-selftest - INFO - ... FAIL
...
2026-02-26 16:03:49,380 - oe-selftest - INFO - 11: 31/52 617/669 (80.30s) (0
failed) (wic.Wic2.test_expand_mbr_image)
2026-02-26 16:03:49,380 - oe-selftest - INFO -
testtools.testresult.real._StringException: Traceback (most recent call last):
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/layers/openembedded-core/meta/lib/oeqa/core/decorator/__init__.py",
line 35, in wrapped_f
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/layers/openembedded-core/meta/lib/oeqa/selftest/cases/wic.py",
line 1830, in test_expand_mbr_image
runCmd(cmd)
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/layers/openembedded-core/meta/lib/oeqa/utils/commands.py",
line 214, in runCmd
raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" %
(command, result.status, exc_output))
AssertionError: Command 'wic write -n
/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native
--expand 1:0
/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs.wic
/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/deploy/images/qemux86-64/tmpwiadp9sz.wic.exp'
returned non-zero exit status 1:
[engine.py:589] INFO: copying unchanged partition 1
[engine.py:602] INFO: resizing ext partition 2
Traceback (most recent call last):
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/bin/wic",
line 8, in <module>
sys.exit(main())
~~~~^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/cli.py",
line 631, in main
return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/help.py",
line 83, in invoke_subcommand
subcmd[0](args, usage)
~~~~~~~~~^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/cli.py",
line 298, in wic_write_subcommand
engine.wic_write(args, args.native_sysroot)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/engine.py",
line 686, in wic_write
disk.write(args.target, args.expand)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/engine.py",
line 605, in write
exec_cmd("{} -pf {}".format(self.e2fsck, partfname))
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/misc.py",
line 116, in exec_cmd
return _exec_cmd(cmd_and_args, as_shell)[1]
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File
"/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/wic/misc.py",
line 103, in _exec_cmd
raise WicError("_exec_cmd: %s returned '%s' instead of 0\noutput: %s" % \
(cmd_and_args, ret, out))
wic.WicError: _exec_cmd:
/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-2592824/tmp/work/x86-64-v3-poky-linux/wic-tools/1.0/recipe-sysroot-native/sbin/e2fsck
-pf /tmp/wic-part2-44outsk3 returned '1' instead of 0
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3161
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3170
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3164
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3166
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3165
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/3169
Now the tricky part: this only seems happen on Fedora. I did test on
various versions, and it looks like all version from 39 to 43 show the
issue on the autobuilder. This was never seen in any oe-selftest-debian
build.
I tried another build without this series and I confirm the issue is
gone.
Can you have a look at what is wrong here?
Thanks,
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#232055):
https://lists.openembedded.org/g/openembedded-core/message/232055
Mute This Topic: https://lists.openembedded.org/mt/117991330/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-