summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Congal <yoann.congal@smile.fr>2025-01-11 15:13:51 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-01-14 09:51:45 +0000
commit052746da9a7e96b43ec45a04322e8576a6cbaab7 (patch)
tree61c3a98ec95b643027ec85e7e893e50de0f64fff
parenta68fb2be37b88a0131236cbe5d20433cf12209a4 (diff)
downloadpoky-052746da9a7e96b43ec45a04322e8576a6cbaab7.tar.gz
bitbake: data_smart: fix ??= operator for variable flags
??= operator works for variable value by defining a "_defaultval" flag. Use something similar for flags: For the default value of the flag "flag_name", define a flag "_defaultval_flag_flagname" that is used when reading flag_name but no other value has been set. Fixes [YOCTO #15685] (Bitbake rev: 0329a7e3ac694737f2d2c1861f65492551360663) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Reviewed-by: Ghislain Mangé <ghislain.mange@smile.fr> Suggested-by: Ola Nilsson <ola.x.nilsson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/data_smart.py2
-rw-r--r--bitbake/lib/bb/parse/ast.py5
2 files changed, 6 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index c6049d578e..897ceeb32c 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -827,6 +827,8 @@ class DataSmart(MutableMapping):
827 value = copy.copy(local_var[flag]) 827 value = copy.copy(local_var[flag])
828 elif flag == "_content" and "_defaultval" in local_var and not noweakdefault: 828 elif flag == "_content" and "_defaultval" in local_var and not noweakdefault:
829 value = copy.copy(local_var["_defaultval"]) 829 value = copy.copy(local_var["_defaultval"])
830 elif "_defaultval_flag_"+flag in local_var and not noweakdefault:
831 value = copy.copy(local_var["_defaultval_flag_"+flag])
830 832
831 833
832 if flag == "_content" and local_var is not None and ":append" in local_var and not parsing: 834 if flag == "_content" and local_var is not None and ":append" in local_var and not parsing:
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 2f6c6a0055..30ede008d7 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -152,7 +152,10 @@ class DataNode(AstNode):
152 152
153 flag = None 153 flag = None
154 if 'flag' in groupd and groupd['flag'] is not None: 154 if 'flag' in groupd and groupd['flag'] is not None:
155 flag = groupd['flag'] 155 if groupd["lazyques"]:
156 flag = "_defaultval_flag_"+groupd['flag']
157 else:
158 flag = groupd['flag']
156 elif groupd["lazyques"]: 159 elif groupd["lazyques"]:
157 flag = "_defaultval" 160 flag = "_defaultval"
158 161