mbox series

[v9,0/5] standalone wic

Message ID 20260403183541.2631883-1-twoerner@gmail.com
Headers show
Series standalone wic | expand

Message

Trevor Woerner April 3, 2026, 6:35 p.m. UTC
The wic utility will no longer be integrated into the oe-core
repository. However, the wic utility will continue to exist under The
Yocto Project umbrella. This will allow wic to be more easily used
independently of bitbake and oe-core.

The new home of wic is: 
        https://git.yoctoproject.org/wic

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 -r wic 

The original patchset contained several more patches. Two patches that
were part of this set have already been accepted into oe-core, and
several patches that added "--vars <envfile>" options to many wic
invocations in the oe-selftests are no longer needed.

The order of the patches in this patchset is entirely different from
the order of the patches in previous patchsets. Although it had been
decided that it would be okay if patches in this series break the build
(then fix the build in later patches), it was pointed out that using
a different order would minimize (or eliminate) and breakages while
continuing to make small, incremental changes.

This version differs from previous versions as follows:
- the patch to provide the sector-size via the cmdline has already been
  accepted, therefore it is dropped from this patchset
- a patch to fix a long-standing sparse_copy() bug was accepted into
  oe-core already, therefore no changes are needed in this patchset to
  work around the issue
- wic will continue to look in `wic` and `scripts/lib/wic/canned-wks`
  directories for *wks files
- use bitbake to learn variable values if bitbake is available, previous
  patchsets refused to use bitbake to discover variable values and 
  insisted on always using a --vars file, even if the bitbake program
  was available
- by continuing to use bitbake (if available) most of the patches to
  tweak the oe-selftests are no longer required (since they are run in
  an environment where bitbake is available)
- reorder the patches in this series to minimize build breakages

In v8 the only patch was to upstream the sector-size cmdline option.

In v7 the code was changed to work around the sparse_copy() bug. That
bug was root-caused and sent upstream independently.

Changes in v6: 
- many code and comment changes based on feedback from v5 on the mailing
  list
- this version included many updates to add a cmdline argument for 
  sector-size, this support was added upstream independently
- a patch to add a ufs bbclass was dropped
- move the canned-wks files before removing wic so the histories of
  these files are preserved

Changes in v5: 
- rebased on latest master
- split commits out to make them easier to review
- a patch to add sector-size on the cmdline was added

Changes in v4: 
- deprecate but allow sector-size to be set via WIC_SECTOR_SIZE
- change partition type of sample wks file to gpt 

Changes in v3: 
- squash all commits into one 
- take another crack at trying to fix a warning if wic is not being used

Changes in v2: 
- try to fix a build warning when not using wic 
- add Mark as co-author of ufs class
- add wic utility to the list of native dependencies of
  image_types_wic.bbclass

Trevor Woerner (5):
  wic: add recipe
  oe-selftest/cases/wic.py: update WicTestCase
  selftest/cases/wic.py: remove test_sparse_copy
  wic: move canned *wks files
  wic: remove to standalone repository

 meta/classes-recipe/image_types_wic.bbclass   |    4 +-
 meta/conf/distro/include/maintainers.inc      |    3 +-
 meta/lib/oeqa/selftest/cases/wic.py           |   64 +-
 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                     |  718 ----------
 scripts/lib/wic/filemap.py                    |  590 --------
 scripts/lib/wic/help.py                       | 1197 -----------------
 scripts/lib/wic/ksparser.py                   |  322 -----
 scripts/lib/wic/misc.py                       |  272 ----
 scripts/lib/wic/partition.py                  |  615 ---------
 scripts/lib/wic/pluginbase.py                 |  144 --
 scripts/lib/wic/plugins/imager/direct.py      |  702 ----------
 .../wic/plugins/source/bootimg_biosplusefi.py |  213 ---
 scripts/lib/wic/plugins/source/bootimg_efi.py |  436 ------
 .../wic/plugins/source/bootimg_partition.py   |  162 ---
 .../lib/wic/plugins/source/bootimg_pcbios.py  |  484 -------
 scripts/lib/wic/plugins/source/empty.py       |   89 --
 .../lib/wic/plugins/source/extra_partition.py |  146 --
 .../wic/plugins/source/isoimage_isohybrid.py  |  464 -------
 scripts/lib/wic/plugins/source/rawcopy.py     |  115 --
 scripts/lib/wic/plugins/source/rootfs.py      |  236 ----
 scripts/wic                                   |  641 ---------
 39 files changed, 58 insertions(+), 7588 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