* [RFC PATCH 0/1] DISTRO_FEATURES_BACKFILL implementation
@ 2012-02-21 15:56 Paul Eggleton
2012-02-21 15:56 ` [RFC PATCH 1/1] conf/bitbake.conf: add DISTRO_FEATURES_BACKFILL Paul Eggleton
0 siblings, 1 reply; 2+ messages in thread
From: Paul Eggleton @ 2012-02-21 15:56 UTC (permalink / raw)
To: openembedded-core
Implements DISTRO_FEATURES_BACKFILL to allow introducing new
DISTRO_FEATURES that control existing functionality without breaking
existing distro configuration, as discussed in the following thread:
http://article.gmane.org/gmane.comp.handhelds.openembedded.core/13033
Please review the following changes for suitability for inclusion. If you have
any objections or suggestions for improvement, please respond to the patches. If
you agree with the changes, please provide your Acked-by.
The following changes since commit 1da6a2dbd5e7aeea6cd45ca05590bdd50b67bf89:
recipes: bump PR to rebuild .la files without libz.la (2012-02-21 15:00:24 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/distro-features-backfill
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/distro-features-backfill
Paul Eggleton (1):
conf/bitbake.conf: add DISTRO_FEATURES_BACKFILL
meta/conf/bitbake.conf | 3 +++
meta/lib/oe/utils.py | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+), 0 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* [RFC PATCH 1/1] conf/bitbake.conf: add DISTRO_FEATURES_BACKFILL
2012-02-21 15:56 [RFC PATCH 0/1] DISTRO_FEATURES_BACKFILL implementation Paul Eggleton
@ 2012-02-21 15:56 ` Paul Eggleton
0 siblings, 0 replies; 2+ messages in thread
From: Paul Eggleton @ 2012-02-21 15:56 UTC (permalink / raw)
To: openembedded-core
When introducing new items to DISTRO_FEATURES that control functionality
that is already enabled, in order to leave existing distro configuration
unchanged we need a way to "backfill" these new feature items onto the
existing DISTRO_FEATURES value.
This introduces a DISTRO_FEATURES_BACKFILL variable whose items will be
added to the end of DISTRO_FEATURES, unless they also appear in
DISTRO_FEATURES_BACKFILL_CONSIDERED which distros can use in their
configuration to prevent specific items from being added.
Fixes [YOCTO #1946].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/conf/bitbake.conf | 3 +++
meta/lib/oe/utils.py | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 90e5f7a..2539ae0 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -694,6 +694,9 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
+DISTRO_FEATURES_BACKFILL = ""
+DISTRO_FEATURES_append = "${@oe.utils.distro_features_backfill(d)}"
+
COMBINED_FEATURES = "\
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "alsa", d)} \
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "bluetooth", d)} \
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index 95daace..2aaed3a 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -88,3 +88,23 @@ def param_bool(cfg, field, dflt = None):
def inherits(d, *classes):
"""Return True if the metadata inherits any of the specified classes"""
return any(bb.data.inherits_class(cls, d) for cls in classes)
+
+def distro_features_backfill(d):
+ # This construct allows the addition of new features to DISTRO_FEATURES
+ # that if not present would disable existing functionality, without
+ # disturbing distributions that have already set DISTRO_FEATURES.
+ # Distributions wanting to elide a value in DISTRO_FEATURES_BACKFILL should
+ # add the feature to DISTRO_FEATURES_BACKFILL_CONSIDERED
+
+ backfill = (d.getVar("DISTRO_FEATURES_BACKFILL", True) or "").split()
+ considered = (d.getVar("DISTRO_FEATURES_BACKFILL_CONSIDERED", True) or "").split()
+
+ addfeatures = []
+ for feature in backfill:
+ if feature not in considered:
+ addfeatures.append(feature)
+
+ if addfeatures:
+ return " %s" % (" ".join(addfeatures))
+ else:
+ return ""
--
1.7.5.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-02-21 16:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-21 15:56 [RFC PATCH 0/1] DISTRO_FEATURES_BACKFILL implementation Paul Eggleton
2012-02-21 15:56 ` [RFC PATCH 1/1] conf/bitbake.conf: add DISTRO_FEATURES_BACKFILL Paul Eggleton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox