8bafc6dc8a
The different tools and libraries in util-linux have a lot of optional dependencies. When we want to support those optional dependencies, we can easily generate dependency cycles. For instance, findmount and lsblk need udev to work correctly, but eudev and systemd both depend libblkid, which comes from util-linux. Normal distros (e.g. Debian) solve this by first building a minimal package that has no dependencies at all, then build the packages that depend on util-linux, and finally rebuild util-linux with all bells and whistles. Solve it in Buildroot by means of the following changes: - Split util-linux into two packages: - util-linux-libs, providing lib{blkid,fdisk,mount,smartcols,uuid}. - util-linux, providing both the aforementioned libs and the programs. - Add a blind selection for util-linux-libs, i.e. it is indirectly selected according to the util-linux options. - Make host and target util-linux have a build dependencies on the -libs packages. - Make eudev and systemd have build dependencies on util-linux-libs. This can be extended to other packages in the future but is not needed right now because the configuration options are backward-compatible. - Make util-linux have an optional build dependency on the package that provides libudev (either eudev or systemd), if it is selected. Installing util-linux overrides files installed by util-linux-libs but this is not a problem: it's allowed for a package to overwrite files from another package, as long as there is a dependency between the two. util-linux-libs has a Config.in symbol for the package as a whole, but not for the individual libraries: it simply reuses the symbols of the full package. The build dependency of util-linux on util-linux-libs ensures that util-linux overwrites the files installed by util-linux-libs and not vice versa. In practice this dependency shouldn't be needed: the only reason for util-linux-libs to be built is to break a circular dependency. In that case, there is already a transitive dependency of util-linux on util-linux-libs, so adding it explicitly is redundant. Still, better safe than sorry. host-util-linux-libs is not needed at the moment. It can be added if we have a dependency cycle problem later. With this approach we don't need to patch configuration files neither change packages other than eudev and systemd. Other packages that require util-linux libraries and whose libraries may be used by util-linux programs can be updated later. We also don't need to change any existing defconfig, since all configuration options are kept in the util-linux package. Fixes: https://bugs.busybox.net/show_bug.cgi?id=11811 Signed-off-by: Carlos Santos <unixmania@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
476 lines
16 KiB
Plaintext
476 lines
16 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_LIBS
|
|
select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
|
|
select BR2_PACKAGE_UTIL_LINUX_AGETTY
|
|
select BR2_PACKAGE_UTIL_LINUX_MOUNT
|
|
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_INITRD
|
|
bool "Services for booting from initrd"
|
|
help
|
|
Install various services that are only useful if systemd is
|
|
run from an initrd.
|
|
|
|
config BR2_PACKAGE_SYSTEMD_KERNELINSTALL
|
|
bool "install kernel-install and related files"
|
|
help
|
|
kernel-install is used to install and remove kernel and
|
|
initramfs images to and from the boot loader partition.
|
|
The boot loader partition will usually be one of
|
|
/boot, /efi, or /boot/efi.
|
|
|
|
config BR2_PACKAGE_SYSTEMD_ANALYZE
|
|
bool "systemd-analyze"
|
|
help
|
|
systemd-analyze may be used to determine system boot-up
|
|
performance statistics and retrieve other state and tracing
|
|
information from the system and service manager, and to
|
|
verify the correctness of unit files.
|
|
It is also used to access special functions useful for
|
|
advanced system manager debugging.
|
|
|
|
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"
|
|
select BR2_PACKAGE_SYSTEMD_INITRD
|
|
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_HOMED
|
|
bool "enable home daemon"
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2
|
|
depends on BR2_USE_MMU # cryptsetup -> lvm2
|
|
depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c
|
|
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key
|
|
select BR2_PACKAGE_CRYPTSETUP
|
|
select BR2_PACKAGE_OPENSSL
|
|
select BR2_PACKAGE_UTIL_LINUX_LIBFDISK
|
|
help
|
|
systemd-homed is a system service that may be used to create,
|
|
remove, change or inspect home directories.
|
|
|
|
https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
|
|
|
|
comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12"
|
|
depends on BR2_USE_MMU
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
|
|
BR2_STATIC_LIBS || BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
|
|
|
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_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
|