diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-09 14:12:16 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-17 21:29:30 +0100 |
commit | cc2522771e39d57e3b773c0d91b41a797044aa79 (patch) | |
tree | 0fa3bef156b17d0a1f33d06d8e05b198365138f7 /meta/classes | |
parent | 9e01e2ee5c9558f13b8cf07ef18a2b70ece91675 (diff) | |
download | poky-cc2522771e39d57e3b773c0d91b41a797044aa79.tar.gz |
update-alternatives: Fix determinism issue
getVarFlags returns a dict and there is therefore no sort order. This
means the order of the X_VARDEPS_X variables can change and hence the
task checksums can change. This can lead to rebuilds of any parts of
the system using update-alternatives and their dependees. This is a
particular issue under python v3.
Add in a sort to make the order of the variables deterministic.
(From OE-Core rev: ecd1bfed5534f83b775a6c79092c04bd13c3af0a)
(From OE-Core rev: 438b140050a9040cdfb150bd53ecfd0647ec7d97)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/update-alternatives.bbclass | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index 70a818572c..1fdd681315 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass | |||
@@ -71,14 +71,14 @@ def gen_updatealternativesvardeps(d): | |||
71 | 71 | ||
72 | # First compute them for non_pkg versions | 72 | # First compute them for non_pkg versions |
73 | for v in vars: | 73 | for v in vars: |
74 | for flag in (d.getVarFlags(v) or {}): | 74 | for flag in sorted((d.getVarFlags(v) or {}).keys()): |
75 | if flag == "doc" or flag == "vardeps" or flag == "vardepsexp": | 75 | if flag == "doc" or flag == "vardeps" or flag == "vardepsexp": |
76 | continue | 76 | continue |
77 | d.appendVar('%s_VARDEPS' % (v), ' %s:%s' % (flag, d.getVarFlag(v, flag, False))) | 77 | d.appendVar('%s_VARDEPS' % (v), ' %s:%s' % (flag, d.getVarFlag(v, flag, False))) |
78 | 78 | ||
79 | for p in pkgs: | 79 | for p in pkgs: |
80 | for v in vars: | 80 | for v in vars: |
81 | for flag in (d.getVarFlags("%s_%s" % (v,p)) or {}): | 81 | for flag in sorted((d.getVarFlags("%s_%s" % (v,p)) or {}).keys()): |
82 | if flag == "doc" or flag == "vardeps" or flag == "vardepsexp": | 82 | if flag == "doc" or flag == "vardeps" or flag == "vardepsexp": |
83 | continue | 83 | continue |
84 | d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False))) | 84 | d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False))) |