[oe-commits] Ross Burton : base.bbclass: don't backfill features that already exist

git at git.openembedded.org git at git.openembedded.org
Sun Mar 10 04:36:06 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: 63c7192119d54b92d908441109ed4e4fff761cba
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=63c7192119d54b92d908441109ed4e4fff761cba

Author: Ross Burton <ross.burton at intel.com>
Date:   Sat Mar  9 10:33:25 2013 +0000

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 at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/base.bbclass |    4 ++--
 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 4d69caf..4ec1eda 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 8d3efe4..b269f32 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))





More information about the Openembedded-commits mailing list