Feature Backfilling
- Sometimes it is necessary to control functionality enabled by features
- that are listed with
+ Sometimes it is necessary in the OpenEmbedded build system to extend
MACHINE_FEATURES
- and DISTRO_FEATURES.
- For example, some functionality exists that is enabled
- by default for all configurations.
- For these cases, the metadata, as shipped with the Yocto Project, ensures
- the feature is "backfilled" into all the specific distro
- and machine configurations.
- You can see how this is done by finding the
+ or DISTRO_FEATURES
+ to control functionality that was previously enabled and not able
+ to be disabled.
+ For these cases, we need to add an
+ additional feature item to appear in one of these variables,
+ but we do not want to force developers who have existing values
+ of the variables in their configuration to add the new feature
+ in order to retain the same overall level of functionality.
+ Thus, the OpenEmbedded build system has a mechanism to
+ automatically "backfill" these added features into existing
+ distro or machine configurations.
+ You can see the list of features for which this is done by
+ finding the
DISTRO_FEATURES_BACKFILL
and MACHINE_FEATURES_BACKFILL
variables in the meta/conf/bitbake.conf file.
- Because certain functionality is enabled across all configurations as
- described in the previous paragraph, it also becomes necessary
- to give the developer the ability to disable (remove) a feature
- from a particular configuration.
- For example, suppose you have a machine feature that needs to be
- disabled but the metadata has backfilled it across all configurations as enabled.
- You need to be able to remove the feature from your configuration's
- MACHINE_FEATURES
- without disturbing existing configurations that still
- might need the functionality?
-
-
-
- Feature backfilling allows you to selectively prevent a feature from
- being backfilled to MACHINE_FEATURES,
- DISTRO_FEATURES, or both.
+ Because such features are backfilled by default into all
+ configurations as described in the previous paragraph, developers
+ who wish to disable the new features need to be able to selectively
+ prevent the backfilling from occurring.
+ They can do this by adding the undesired feature or features to the
+ DISTRO_FEATURES_BACKFILL_CONSIDERED
+ or MACHINE_FEATURES_BACKFILL_CONSIDERED
+ variables for distro features and machine features respectively.
@@ -226,7 +223,7 @@
You can disable the feature without affecting
other existing distro configurations that need PulseAudio support
by adding "pulseaudio" to
- DISTRO_FEATURES_BACKFILL_CONSIDERED
+ DISTRO_FEATURES_BACKFILL_CONSIDERED
in your distro's .conf file.
Adding the feature to this variable when it also
exists in the DISTRO_FEATURES_BACKFILL
@@ -243,7 +240,7 @@
You can disable RTC support for your device without
affecting other machines that need RTC support
by adding the feature to your machine's
- MACHINE_FEATURES_BACKFILL_CONSIDERED
+ MACHINE_FEATURES_BACKFILL_CONSIDERED
list in the machine's .conf file.
Adding the feature to this variable when it also
exists in the MACHINE_FEATURES_BACKFILL