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 <brandon.maier@rockwellcollins.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Brandon Maier 2020-10-13 17:36:04 -05:00 committed by Yann E. MORIN
parent b8f632650a
commit a0b041d6c1
2 changed files with 12 additions and 0 deletions

View File

@ -162,6 +162,7 @@ do_kconfig() {
jpeg jpeg
openssl openssl
skeleton skeleton
init
) )
for br2 in "${items[@]}"; do for br2 in "${items[@]}"; do
@ -233,6 +234,14 @@ do_kconfig() {
else else
printf '# No skeleton from: %s\n\n' "${br2_desc}" printf '# No skeleton from: %s\n\n' "${br2_desc}"
fi >>"${outputdir}/.br2-external.in.skeleton" 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 done
printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus" printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus"

View File

@ -149,6 +149,9 @@ config BR2_INIT_NONE
have to provide your own, either with a new package have to provide your own, either with a new package
or with a rootfs-overlay. or with a rootfs-overlay.
# Init systems from br2-external trees, if any
source "$BR2_BASE_DIR/.br2-external.in.init"
endchoice endchoice
choice choice