diff options
| author | Johannes Schneider <johannes.schneider@leica-geosystems.com> | 2025-11-05 20:06:32 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-11-06 18:03:46 +0000 |
| commit | f339e5f07f84862e02d0df74d49705cececb30f0 (patch) | |
| tree | 8878398b4b79627999e0df9e2516d21614ebcf31 | |
| parent | baee94fa33b8ff41c59845cb2dd2145f18a719ae (diff) | |
| download | poky-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-x | bitbake/bin/bitbake-setup | 4 |
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 |
