Funtoo Linux Optimization Proposal: No-systemd system
State inherited from Gentoo
Gentoo has three udev providers:
- sys-apps/systemd provides udev as a part of standard systemd installation,
- sys-fs/udev provides the systemd variant of udev decoupled from systemd, with some Gentoo patches,
- sys-fs/eudev provides the Gentoo fork of udev from before it was coupled into systemd.
The existence of those providers is acknowledged by the following virtuals:
systemd support in packages
Gentoo has separate methods of handling obtrusive and unobtrusive systemd support in packages.
Obtrusive support is when systemd support:
- collides with OpenRC support,
- requires systemd being installed (e.g. linking to systemd libraries).
Unobtrusive support is when the package can support both OpenRC and systemd simultaneously without issues. Examples of unobtrusive support is portable, conditional code (i.e. runtime detection of init) and installation of unit files that are not used when systemd is not used.
For obtrusive conditional support Gentoo uses USE=systemd flag. For unobtrusive support, Gentoo enables relevant features or installs relevant files unconditionally. This aimed to ease switching to systemd and back by reducing the number of rebuilds.
Current state in Funtoo
Funtoo overrides all udev virtuals to support only eudev as udev provider. This also implicitly blocks installing systemd or udev.
The no-systemd mix-in additionally:
- masks sys-fs/udev and sys-apps/systemd,
- adds INSTALL_MASK to remove systemd unit files.
Proposed future state in Funtoo
TODOblog comments powered by Disqus