mbox series

[v3,0/6] wic: ship its tools, and add an SDK_FEATURES lever

Message ID 20260717133421.3510970-1-twoerner@gmail.com
Headers show
Series wic: ship its tools, and add an SDK_FEATURES lever | expand

Message

Trevor Woerner July 17, 2026, 1:34 p.m. UTC
wic shells out to a range of host-side tools but does not declare them,
so wherever it is installed as a package (rather than run from the
bitbake do_image_wic task, which has the wic-tools native sysroot on
PATH) it works only by chance depending on what the host has installed.

Patch 1 fixes that directly: wic gains RDEPENDS on the tools it runs, so
they are installed alongside it in every variant that packages it.

The rest of the series turns "what optional tools go into the SDK" into
an explicit, self-documenting choice. It introduces SDK_FEATURES, a list
in the same spirit as DISTRO_FEATURES / MACHINE_FEATURES / IMAGE_FEATURES:
a developer reads the setting and knows exactly what their SDK contains.

  - patch 2 adds SDK_FEATURES and gates wic on the "wic" feature (off by
    default);
  - patch 3 moves the existing (unconditional, arch-gated) qemu addition
    behind a "qemu" feature, on by default so nothing regresses;
  - patch 4 adds an opt-in "sbom" feature (SPDX + SBOM/CVE tooling);
  - patch 5 moves the cross-canadian gdb behind a "gdb" feature, on by
    default; binutils and gcc stay unconditional since a cross-compiler
    is intrinsic to an SDK;
  - patch 6 adds an opt-in "lldb" feature for developers who prefer it.

The default SDK_FEATURES is "gdb qemu", so an unmodified configuration
produces the same SDK as before. The intent is to present the full range
of knobs and let review settle which belong on by default; the split
across separate patches is deliberate so each can be debated on its own.
SDK_FEATURES is a plain list, so downstream layers can define their own
features (for example a cgdb feature in meta-openembedded) the same way.

changes in v3:
- replace the SDK_INCLUDE_WIC yes/no knob with the general SDK_FEATURES
  lever, and use it for qemu, sbom, gdb and lldb as well as wic
- the v2 "buildtools-extended-tarball: drop wic helper tools" patch was
  merged already and is dropped from the series

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
- gated wic in the SDK behind a knob instead of adding it unconditionally

Trevor Woerner (6):
  wic: add runtime dependencies on the tools it invokes
  nativesdk-packagegroup-sdk-host: add wic via a new SDK_FEATURES lever
  nativesdk-packagegroup-sdk-host: gate qemu behind SDK_FEATURES
  nativesdk-packagegroup-sdk-host: add an sbom SDK feature
  packagegroup-cross-canadian: gate gdb behind SDK_FEATURES
  nativesdk-packagegroup-sdk-host: add an lldb SDK feature

 meta/conf/bitbake.conf                        |  2 +-
 meta/conf/documentation.conf                  |  1 +
 .../nativesdk-packagegroup-sdk-host.bb        |  5 +++-
 .../packagegroup-cross-canadian.bb            |  2 +-
 meta/recipes-support/wic/wic_0.3.1.bb         | 23 +++++++++++++++++++
 5 files changed, 30 insertions(+), 3 deletions(-)