diff options
author | Ross Burton <ross.burton@intel.com> | 2013-03-09 10:33:25 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-09 23:50:17 +0000 |
commit | 63c7192119d54b92d908441109ed4e4fff761cba (patch) | |
tree | 368fa913a46d044104fca1c1416cdbf3e34c8391 /meta | |
parent | a207ce735b602b751467eb43e09b958e664a8e81 (diff) | |
download | openembedded-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.bbclass | 4 | ||||
-rw-r--r-- | meta/lib/oe/utils.py | 8 |
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)) |