summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Schneider <johannes.schneider@leica-geosystems.com>2025-11-05 20:06:32 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-11-06 18:03:46 +0000
commitf339e5f07f84862e02d0df74d49705cececb30f0 (patch)
tree8878398b4b79627999e0df9e2516d21614ebcf31
parentbaee94fa33b8ff41c59845cb2dd2145f18a719ae (diff)
downloadpoky-f339e5f07f84862e02d0df74d49705cececb30f0.tar.gz
bitbake: bitbake-setup: fix key-error when changing a new 'section'
Setting a key=value in a new section would raise a key-error when using in-memory settings, e.g: ./bin/bitbake-setup --setting default top-dir-prefix /tmp/bitbake-setup --setting default top-dir-name gs settings foo bar baz Loading settings from /tmp/bitbake-setup/gs/settings.conf Traceback (most recent call last): File "/tmp/bitbake-setup/bitbake/./bin/bitbake-setup", line 853, in <module> main() File "/tmp/bitbake-setup/bitbake/./bin/bitbake-setup", line 838, in main all_settings = merge_settings(builtin_settings, global_settings, topdir_settings, args.setting) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/bitbake-setup/bitbake/./bin/bitbake-setup", line 733, in merge_settings all_settings[section][setting] = value ~~~~~~~~~~~~^^^^^^^^^ KeyError: 'foo' (Bitbake rev: 78ab0d15dff5ccf64b0bf681185370779e6cabaf) Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbitbake/bin/bitbake-setup4
1 files changed, 4 insertions, 0 deletions
diff --git a/bitbake/bin/bitbake-setup b/bitbake/bin/bitbake-setup
index a9035e7c81..3f56f83784 100755
--- a/bitbake/bin/bitbake-setup
+++ b/bitbake/bin/bitbake-setup
@@ -726,9 +726,13 @@ def merge_settings(builtin_settings, global_settings, topdir_settings, cmdline_s
726 for s in (global_settings, topdir_settings): 726 for s in (global_settings, topdir_settings):
727 for section, section_settings in s.items(): 727 for section, section_settings in s.items():
728 for setting, value in section_settings.items(): 728 for setting, value in section_settings.items():
729 if section not in all_settings.keys():
730 all_settings[section] = {}
729 all_settings[section][setting] = value 731 all_settings[section][setting] = value
730 732
731 for (section, setting, value) in cmdline_settings: 733 for (section, setting, value) in cmdline_settings:
734 if section not in all_settings.keys():
735 all_settings[section] = {}
732 all_settings[section][setting] = value 736 all_settings[section][setting] = value
733 737
734 return all_settings 738 return all_settings