kumquat-buildroot/package/systemd/Config.in
Yann E. MORIN b57632683b package/systemd: make sure init choice and package have same dependencies
Currently, the dependencies for the init system choice, and the
dependencies for the package, are slightly different, and not in the
same order, the latter making it difficult to assess consistency between
the two.

Fix all that, by cross-duplicating dependencies from the init choice and
the package, and order the dependencies according to the manual (arch
first, toolchain, then the others).

Note that some dependencies are redundant, but kept nonetheless for
correctness:

  - BR2_USE_MMU is implied by BR2_TOOLCHAIN_USES_GLIBC, but systemd does
    use fork();

  - !BR2_STATIC_LIBS is also implied by BR2_TOOLCHAIN_USES_GLIBC, but it
    is also inherited from kmod which we select;

  - BR2_TOOLCHAIN_HAS_THREADS is also implied by BR2_TOOLCHAIN_USES_GLIBC,
    but systemd does use pthread_*() functions.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-04-05 20:33:36 +02:00

433 lines
15 KiB
Plaintext

config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
bool
# see src/basic/architecture.h
default y if BR2_arc
default y if BR2_aarch64 || BR2_aarch64_be
default y if BR2_arm || BR2_armeb
default y if BR2_i386 || BR2_x86_64
default y if BR2_m68k
default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
default y if BR2_nios2
default y if BR2_riscv
default y if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb
default y if BR2_sparc || BR2_sparc64
menuconfig BR2_PACKAGE_SYSTEMD
bool "systemd"
depends on BR2_INIT_SYSTEMD
depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
depends on BR2_USE_MMU
depends on !BR2_STATIC_LIBS # kmod
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_TOOLCHAIN_HAS_SSP
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd
select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_DBUS # runtime dependency only
select BR2_PACKAGE_LIBCAP
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
select BR2_PACKAGE_UTIL_LINUX_BINARIES
select BR2_PACKAGE_UTIL_LINUX_AGETTY
select BR2_PACKAGE_UTIL_LINUX_MOUNT
select BR2_PACKAGE_UTIL_LINUX_NOLOGIN
select BR2_PACKAGE_UTIL_LINUX_FSCK
select BR2_PACKAGE_KMOD
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools
select BR2_PACKAGE_KMOD_TOOLS
select BR2_TARGET_TZ_INFO
select BR2_NEEDS_HOST_UTF8_LOCALE
select BR2_PACKAGE_HOST_SYSTEMD # for systemctl preset-all, during target-finalize
help
systemd is a system and service manager for Linux,
compatible with SysV and LSB init scripts. systemd provides
aggressive parallelization capabilities, uses socket and
D-Bus activation for starting services, offers on-demand
starting of daemons, keeps track of processes using Linux
cgroups, supports snapshotting and restoring of the system
state, maintains mount and automount points and implements
an elaborate transactional dependency-based service control
logic. It can work as a drop-in replacement for sysvinit.
Systemd requires a Linux kernel >= 3.0 with the following
options enabled:
- CONFIG_CGROUPS
- CONFIG_INOTIFY_USER
- CONFIG_FHANDLE
- CONFIG_AUTOFS4_FS
- CONFIG_TMPFS_POSIX_ACL
- CONFIG_TMPFS_XATTR
These options will be automatically enabled by Buildroot if
it is responsible for building the kernel. Otherwise, if you
are building your kernel outside of Buildroot, make sure
these options are enabled.
Systemd also provides udev, the userspace device daemon.
The selection of other packages will enable some features:
- acl package will add support for multi-seat.
- xz and/or l4 packages will add compression support in
journal and coredump.
- libcurl package will add support for systemd-journal-upload.
- libgcrypt package will add support for journal sealing and
DNSSEC verification in resolved.
Notice that systemd selects the fsck wrapper from util-linux
but no particular fsck.<fstype> is selected. You must choose
the apropriate ones (e.g. e2fsck, from the e2fsprogs
package) according to the system configuration.
http://freedesktop.org/wiki/Software/systemd
if BR2_PACKAGE_SYSTEMD
config BR2_PACKAGE_PROVIDES_UDEV
default "systemd"
config BR2_PACKAGE_SYSTEMD_BOOT
bool "systemd-boot"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_GNU_EFI
help
systemd-boot is a simple UEFI boot manager which executes
configured EFI images. The default entry is selected by a
configured pattern (glob) or an on-screen menu.
systemd-boot operates on the EFI System Partition (ESP)
only. Configuration file fragments, kernels, initrds, other
EFI images need to reside on the ESP. Linux kernels need to
be built with CONFIG_EFI_STUB to be able to be directly
executed as an EFI image.
See the Grub2 help text for details on preparing an EFI
capable disk image using systemd-boot: the instructions are
exactly the same, except that the systemd-boot configuration
files will be located in /loader/ inside the EFI partition.
https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH
string
default "ia32" if BR2_i386
default "x64" if BR2_x86_64
depends on BR2_PACKAGE_SYSTEMD_BOOT
config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
bool "HTTP server for journal events"
select BR2_PACKAGE_LIBMICROHTTPD
help
systemd-journal-gatewayd serves journal events over the
network. Clients must connect using HTTP. The server
listens on port 19531 by default.
http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE
bool "enable systemd-journal-remote"
depends on BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
select BR2_PACKAGE_LIBCURL
help
systemd-journal-remote is a command to receive serialized
journal events and store them to journal files. Input
streams are in the Journal Export Format[1], i.e. like the
output from journalctl --output=export. For transport over
the network, this serialized stream is usually carried over
an HTTPS connection.
https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html
config BR2_PACKAGE_SYSTEMD_BACKLIGHT
bool "enable backlight support"
help
systemd-backlight is a service that restores the display
backlight brightness at early boot and saves it at shutdown.
http://www.freedesktop.org/software/systemd/man/systemd-backlight@.service.html
config BR2_PACKAGE_SYSTEMD_BINFMT
bool "enable binfmt tool"
help
systemd-binfmt is an early boot service that registers
additional binary formats for executables in the kernel.
http://www.freedesktop.org/software/systemd/man/systemd-binfmt.service.html
config BR2_PACKAGE_SYSTEMD_COREDUMP
bool "enable coredump hook"
help
systemd-coredump can be used as a helper binary by the
kernel when a user space program receives a fatal signal and
dumps core.
http://www.freedesktop.org/software/systemd/man/systemd-coredump.html
config BR2_PACKAGE_SYSTEMD_PSTORE
bool "enable pstore support"
default y
help
When this features is enabled, additional tools and services
are built to support archiving contents of the persistent
storage filesytem.
https://www.freedesktop.org/software/systemd/man/systemd-pstore.html
config BR2_PACKAGE_SYSTEMD_FIRSTBOOT
bool "enable firstboot support"
help
systemd-firstboot initializes the most basic system settings
interactively on the first boot.
http://www.freedesktop.org/software/systemd/man/systemd-firstboot.html
config BR2_PACKAGE_SYSTEMD_HIBERNATE
bool "enable hibernation support"
help
When this features is enabled, additional tools and services
are built to support suspending and resuming the system.
http://www.freedesktop.org/software/systemd/man/systemd-sleep.html
config BR2_PACKAGE_SYSTEMD_HOSTNAMED
bool "enable hostname daemon"
default y
help
systemd-hostnamed is a system service that may be used as a
mechanism to change the system's hostname.
http://www.freedesktop.org/software/systemd/man/systemd-hostnamed.service.html
config BR2_PACKAGE_SYSTEMD_HWDB
bool "enable hwdb installation"
default y
help
Enables hardware database installation to /usr/lib/udev/hwdb.d
Disabling this option improves first boot time (or every boot
time in case of initramfs images) and saves several MB space.
https://www.freedesktop.org/software/systemd/man/hwdb.html
config BR2_PACKAGE_SYSTEMD_IMPORTD
bool "enable import daemon"
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_BZIP2
select BR2_PACKAGE_LZ4
select BR2_PACKAGE_XZ
select BR2_PACKAGE_ZLIB
help
systemd-importd is a system service that manages virtual
machine and container images for systemd-machined and
machinectl.
http://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands
config BR2_PACKAGE_SYSTEMD_LOCALED
bool "enable locale daemon"
help
systemd-localed is a system service that may be used as
mechanism to change the system locale settings, as well as
the console key mapping and default X11 key mapping.
http://www.freedesktop.org/software/systemd/man/systemd-localed.service.html
config BR2_PACKAGE_SYSTEMD_LOGIND
bool "enable login daemon"
help
systemd-logind is a system service that manages user logins.
http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html
config BR2_PACKAGE_SYSTEMD_MACHINED
bool "enable machine daemon"
help
systemd-machined is a system service that keeps track of
virtual machines and containers, and processes belonging to
them.
http://www.freedesktop.org/software/systemd/man/systemd-machined.service.html
config BR2_PACKAGE_SYSTEMD_MYHOSTNAME
bool "enable myhostname NSS plugin"
default y
help
nss-myhostname is a plug-in module for the GNU Name Service
Switch (NSS) functionality of the GNU C Library (glibc),
primarily providing hostname resolution for the locally
configured system hostname as returned by gethostname(2).
http://www.freedesktop.org/software/systemd/man/nss-myhostname.html
config BR2_PACKAGE_SYSTEMD_NETWORKD
bool "enable network manager"
default y
help
systemd-networkd is a system service that manages networks.
It detects and configures network devices as they appear, as
well as creating virtual network devices.
This simple network configuration solution is an alternative
to dhcpcd or ISC dhcp.
http://www.freedesktop.org/software/systemd/man/systemd-networkd.html
config BR2_PACKAGE_SYSTEMD_POLKIT
bool "enable polkit support"
depends on BR2_HOST_GCC_AT_LEAST_4_9 # polkit
depends on BR2_INSTALL_LIBSTDCPP # polkit
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS # polkit
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # polkit
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # polkit
depends on BR2_USE_WCHAR # libglib2
select BR2_PACKAGE_POLKIT
help
If enabled, systemd is built with polkit support and policy
files for its services are generated and installed. It is
useful for allowing unprivileged processes to speak to
systemd's many privileged processes.
http://wiki.freedesktop.org/www/Software/polkit/
comment "polkit support needs a toolchain with C++, wchar, NPTL, gcc >= 4.9"
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_USE_WCHAR
config BR2_PACKAGE_SYSTEMD_QUOTACHECK
bool "enable quotacheck tools"
help
systemd-quotacheck is a service responsible for file system
quota checks. It is run once at boot after all necessary
file systems are mounted. It is pulled in only if at least
one file system has quotas enabled.
http://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html
config BR2_PACKAGE_SYSTEMD_RANDOMSEED
bool "enable random-seed support"
help
systemd-random-seed is a service that restores the random
seed of the system at early boot and saves it at
shutdown. Saving/restoring the random seed across boots
increases the amount of available entropy early at boot.
http://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html
config BR2_PACKAGE_SYSTEMD_REPART
bool "enable repart support"
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_UTIL_LINUX_LIBFDISK
help
systemd-repart grows and adds partitions to a partition table,
based on the configuration files described in repart.d.
https://www.freedesktop.org/software/systemd/man/systemd-repart.html
config BR2_PACKAGE_SYSTEMD_RESOLVED
bool "enable resolve daemon"
default y
help
systemd-resolved is a system service that provides network
name resolution to local applications. It implements a
caching and validating DNS/DNSSEC stub resolver, as well as
an LLMNR resolver and responder.
http://www.freedesktop.org/software/systemd/man/systemd-resolved.html
config BR2_PACKAGE_SYSTEMD_RFKILL
bool "enable rfkill tools"
help
systemd-rfkill is a service that restores the RF kill switch
state at early boot and saves it at shutdown.
http://www.freedesktop.org/software/systemd/man/systemd-rfkill@.service.html
config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
bool "enable SMACK support"
select BR2_PACKAGE_ATTR
select BR2_PACKAGE_SMACK
help
Enable support for SMACK, the Simple Mandatory Access
Control Kernel, a minimal approach to Access Control
implemented as a kernel LSM.
This feature requires a kernel >= 3.8.
When this feature is enabled, Systemd mounts smackfs and
manages security labels for sockets.
config BR2_PACKAGE_SYSTEMD_SYSUSERS
bool "enable sysusers support"
help
systemd-sysusers creates system users and groups, based on
the file format and location specified in sysusers.d(5).
http://www.freedesktop.org/software/systemd/man/systemd-sysusers.html
config BR2_PACKAGE_SYSTEMD_TIMEDATED
bool "enable timedate daemon"
default y
help
systemd-timedated is a system service that may be used as a
mechanism to change the system clock and timezone, as well
as to enable/disable NTP time synchronization.
http://www.freedesktop.org/software/systemd/man/systemd-timedated.service.html
config BR2_PACKAGE_SYSTEMD_TIMESYNCD
bool "enable timesync daemon"
default y
help
systemd-timesyncd is a service that may be used to
synchronize the local system clock with a Network Time
Protocol server.
This simple NTP solution is an alternative to sntp/ntpd from
the ntp package.
http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html
config BR2_PACKAGE_SYSTEMD_TMPFILES
bool "enable tmpfiles support"
default y
help
systemd-tmpfiles creates, deletes, and cleans up volatile
and temporary files and directories, based on the
configuration file format and location specified in
tmpfiles.d(5).
http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html
config BR2_PACKAGE_SYSTEMD_USERDB
bool "enable userdb daemon"
help
systemd-userdbd is a system service that multiplexes
user/group lookups to all local services that provide JSON
user/group record definitions to the system. In addition it
synthesizes JSON user/group records from classic UNIX/glibc
NSS user/group records in order to provide full backwards
compatibility.
https://www.freedesktop.org/software/systemd/man/systemd-userdbd.service.html
config BR2_PACKAGE_SYSTEMD_VCONSOLE
bool "enable vconsole tool"
default y
help
systemd-vconsole-setup is an early boot service that
configures the virtual console font and console keymap.
http://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html
endif