From a0b041d6c14ff89b234a9edba344a997d19c880a Mon Sep 17 00:00:00 2001 From: Brandon Maier Date: Tue, 13 Oct 2020 17:36:04 -0500 Subject: [PATCH] system: support br2-external init systems Some externals may wish to provide custom init systems for tightly integrated boot. This has been supported through the BR2_INIT_NONE, however a downside to the BR2_INIT_NONE is it forces the custom init system to use either skeleton-custom and roll a custom skeleton for each target, or skeleton-init-none which isn't a complete skeleton. Allowing br2-external to define custom BR2_INIT_* means they can now safely 'select' the BR2_PACKAGE_SKELETON_INIT_*, and re-use any of the skeletons in Buildroot, or one from a br2-external tree. Signed-off-by: Brandon Maier Signed-off-by: Yann E. MORIN --- support/scripts/br2-external | 9 +++++++++ system/Config.in | 3 +++ 2 files changed, 12 insertions(+) diff --git a/support/scripts/br2-external b/support/scripts/br2-external index 01804e1220..56dc6f53ca 100755 --- a/support/scripts/br2-external +++ b/support/scripts/br2-external @@ -162,6 +162,7 @@ do_kconfig() { jpeg openssl skeleton + init ) for br2 in "${items[@]}"; do @@ -233,6 +234,14 @@ do_kconfig() { else printf '# No skeleton from: %s\n\n' "${br2_desc}" fi >>"${outputdir}/.br2-external.in.skeleton" + + if [ -f "${br2_ext}/provides/init.in" ]; then + printf 'comment "init from: %s"\n' "${br2_desc}" + printf 'source "%s/provides/init.in"\n' "${br2_ext}" + printf '\n' + else + printf '# No init from: %s\n\n' "${br2_desc}" + fi >>"${outputdir}/.br2-external.in.init" done printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus" diff --git a/system/Config.in b/system/Config.in index a7a05c9af2..b3abeddd68 100644 --- a/system/Config.in +++ b/system/Config.in @@ -149,6 +149,9 @@ config BR2_INIT_NONE have to provide your own, either with a new package or with a rootfs-overlay. +# Init systems from br2-external trees, if any +source "$BR2_BASE_DIR/.br2-external.in.init" + endchoice choice