[OE-core] [PATCH] native/nativesdk: Ensure DISTRO_FEATURES is determistic

Richard Purdie richard.purdie at linuxfoundation.org
Mon Jun 12 10:25:27 UTC 2017


set() order is random and hence the filtered native/nativesdk DISTRO_FEATURES
could be set to random ordering. We've been lucky so far this tended not to
cause issues but some queued changes highedlighted this. Thrown in a sorted()
so the order is deterministic and we get consistent hash checksums between runs
and between machines.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/native.bbclass    | 2 +-
 meta/classes/nativesdk.bbclass | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index b8f839a..6b7f3dd 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -129,7 +129,7 @@ python native_virtclass_handler () {
     # from modifying native distro features
     features = set(d.getVar("DISTRO_FEATURES_NATIVE").split())
     filtered = set(bb.utils.filter("DISTRO_FEATURES", d.getVar("DISTRO_FEATURES_FILTER_NATIVE"), d).split())
-    d.setVar("DISTRO_FEATURES", " ".join(features | filtered))
+    d.setVar("DISTRO_FEATURES", " ".join(sorted(features | filtered)))
 
     classextend = e.data.getVar('BBCLASSEXTEND') or ""
     if "native" not in classextend:
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 655b456..69fb45c8 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -74,7 +74,7 @@ python nativesdk_virtclass_handler () {
     # from modifying nativesdk distro features
     features = set(d.getVar("DISTRO_FEATURES_NATIVESDK").split())
     filtered = set(bb.utils.filter("DISTRO_FEATURES", d.getVar("DISTRO_FEATURES_FILTER_NATIVESDK"), d).split())
-    d.setVar("DISTRO_FEATURES", " ".join(features | filtered))
+    d.setVar("DISTRO_FEATURES", " ".join(sorted(features | filtered)))
 
     e.data.setVar("MLPREFIX", "nativesdk-")
     e.data.setVar("PN", "nativesdk-" + e.data.getVar("PN").replace("-nativesdk", "").replace("nativesdk-", ""))
-- 
2.7.4




More information about the Openembedded-core mailing list