From: Richard Purdie Date: Wed, 18 Feb 2026 14:41:07 +0000 (+0000) Subject: native: Use dynamic filtering for PROVIDES X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18ac84e4886eaf51b022a53e430f6b54eadd6bda;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git native: Use dynamic filtering for PROVIDES Currently, PROVIDES is one of the few variables left which isn't handled by filter code dynamically. This lead to bugs if for example you have a PACKAGECONFIG value which references DISTRO_FEATURES, and DISTRO_FEATURES is being set in the the native case late by backfill. The early expansion of the value means it can use an incorrect DISTRO_FEATURES value leading to confusing errors. Convert the code to use a filter in common with the other code in the class. This does lead to some behaviour differences outside OE-Core in meta-oe for example where the PROVIDES of gd-native changed: "gd-native gd-native-tools" to "gd-native gd-tools-native" where the change is a clear improvement in correctness. This fixes issues when DISTRO_FEATURES has backfill options in place in the native case. Signed-off-by: Richard Purdie Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/native.bbclass b/meta/classes-recipe/native.bbclass index d109907841..98466b1902 100644 --- a/meta/classes-recipe/native.bbclass +++ b/meta/classes-recipe/native.bbclass @@ -166,18 +166,7 @@ python native_virtclass_handler () { d.setVarFilter("PACKAGES", "native_filter(val, '" + pn + "', '" + bpn + "')") d.setVarFilter("PACKAGES_DYNAMIC", "native_filter(val, '" + pn + "', '" + bpn + "', regex=True)") - provides = e.data.getVar("PROVIDES") - nprovides = [] - for prov in provides.split(): - if prov.find(pn) != -1: - nprovides.append(prov) - elif not prov.endswith("-native"): - nprovides.append(prov + "-native") - else: - nprovides.append(prov) - e.data.setVar("PROVIDES", ' '.join(nprovides)) - - + d.setVarFilter("PROVIDES", "native_filter(val, '" + pn + "', '" + bpn + "')") } addhandler native_virtclass_handler