mbox series

[v3,0/4] Support opt-out of any default machine and distro features

Message ID 20260401-default-features-v3-0-8f4b40401ab7@pbarker.dev
Headers show
Series Support opt-out of any default machine and distro features | expand

Message

Paul Barker April 1, 2026, 5:41 p.m. UTC
This is the second version of my patch series to improve DISTRO_FEATURES
& MACHINE_FEATURES handling. The first version complicated modification
of variables in conf files, requiring use of :append when we should just
be able to use +=.

In this version we directly append the filtered defaults to the target
variable, instead of using an intermediate variable. So, default distro
features are listed in DISTRO_FEATURES_DEFAULTS, this list is filtered
to remove features listed in DISTRO_FEATURES_OPTED_OUT and the result is
appended to DISTRO_FEATURES. Similar behaviour exists for
MACHINE_FEATURES_DEFAULTS, MACHINE_FEATURES_OPTED_OUT and
MACHINE_FEATURES.

See patches 2/4 & 3/4 for updated migration notes.

This series doesn't include issuing warnings if DISTRO_FEATURES_BACKFILL
or DISTRO_FEATURES_BACKFILL_CONSIDERED is set, that can be added as a
follow up if these changes are accepted.

---
Changes in v3:
- Fix test_filter_default_features(), strip DEFAULT_FEATURES before
  comparison
- Don't clear DISTRO_FEATURES in native, nativesdk & crosssdk handlers.
  Filtering already exists to propagate only the features we want to
  keep.
- Link to v2: https://patch.msgid.link/20260331-default-features-v2-0-f73b43d8bd57@pbarker.dev

Changes in v2:
- Rename {DISTRO,MACHINE}_FEATURES_DEFAULT_RAW to
  {DISTRO,MACHINE}_FEATURES_DEFAULTS.
- {DISTRO,MACHINE}_FEATURES_DEFAULT is removed.
- filter_default_features() appends directly to
  {DISTRO,MACHINE}_FEATURES.
- Follow through the consequences of the above changes.
- Changed in meta-yocto should no longer be needed.
- Link to v1: https://patch.msgid.link/20260328-default-features-v1-0-90790864d734@pbarker.dev

---
Paul Barker (4):
      oelib: utils: Support filtering default features
      meta: Support opting out of any distro features
      meta: Support opting out of any machine features
      lib: oe: Drop backfill support

 meta/classes-global/base.bbclass                   |  7 +--
 meta/classes-recipe/crosssdk.bbclass               |  8 ++--
 meta/classes-recipe/native.bbclass                 |  8 ++--
 meta/classes-recipe/nativesdk.bbclass              |  9 ++--
 meta/conf/bitbake.conf                             |  3 +-
 meta/conf/distro/include/default-distrovars.inc    | 15 +++---
 meta/conf/distro/include/tclibc-musl.inc           |  2 +-
 meta/conf/distro/include/tclibc-newlib.inc         |  2 +-
 meta/conf/distro/include/tclibc-picolibc.inc       |  2 +-
 meta/conf/documentation.conf                       |  8 ++--
 meta/conf/machine/include/mips/arch-mips.inc       |  2 +-
 meta/conf/machine/include/powerpc/tune-power5.inc  |  2 +-
 meta/conf/machine/include/powerpc/tune-power6.inc  |  2 +-
 meta/conf/machine/include/powerpc/tune-power7.inc  |  2 +-
 .../conf/machine/include/powerpc/tune-ppce5500.inc |  2 +-
 .../conf/machine/include/powerpc/tune-ppce6500.inc |  2 +-
 meta/conf/machine/include/x86/arch-x86.inc         |  2 +-
 meta/lib/oe/utils.py                               | 53 ++++++++++++++--------
 meta/lib/oeqa/selftest/cases/oelib/utils.py        | 38 +++++++++++++++-
 19 files changed, 110 insertions(+), 59 deletions(-)
---
base-commit: c56990178b31b893fbf695eaf6b67de501e9d2e9
change-id: 20260328-default-features-d7f43efcfb63

Best regards,
--  
Paul Barker