From: Richard Purdie Date: Sat, 21 Feb 2026 08:42:25 +0000 (+0000) Subject: conf: Switch to systemd by default and simplify init manager selection X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b4061c5d50261f826d0edb4b478d2d305274b7c;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git conf: Switch to systemd by default and simplify init manager selection This change effectively switches things to use INIT_MANAGER to select the init system and drops the old compatibility 'none' method. The init manager selection is now complex enough that requiring users to select it makes sense. The new default is systemd, which reflects popular opinion. This is known to have issues in some of our configurations such as musl but is also frequently asked for. Anyone replacing defaultsetup.conf in their own setup will need to provide equivalent functionality but that is execpted for any of the settings in there. This change drops sysvinit from the default distro features backfill, meaning we no longer need to remove it in systemd setups and places the init managers on a more equal and equivalent standing. This is a behaviour change for anyone using nodistro and anyone not already setting INIT_MANAGER explictly. This does not change the default for distros which select an init manager already (e.g. poky). Signed-off-by: Richard Purdie Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index be76c88cce..aa6b5bbf9a 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -920,7 +920,7 @@ DISTRO_FEATURES_NATIVESDK:mingw32 = "x11 ipv6" DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opencl opengl wayland" DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opencl opengl wayland" -DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" +DISTRO_FEATURES_BACKFILL = "pulseaudio gobject-introspection-data ldconfig" MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf index 62a5849c77..269c3ad3f7 100644 --- a/meta/conf/distro/defaultsetup.conf +++ b/meta/conf/distro/defaultsetup.conf @@ -12,5 +12,5 @@ PACKAGE_CLASSES ?= "package_ipk" INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool create-spdx buildstats" INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO}" -INIT_MANAGER ??= "none" +INIT_MANAGER ??= "systemd" require conf/distro/include/init-manager-${INIT_MANAGER}.inc diff --git a/meta/conf/distro/include/init-manager-mdev-busybox.inc b/meta/conf/distro/include/init-manager-mdev-busybox.inc index d9b05e1781..9b44e3e529 100644 --- a/meta/conf/distro/include/init-manager-mdev-busybox.inc +++ b/meta/conf/distro/include/init-manager-mdev-busybox.inc @@ -1,5 +1,4 @@ # enable mdev/busybox for init -DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd sysvinit" VIRTUAL-RUNTIME_dev_manager ??= "busybox-mdev" VIRTUAL-RUNTIME_init_manager ??= "busybox" VIRTUAL-RUNTIME_initscripts ??= "initscripts" diff --git a/meta/conf/distro/include/init-manager-none.inc b/meta/conf/distro/include/init-manager-none.inc deleted file mode 100644 index 6ece5c9906..0000000000 --- a/meta/conf/distro/include/init-manager-none.inc +++ /dev/null @@ -1,4 +0,0 @@ -VIRTUAL-RUNTIME_init_manager ??= "sysvinit" -VIRTUAL-RUNTIME_initscripts ??= "initscripts" -VIRTUAL-RUNTIME_login_manager ??= "busybox" -VIRTUAL-RUNTIME_dev_manager ??= "udev" diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc index 1e64b8ad22..63fd225ca5 100644 --- a/meta/conf/distro/include/init-manager-systemd.inc +++ b/meta/conf/distro/include/init-manager-systemd.inc @@ -1,6 +1,5 @@ # Use systemd for system initialization DISTRO_FEATURES:append = " systemd usrmerge" -DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" VIRTUAL-RUNTIME_init_manager ??= "systemd" VIRTUAL-RUNTIME_initscripts ??= "" VIRTUAL-RUNTIME_login_manager ??= "shadow-base" diff --git a/meta/conf/distro/include/init-manager-sysvinit.inc b/meta/conf/distro/include/init-manager-sysvinit.inc index e2d17b358d..9ff5fed877 100644 --- a/meta/conf/distro/include/init-manager-sysvinit.inc +++ b/meta/conf/distro/include/init-manager-sysvinit.inc @@ -1,6 +1,5 @@ # Use sysvinit for system initialization DISTRO_FEATURES:append = " sysvinit" -DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" VIRTUAL-RUNTIME_init_manager ??= "sysvinit" VIRTUAL-RUNTIME_initscripts ??= "initscripts" VIRTUAL-RUNTIME_login_manager ??= "busybox"