diff options
author | Louis Rannou <louis.rannou@non.se.com> | 2025-02-13 16:05:42 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-02-13 22:24:27 +0000 |
commit | 0a9cfebb3a47b3404d3ff73a58e9f1a88d87fa78 (patch) | |
tree | e401bacf1eded23c4dfe0fb63c2d20794cd8855c | |
parent | c49684b48b04e89e40550960558ca18dba3708a5 (diff) | |
download | poky-0a9cfebb3a47b3404d3ff73a58e9f1a88d87fa78.tar.gz |
bitbake: bitbake: data_smart: fix ??= operator for variable flags
Variable flags have been fixed in commit
0329a7e3ac694737f2d2c1861f65492551360663 which introduces the
"_defaultval_flag_" prefix for default values.
This must not be ignored in delVarFlags and getVarFlags.
Fixes [YOCTO #15685]
(Bitbake rev: 2ee079fc1b7cf6d384ca17bd034b0a40461d9d18)
Signed-off-by: Louis Rannou <louis.rannou@non.se.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 897ceeb32c..5412596566 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
@@ -920,6 +920,8 @@ class DataSmart(MutableMapping): | |||
920 | self.varhistory.record(**loginfo) | 920 | self.varhistory.record(**loginfo) |
921 | 921 | ||
922 | del self.dict[var][flag] | 922 | del self.dict[var][flag] |
923 | if ("_defaultval_flag_" + flag) in self.dict[var]: | ||
924 | del self.dict[var]["_defaultval_flag_" + flag] | ||
923 | 925 | ||
924 | def appendVarFlag(self, var, flag, value, **loginfo): | 926 | def appendVarFlag(self, var, flag, value, **loginfo): |
925 | loginfo['op'] = 'append' | 927 | loginfo['op'] = 'append' |
@@ -954,17 +956,22 @@ class DataSmart(MutableMapping): | |||
954 | flags = {} | 956 | flags = {} |
955 | 957 | ||
956 | if local_var: | 958 | if local_var: |
957 | for i in local_var: | 959 | for i, val in local_var.items(): |
958 | if i.startswith(("_", ":")) and not internalflags: | 960 | if i.startswith("_defaultval_flag_") and not internalflags: |
961 | i = i[len("_defaultval_flag_"):] | ||
962 | if i not in local_var: | ||
963 | flags[i] = val | ||
964 | elif i.startswith(("_", ":")) and not internalflags: | ||
959 | continue | 965 | continue |
960 | flags[i] = local_var[i] | 966 | else: |
967 | flags[i] = val | ||
968 | |||
961 | if expand and i in expand: | 969 | if expand and i in expand: |
962 | flags[i] = self.expand(flags[i], var + "[" + i + "]") | 970 | flags[i] = self.expand(flags[i], var + "[" + i + "]") |
963 | if len(flags) == 0: | 971 | if len(flags) == 0: |
964 | return None | 972 | return None |
965 | return flags | 973 | return flags |
966 | 974 | ||
967 | |||
968 | def delVarFlags(self, var, **loginfo): | 975 | def delVarFlags(self, var, **loginfo): |
969 | self.expand_cache = {} | 976 | self.expand_cache = {} |
970 | if not var in self.dict: | 977 | if not var in self.dict: |