summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2013-03-09 10:33:25 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-09 23:50:17 +0000
commit63c7192119d54b92d908441109ed4e4fff761cba (patch)
tree368fa913a46d044104fca1c1416cdbf3e34c8391 /meta
parenta207ce735b602b751467eb43e09b958e664a8e81 (diff)
downloadopenembedded-core-63c7192119d54b92d908441109ed4e4fff761cba.tar.gz
openembedded-core-63c7192119d54b92d908441109ed4e4fff761cba.tar.bz2
openembedded-core-63c7192119d54b92d908441109ed4e4fff761cba.zip
base.bbclass: don't backfill features that already exist
It's too easy to cause rebuilds because the DISTRO_FEATURES have changed in meaningless ways (such as re-ordering or duplicate items). Help stop this by checking if the feature to be back-filled is already present. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/base.bbclass4
-rw-r--r--meta/lib/oe/utils.py8
2 files changed, 5 insertions, 7 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 4d69cafbcd..4ec1eda6bc 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -292,8 +292,8 @@ python base_eventhandler() {
e.data.setVar('BB_VERSION', bb.__version__)
pkgarch_mapping(e.data)
preferred_ml_updates(e.data)
- e.data.appendVar('DISTRO_FEATURES', oe.utils.features_backfill("DISTRO_FEATURES", e.data))
- e.data.appendVar('MACHINE_FEATURES', oe.utils.features_backfill("MACHINE_FEATURES", e.data))
+ oe.utils.features_backfill("DISTRO_FEATURES", e.data)
+ oe.utils.features_backfill("MACHINE_FEATURES", e.data)
if isinstance(e, bb.event.BuildStarted):
statuslines = []
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index 8d3efe440c..b269f32277 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -96,16 +96,14 @@ def features_backfill(var,d):
# 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
-
+ features = (d.getVar(var, True) or "").split()
backfill = (d.getVar(var+"_BACKFILL", True) or "").split()
considered = (d.getVar(var+"_BACKFILL_CONSIDERED", True) or "").split()
addfeatures = []
for feature in backfill:
- if feature not in considered:
+ if feature not in features and feature not in considered:
addfeatures.append(feature)
if addfeatures:
- return " %s" % (" ".join(addfeatures))
- else:
- return ""
+ d.appendVar(var, " " + " ".join(addfeatures))