From: Trevor Woerner <twoerner@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v3 2/6] nativesdk-packagegroup-sdk-host: add wic via a new SDK_FEATURES lever
Date: Fri, 17 Jul 2026 09:34:17 -0400 [thread overview]
Message-ID: <20260717133421.3510970-3-twoerner@gmail.com> (raw)
In-Reply-To: <20260717133421.3510970-1-twoerner@gmail.com>
wic is useful from an installed SDK for assembling or inspecting a wic
image, but adding it is not free: nativesdk-wic pulls in the tools it
runs (parted, gptfdisk, dosfstools, mtools, bmaptool, grub, btrfs-tools,
squashfs-tools, e2fsprogs, util-linux, tar, erofs-utils, and syslinux on
x86). Most SDKs do not need any of that, so wic should not be in the
host packagegroup unconditionally.
Introduce SDK_FEATURES, a list of optional additions to the SDK host
tools, in the same spirit as DISTRO_FEATURES, MACHINE_FEATURES and
IMAGE_FEATURES: a developer reads the setting and knows exactly what is
being included.
Gate wic in the host packagegroup on the "wic" feature, which is not
enabled by default. A configuration that wants wic in its SDK adds the
"wic" feature to SDK_FEATURES and gets a working wic, together with the
tools it invokes, in the SDK.
AI-Generated: codex/claude-opus 4.8 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
changes in v3:
- replace the SDK_INCLUDE_WIC yes/no knob with a new general SDK_FEATURES list; gate wic on the "wic" feature
- add the SDK_FEATURES default and documentation.conf entry
changes in v2:
- gate nativesdk-wic behind a new SDK_INCLUDE_WIC knob (default "no") instead of adding it unconditionally as in v1
---
meta/conf/bitbake.conf | 2 +-
meta/conf/documentation.conf | 1 +
.../packagegroups/nativesdk-packagegroup-sdk-host.bb | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index bdf37d0da247..b7bc74887b69 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -898,6 +898,7 @@ OES_BITBAKE_CONF = "1"
MACHINE_FEATURES:append = " ${@oe.utils.filter_default_features('MACHINE_FEATURES', d)}"
SDK_MACHINE_FEATURES ?= ""
+SDK_FEATURES ?= ""
DISTRO_FEATURES:append = " ${@oe.utils.filter_default_features('DISTRO_FEATURES', d)}"
@@ -992,4 +993,3 @@ MULTILIB_VARIANTS ??= ""
# what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't
# support unihashes.
BB_UNIHASH ?= "${BB_TASKHASH}"
-
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index 842cf31739de..604c51322813 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -361,6 +361,7 @@ SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that t
SDK_ARCH[doc] = "The target architecture for the SDK."
SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
+SDK_FEATURES[doc] = "The list of optional features to add to the standalone SDK's host tools, for example 'wic'. Analogous to IMAGE_FEATURES but for the SDK host side."
SDK_NAME[doc] = "The base name for SDK output files."
SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'."
diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
index 51e48f250b19..c2974a57fe3e 100644
--- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
+++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -29,6 +29,7 @@ RDEPENDS:${PN} = "\
nativesdk-bison \
nativesdk-flex \
nativesdk-perl-module-integer \
+ ${@bb.utils.contains('SDK_FEATURES', 'wic', 'nativesdk-wic', '', d)} \
"
RDEPENDS:${PN}:darwin = "\
--
2.50.0.173.g8b6f19ccfc3a
next prev parent reply other threads:[~2026-07-17 13:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-17 13:34 [PATCH v3 0/6] wic: ship its tools, and add an SDK_FEATURES lever Trevor Woerner
2026-07-17 13:34 ` [PATCH v3 1/6] wic: add runtime dependencies on the tools it invokes Trevor Woerner
2026-07-17 13:34 ` Trevor Woerner [this message]
2026-07-17 13:34 ` [PATCH v3 3/6] nativesdk-packagegroup-sdk-host: gate qemu behind SDK_FEATURES Trevor Woerner
2026-07-17 13:34 ` [PATCH v3 4/6] nativesdk-packagegroup-sdk-host: add an sbom SDK feature Trevor Woerner
2026-07-17 13:34 ` [PATCH v3 5/6] packagegroup-cross-canadian: gate gdb behind SDK_FEATURES Trevor Woerner
2026-07-17 13:34 ` [PATCH v3 6/6] nativesdk-packagegroup-sdk-host: add an lldb SDK feature 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=20260717133421.3510970-3-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