summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data_smart.py
diff options
context:
space:
mode:
authorLouis Rannou <louis.rannou@non.se.com>2025-02-13 16:05:42 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-02-13 22:24:27 +0000
commit0a9cfebb3a47b3404d3ff73a58e9f1a88d87fa78 (patch)
treee401bacf1eded23c4dfe0fb63c2d20794cd8855c /bitbake/lib/bb/data_smart.py
parentc49684b48b04e89e40550960558ca18dba3708a5 (diff)
downloadpoky-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>
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
-rw-r--r--bitbake/lib/bb/data_smart.py15
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: