Document DISTRO_FEATURES_BACKFILL and MACHINE_FEATURES_BACKFILL. We may
wish to expand upon this in future, but at least this explains what
these variables are for and how to use them.

Also add a link from the DISTRO_FEATURES entry to the section that lists
valid DISTRO_FEATURES items.

Signed-off-by: Paul Eggleton <paul.eggle...@linux.intel.com>
---
 documentation/poky-ref-manual/ref-features.xml  |   46 +++++++++++++++++++
 documentation/poky-ref-manual/ref-variables.xml |   54 ++++++++++++++++++++++-
 2 files changed, 99 insertions(+), 1 deletion(-)

diff --git a/documentation/poky-ref-manual/ref-features.xml 
b/documentation/poky-ref-manual/ref-features.xml
index 159d56d..81ba8e5 100644
--- a/documentation/poky-ref-manual/ref-features.xml
+++ b/documentation/poky-ref-manual/ref-features.xml
@@ -171,6 +171,52 @@
             </itemizedlist>
         </para>
     </section>
+
+    <section id='ref-features-backfill'>
+        <title>Feature backfilling</title>
+
+        <para>
+            Sometimes, it is necessary for a new feature to be added to 
control existing
+            functionality that was previously enabled by default and not able 
to be disabled.
+            In order to ensure that the feature remains enabled for users with 
existing
+            configurations that upgrade to a new version of the core metadata 
without that 
+            configuration having to be changed, whilst still allowing others 
who want to turn
+            the feature off to do so, the backfilling mechanism was 
introduced. This 
+            functionality is available for <filename><link 
linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
+            and <filename><link 
linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>.
+        </para>
+
+        <para>
+            An example is the "pulseaudio" distro feature. Previously, 
PulseAudio support
+            was enabled within the Qt and GStreamer frameworks; however some 
users desired
+            to be able to disable this. To allow this to be disabled without 
affecting 
+            existing configurations in which PulseAudio support should remain 
enabled,
+            "pulseaudio" was added to 
+            <filename><link 
linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
+            within <filename>meta/conf/bitbake.conf</filename>; this means 
that "pulseaudio"
+            is automatically added to <filename>DISTRO_FEATURES</filename> 
without the distro
+            configuration needing to be updated to do so itself.
+            Those who do not want PulseAudio support can add "pulseaudio" to
+            <filename><link 
linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>
+            in their distro .conf file and this will disable adding 
"pulseaudio" to
+            <filename>DISTRO_FEATURES</filename>.
+        </para>
+
+        <para>
+            Another example is the "rtc" machine feature. Previously, real 
time clock (RTC)
+            support was enabled for all target devices; however certain 
targets do not have
+            this capability. To allow this to be disabled by such machines 
without affecting
+            other machines in which RTC support should remain enabled, "rtc" 
was added to 
+            <filename><link 
linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
+            within <filename>meta/conf/bitbake.conf</filename>; this means 
that "rtc"
+            is automatically added to <filename>MACHINE_FEATURES</filename> 
without the
+            machine configuration needing to be updated to do so itself.
+            For machines that not need RTC support can add "rtc" to
+            <filename><link 
linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>
+            in their machine .conf file and this will disable adding "rtc" to
+            <filename>MACHINE_FEATURES</filename>.
+        </para>
+    </section>
 </chapter>
 
 <!-- 
diff --git a/documentation/poky-ref-manual/ref-variables.xml 
b/documentation/poky-ref-manual/ref-variables.xml
index ba81f96..c71a959 100644
--- a/documentation/poky-ref-manual/ref-variables.xml
+++ b/documentation/poky-ref-manual/ref-variables.xml
@@ -471,7 +471,35 @@
 
         <glossentry 
id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
             <glossdef>
-                <para>The features of the distribution.</para>
+                <para>The features enabled for the distribution.
+                    For a list of valid features, see the
+                    <link linkend='ref-features-distro'>Distro</link>
+                    section.
+                </para>
+            </glossdef>
+        </glossentry>
+
+        <glossentry 
id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
+            <glossdef>
+                <para>Features to be added to 
+                    <filename><link 
linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
+                    if not also present in 
+                    <filename><link 
linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
+                    See the <link linkend='ref-features-backfill'>Feature 
backfilling</link> section for 
+                    more information.
+                    </para>
+            </glossdef>
+        </glossentry>
+
+        <glossentry 
id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
+            <glossdef>
+                <para>Features from
+                    <filename><link 
linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
+                    that should not be added to
+                    <filename><link 
linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>.
+                    See the <link linkend='ref-features-backfill'>Feature 
backfilling</link> section for 
+                    more information.
+                    </para>
             </glossdef>
         </glossentry>
 
@@ -1519,6 +1547,30 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = 
"${INC_PR}.3"
             </glossdef>
          </glossentry>
 
+        <glossentry 
id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
+            <glossdef>
+                <para>Features to be added to 
+                    <filename><link 
linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
+                    if not also present in 
+                    <filename><link 
linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
+                    See the <link linkend='ref-features-backfill'>Feature 
backfilling</link> section for 
+                    more information.
+                    </para>
+            </glossdef>
+        </glossentry>
+
+        <glossentry 
id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
+            <glossdef>
+                <para>Features from
+                    <filename><link 
linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
+                    that should not be added to
+                    <filename><link 
linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>.
+                    See the <link linkend='ref-features-backfill'>Feature 
backfilling</link> section for 
+                    more information.
+                    </para>
+            </glossdef>
+        </glossentry>
+
         <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
             <glossdef>
                 <para>The email address of the distribution maintainer.</para>
-- 
1.7.9.5

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to