devboot is a script on top of the boot command, which makes it hard to integrate: Kernel command line fragments need a dedicated namespace to be removed again, and booting with devboot by default needs a special boot target. Also, boot overrides get lost when a boot script calls boot or bootm itself.
This series hands overrides on to whatever a boot entry boots and turns devboot into what it really is, an option to the boot command: boot -D, or global.boot.devboot=1 to enable it by default. The devboot command remains as a shorthand for boot -D. The series is based on the "boot: UAF and double free fixes", "Add and use file_exists() helper" and "boot: revert boot related globalvars after booting" series. Signed-off-by: Sascha Hauer <[email protected]> --- Sascha Hauer (5): boot: report the exit status of failing boot scripts hush: export source_script() boot: hand overrides on to nested boots and the bootm command boot: implement devboot in C sandbox: defconfig: enable boot overrides and devboot Documentation/user/devboot.rst | 76 +++++++----- arch/sandbox/configs/sandbox_defconfig | 2 + commands/boot.c | 28 ++++- commands/bootm.c | 3 +- common/Kconfig | 12 +- common/Makefile | 1 + common/boot.c | 63 ++++++---- common/bootchooser.c | 13 +- common/bootm.c | 22 +++- common/devboot.c | 197 ++++++++++++++++++++++++++++++ common/hush.c | 17 ++- defaultenv/defaultenv-2-base/bin/devboot | 52 +------- defaultenv/defaultenv-2-base/boot/devboot | 8 -- include/boot.h | 9 ++ include/bootchooser.h | 2 +- include/bootm.h | 3 + include/devboot.h | 31 +++++ include/shell.h | 8 ++ test/py/test_boot_overrides.py | 92 ++++++++++++++ test/py/test_boot_script.py | 13 ++ test/py/test_devboot.py | 131 ++++++++++++++++++++ 21 files changed, 653 insertions(+), 130 deletions(-) --- base-commit: e23fbb0ea940ba8b0f7f153297cb48c39fcbf41d change-id: 20261030-devboot-af494560e196 Best regards, -- Sascha Hauer <[email protected]>
