6d163e12a4
Moved groups render and sgx from UDEV_USERS to SYSTEMD_USERS as they currently only appear in systemd's udev rules. In systemd, group render was introduced since commit 4e15a73, and group sgx was introduced since commit c9c4899. In eudev, group render was introduced since commit bb070c1, but was removed since commit a8ffcd1 [1]. [1]: https://github.com/eudev-project/eudev/issues/160 Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Carlos Santos <unixmania@gmail.com> Cc: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
875 lines
25 KiB
Makefile
875 lines
25 KiB
Makefile
################################################################################
|
|
#
|
|
# systemd
|
|
#
|
|
################################################################################
|
|
|
|
# When updating systemd, take care of the following:
|
|
# - Check if the requirements have changed (see README), in particular
|
|
# arch and headers
|
|
# - If yes, propagate the dependencies to BR2_INIT_SYSTEMD
|
|
# - If the required kernel options have changed, update the Config.in
|
|
# help text and the list of KCONFIG_ENABLE_OPT.
|
|
# - Check if there are new meson_options. Make sure all options are set
|
|
# explicitly (usually to default value).
|
|
# - If there are new services:
|
|
# - create new options for them (if they really are optional);
|
|
# - create a new _USER if necessary;
|
|
# - create new directory (with _PERMISSIONS) if necessary.
|
|
# - Diff sysusers.d with the previous version
|
|
# - Diff factory/etc/nsswitch.conf with the previous version
|
|
# (details are often sprinkled around in README and manpages)
|
|
SYSTEMD_VERSION = 250.4
|
|
SYSTEMD_SITE = $(call github,systemd,systemd-stable,v$(SYSTEMD_VERSION))
|
|
SYSTEMD_LICENSE = \
|
|
LGPL-2.1+, \
|
|
GPL-2.0+ (udev), \
|
|
Public Domain (few source files, see LICENSES/README.md), \
|
|
BSD-2-Clause (eBPF instruction mini library), \
|
|
BSD-3-Clause (tools/chromiumos), \
|
|
CC0-1.0 (few source files, see LICENSES/README.md), \
|
|
GPL-2.0 with Linux-syscall-note (linux kernel headers), \
|
|
MIT (few source files, see LICENSES/README.md), \
|
|
OFL-1.1 (Heebo fonts)
|
|
SYSTEMD_LICENSE_FILES = \
|
|
LICENSE.GPL2 \
|
|
LICENSE.LGPL2.1 \
|
|
LICENSES/BSD-2-Clause.txt \
|
|
LICENSES/BSD-3-Clause.txt \
|
|
LICENSES/CC0-1.0.txt \
|
|
LICENSES/LGPL-2.0-or-later.txt \
|
|
LICENSES/Linux-syscall-note.txt \
|
|
LICENSES/lookup3-public-domain.txt \
|
|
LICENSES/MIT.txt \
|
|
LICENSES/murmurhash2-public-domain.txt \
|
|
LICENSES/OFL-1.1.txt \
|
|
LICENSES/README.md
|
|
SYSTEMD_CPE_ID_VENDOR = freedesktop
|
|
SYSTEMD_INSTALL_STAGING = YES
|
|
SYSTEMD_DEPENDENCIES = \
|
|
$(BR2_COREUTILS_HOST_DEPENDENCY) \
|
|
$(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \
|
|
host-gperf \
|
|
host-python-jinja2 \
|
|
kmod \
|
|
libcap \
|
|
util-linux-libs \
|
|
$(TARGET_NLS_DEPENDENCIES)
|
|
|
|
SYSTEMD_SELINUX_MODULES = systemd udev xdg
|
|
|
|
SYSTEMD_PROVIDES = udev
|
|
|
|
SYSTEMD_CONF_OPTS += \
|
|
-Ddefault-hierarchy=unified \
|
|
-Didn=true \
|
|
-Dima=false \
|
|
-Dkexec-path=/usr/sbin/kexec \
|
|
-Dkmod-path=/usr/bin/kmod \
|
|
-Dldconfig=false \
|
|
-Dlink-boot-shared=true \
|
|
-Dloadkeys-path=/usr/bin/loadkeys \
|
|
-Dman=false \
|
|
-Dmount-path=/usr/bin/mount \
|
|
-Dmode=release \
|
|
-Dnss-systemd=true \
|
|
-Dquotacheck-path=/usr/sbin/quotacheck \
|
|
-Dquotaon-path=/usr/sbin/quotaon \
|
|
-Drootlibdir='/usr/lib' \
|
|
-Dsetfont-path=/usr/bin/setfont \
|
|
-Dsplit-bin=true \
|
|
-Dsplit-usr=false \
|
|
-Dsulogin-path=/usr/sbin/sulogin \
|
|
-Dsystem-gid-max=999 \
|
|
-Dsystem-uid-max=999 \
|
|
-Dsysvinit-path= \
|
|
-Dsysvrcnd-path= \
|
|
-Dtelinit-path= \
|
|
-Dtests=false \
|
|
-Dtmpfiles=true \
|
|
-Dumount-path=/usr/bin/umount \
|
|
-Dutmp=false
|
|
|
|
ifeq ($(BR2_nios2),y)
|
|
# Nios2 ld emits warnings, make warnings not to be treated as errors
|
|
SYSTEMD_LDFLAGS = $(TARGET_LDFLAGS) -Wl,--no-fatal-warnings
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ACL),y)
|
|
SYSTEMD_DEPENDENCIES += acl
|
|
SYSTEMD_CONF_OPTS += -Dacl=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dacl=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LESS),y)
|
|
SYSTEMD_CONF_OPTS += -Durlify=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Durlify=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y)
|
|
SYSTEMD_DEPENDENCIES += libapparmor
|
|
SYSTEMD_CONF_OPTS += -Dapparmor=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dapparmor=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_AUDIT),y)
|
|
SYSTEMD_DEPENDENCIES += audit
|
|
SYSTEMD_CONF_OPTS += -Daudit=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Daudit=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_CRYPTSETUP),y)
|
|
SYSTEMD_DEPENDENCIES += cryptsetup
|
|
SYSTEMD_CONF_OPTS += -Dlibcryptsetup=true -Dlibcryptsetup-plugins=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlibcryptsetup=false -Dlibcryptsetup-plugins=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ELFUTILS),y)
|
|
SYSTEMD_DEPENDENCIES += elfutils
|
|
SYSTEMD_CONF_OPTS += -Delfutils=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Delfutils=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_IPTABLES),y)
|
|
SYSTEMD_DEPENDENCIES += iptables
|
|
SYSTEMD_CONF_OPTS += -Dlibiptc=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlibiptc=false
|
|
endif
|
|
|
|
# Both options can't be selected at the same time so prefer libidn2
|
|
ifeq ($(BR2_PACKAGE_LIBIDN2),y)
|
|
SYSTEMD_DEPENDENCIES += libidn2
|
|
SYSTEMD_CONF_OPTS += -Dlibidn2=true -Dlibidn=false
|
|
else ifeq ($(BR2_PACKAGE_LIBIDN),y)
|
|
SYSTEMD_DEPENDENCIES += libidn
|
|
SYSTEMD_CONF_OPTS += -Dlibidn=true -Dlibidn2=false
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlibidn=false -Dlibidn2=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
|
|
SYSTEMD_DEPENDENCIES += libseccomp
|
|
SYSTEMD_CONF_OPTS += -Dseccomp=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dseccomp=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
|
|
SYSTEMD_DEPENDENCIES += libxkbcommon
|
|
SYSTEMD_CONF_OPTS += -Dxkbcommon=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dxkbcommon=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
|
SYSTEMD_DEPENDENCIES += bzip2
|
|
SYSTEMD_CONF_OPTS += -Dbzip2=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dbzip2=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZSTD),y)
|
|
SYSTEMD_DEPENDENCIES += zstd
|
|
SYSTEMD_CONF_OPTS += -Dzstd=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dzstd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LZ4),y)
|
|
SYSTEMD_DEPENDENCIES += lz4
|
|
SYSTEMD_CONF_OPTS += -Dlz4=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlz4=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
|
|
SYSTEMD_DEPENDENCIES += linux-pam
|
|
SYSTEMD_CONF_OPTS += -Dpam=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dpam=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),y)
|
|
SYSTEMD_CONF_OPTS += -Dfdisk=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dfdisk=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_VALGRIND),y)
|
|
SYSTEMD_DEPENDENCIES += valgrind
|
|
SYSTEMD_CONF_OPTS += -Dvalgrind=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dvalgrind=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XZ),y)
|
|
SYSTEMD_DEPENDENCIES += xz
|
|
SYSTEMD_CONF_OPTS += -Dxz=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dxz=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
|
SYSTEMD_DEPENDENCIES += zlib
|
|
SYSTEMD_CONF_OPTS += -Dzlib=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dzlib=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCURL),y)
|
|
SYSTEMD_DEPENDENCIES += libcurl
|
|
SYSTEMD_CONF_OPTS += -Dlibcurl=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlibcurl=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
|
|
SYSTEMD_DEPENDENCIES += libgcrypt
|
|
SYSTEMD_CONF_OPTS += -Ddefault-dnssec=allow-downgrade -Dgcrypt=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Ddefault-dnssec=no -Dgcrypt=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_P11_KIT),y)
|
|
SYSTEMD_DEPENDENCIES += p11-kit
|
|
SYSTEMD_CONF_OPTS += -Dp11kit=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dp11kit=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PCRE2),y)
|
|
SYSTEMD_DEPENDENCIES += pcre2
|
|
SYSTEMD_CONF_OPTS += -Dpcre2=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dpcre2=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y)
|
|
SYSTEMD_CONF_OPTS += -Dblkid=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dblkid=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),y)
|
|
SYSTEMD_CONF_OPTS += -Dnologin-path=/sbin/nologin
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dnologin-path=/bin/false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_INITRD),y)
|
|
SYSTEMD_CONF_OPTS += -Dinitrd=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dinitrd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_KERNELINSTALL),y)
|
|
SYSTEMD_CONF_OPTS += -Dkernel-install=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dkernel-install=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_ANALYZE),y)
|
|
SYSTEMD_CONF_OPTS += -Danalyze=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Danalyze=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE),y)
|
|
# remote also depends on libcurl, this is already added above.
|
|
SYSTEMD_DEPENDENCIES += libmicrohttpd
|
|
SYSTEMD_CONF_OPTS += -Dremote=true -Dmicrohttpd=true
|
|
SYSTEMD_REMOTE_USER = systemd-journal-remote -1 systemd-journal-remote -1 * - - - systemd Journal Remote
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dremote=false -Dmicrohttpd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
|
|
SYSTEMD_DEPENDENCIES += libqrencode
|
|
SYSTEMD_CONF_OPTS += -Dqrencode=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dqrencode=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
|
|
SYSTEMD_DEPENDENCIES += libselinux
|
|
SYSTEMD_CONF_OPTS += -Dselinux=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dselinux=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
|
|
SYSTEMD_CONF_OPTS += -Dhwdb=true
|
|
define SYSTEMD_BUILD_HWDB
|
|
$(HOST_DIR)/bin/udevadm hwdb --update --root $(TARGET_DIR)
|
|
endef
|
|
SYSTEMD_TARGET_FINALIZE_HOOKS += SYSTEMD_BUILD_HWDB
|
|
define SYSTEMD_RM_HWDB_SRV
|
|
rm -rf $(TARGET_DIR)/$(HOST_EUDEV_SYSCONFDIR)/udev/hwdb.d/
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_HWDB_SRV
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dhwdb=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
|
|
SYSTEMD_CONF_OPTS += -Dbinfmt=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dbinfmt=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y)
|
|
SYSTEMD_CONF_OPTS += -Dvconsole=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dvconsole=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y)
|
|
SYSTEMD_CONF_OPTS += -Dquotacheck=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dquotacheck=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y)
|
|
SYSTEMD_CONF_OPTS += -Dsysusers=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dsysusers=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y)
|
|
SYSTEMD_CONF_OPTS += -Dfirstboot=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dfirstboot=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y)
|
|
SYSTEMD_CONF_OPTS += -Drandomseed=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Drandomseed=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y)
|
|
SYSTEMD_CONF_OPTS += -Dbacklight=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dbacklight=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y)
|
|
SYSTEMD_CONF_OPTS += -Drfkill=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Drfkill=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y)
|
|
SYSTEMD_CONF_OPTS += -Dlogind=true
|
|
SYSTEMD_LOGIND_PERMISSIONS = /var/lib/systemd/linger d 755 0 0 - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlogind=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y)
|
|
SYSTEMD_CONF_OPTS += -Dmachined=true -Dnss-mymachines=true
|
|
SYSTEMD_MACHINED_PERMISSIONS = /var/lib/machines d 700 0 0 - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dmachined=false -Dnss-mymachines=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y)
|
|
SYSTEMD_CONF_OPTS += -Dimportd=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dimportd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HOMED),y)
|
|
SYSTEMD_CONF_OPTS += -Dhomed=true
|
|
SYSTEMD_DEPENDENCIES += cryptsetup openssl
|
|
SYSTEMD_HOMED_PERMISSIONS = /var/lib/systemd/home d 755 0 0 - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dhomed=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y)
|
|
SYSTEMD_CONF_OPTS += -Dhostnamed=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dhostnamed=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y)
|
|
SYSTEMD_CONF_OPTS += -Dnss-myhostname=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dnss-myhostname=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y)
|
|
SYSTEMD_CONF_OPTS += -Dtimedated=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dtimedated=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y)
|
|
SYSTEMD_CONF_OPTS += -Dlocaled=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dlocaled=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_REPART),y)
|
|
SYSTEMD_CONF_OPTS += -Drepart=true
|
|
SYSTEMD_DEPENDENCIES += openssl
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Drepart=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_USERDB),y)
|
|
SYSTEMD_CONF_OPTS += -Duserdb=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Duserdb=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y)
|
|
SYSTEMD_CONF_OPTS += -Dcoredump=true
|
|
SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * - - - systemd core dump processing
|
|
SYSTEMD_COREDUMP_PERMISSIONS = /var/lib/systemd/coredump d 755 0 0 - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dcoredump=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_PSTORE),y)
|
|
SYSTEMD_CONF_OPTS += -Dpstore=true
|
|
SYSTEMD_PSTORE_PERMISSIONS = /var/lib/systemd/pstore d 755 0 0 - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dpstore=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_OOMD),y)
|
|
SYSTEMD_CONF_OPTS += -Doomd=true
|
|
SYSTEMD_OOMD_USER = systemd-oom -1 systemd-oom -1 * - - - systemd Userspace OOM Killer
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Doomd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y)
|
|
SYSTEMD_CONF_OPTS += -Dpolkit=true
|
|
SYSTEMD_DEPENDENCIES += polkit
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dpolkit=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_PORTABLED),y)
|
|
SYSTEMD_CONF_OPTS += -Dportabled=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dportabled=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SYSEXT),y)
|
|
SYSTEMD_CONF_OPTS += -Dsysext=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dsysext=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
|
|
SYSTEMD_CONF_OPTS += -Dnetworkd=true
|
|
SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - systemd Network Management
|
|
SYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
|
|
ifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),)
|
|
define SYSTEMD_INSTALL_NETWORK_CONFS
|
|
sed s/SYSTEMD_NETWORKD_DHCP_IFACE/$(SYSTEMD_NETWORKD_DHCP_IFACE)/ \
|
|
$(SYSTEMD_PKGDIR)/dhcp.network > \
|
|
$(TARGET_DIR)/etc/systemd/network/$(SYSTEMD_NETWORKD_DHCP_IFACE).network
|
|
endef
|
|
endif
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dnetworkd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y)
|
|
define SYSTEMD_INSTALL_RESOLVCONF_HOOK
|
|
ln -sf ../run/systemd/resolve/resolv.conf \
|
|
$(TARGET_DIR)/etc/resolv.conf
|
|
endef
|
|
SYSTEMD_CONF_OPTS += -Dnss-resolve=true -Dresolve=true
|
|
SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - systemd Resolver
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dnss-resolve=false -Dresolve=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
|
|
SYSTEMD_CONF_OPTS += \
|
|
-Dgnutls=false \
|
|
-Dopenssl=true \
|
|
-Ddns-over-tls=openssl \
|
|
-Ddefault-dns-over-tls=opportunistic
|
|
SYSTEMD_DEPENDENCIES += openssl
|
|
else ifeq ($(BR2_PACKAGE_GNUTLS),y)
|
|
SYSTEMD_CONF_OPTS += \
|
|
-Dgnutls=true \
|
|
-Dopenssl=false \
|
|
-Ddns-over-tls=gnutls \
|
|
-Ddefault-dns-over-tls=opportunistic
|
|
SYSTEMD_DEPENDENCIES += gnutls
|
|
else
|
|
SYSTEMD_CONF_OPTS += \
|
|
-Dgnutls=false \
|
|
-Dopenssl=false \
|
|
-Ddns-over-tls=false \
|
|
-Ddefault-dns-over-tls=no
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
|
|
SYSTEMD_CONF_OPTS += -Dtimesyncd=true
|
|
SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - systemd Time Synchronization
|
|
SYSTEMD_TIMESYNCD_PERMISSIONS = /var/lib/systemd/timesync d 755 systemd-timesync systemd-timesync - - - - -
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dtimesyncd=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
|
|
SYSTEMD_CONF_OPTS += -Dsmack=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dsmack=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y)
|
|
SYSTEMD_CONF_OPTS += -Dhibernate=true
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Dhibernate=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_BOOT),y)
|
|
SYSTEMD_INSTALL_IMAGES = YES
|
|
SYSTEMD_DEPENDENCIES += gnu-efi
|
|
SYSTEMD_CONF_OPTS += \
|
|
-Defi=true \
|
|
-Dgnu-efi=true \
|
|
-Defi-cc=$(TARGET_CC) \
|
|
-Defi-ld=bfd \
|
|
-Defi-libdir=$(STAGING_DIR)/usr/lib \
|
|
-Defi-includedir=$(STAGING_DIR)/usr/include/efi
|
|
|
|
SYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH))
|
|
define SYSTEMD_INSTALL_BOOT_FILES
|
|
$(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \
|
|
$(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi
|
|
$(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \
|
|
$(BINARIES_DIR)/efi-part/loader/loader.conf
|
|
$(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \
|
|
$(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf
|
|
endef
|
|
|
|
else
|
|
SYSTEMD_CONF_OPTS += -Defi=false -Dgnu-efi=false
|
|
endif # BR2_PACKAGE_SYSTEMD_BOOT == y
|
|
|
|
SYSTEMD_FALLBACK_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
|
|
ifneq ($(SYSTEMD_FALLBACK_HOSTNAME),)
|
|
SYSTEMD_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME)
|
|
endif
|
|
|
|
define SYSTEMD_INSTALL_INIT_HOOK
|
|
ln -fs multi-user.target \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/default.target
|
|
endef
|
|
|
|
define SYSTEMD_INSTALL_MACHINEID_HOOK
|
|
touch $(TARGET_DIR)/etc/machine-id
|
|
endef
|
|
|
|
SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
|
|
SYSTEMD_INSTALL_INIT_HOOK \
|
|
SYSTEMD_INSTALL_MACHINEID_HOOK
|
|
|
|
define SYSTEMD_INSTALL_IMAGES_CMDS
|
|
$(SYSTEMD_INSTALL_BOOT_FILES)
|
|
endef
|
|
|
|
define SYSTEMD_PERMISSIONS
|
|
/var/spool d 755 0 0 - - - - -
|
|
/var/lib d 755 0 0 - - - - -
|
|
/var/lib/private d 700 0 0 - - - - -
|
|
/var/log/private d 700 0 0 - - - - -
|
|
/var/cache/private d 700 0 0 - - - - -
|
|
$(SYSTEMD_LOGIND_PERMISSIONS)
|
|
$(SYSTEMD_MACHINED_PERMISSIONS)
|
|
$(SYSTEMD_HOMED_PERMISSIONS)
|
|
$(SYSTEMD_COREDUMP_PERMISSIONS)
|
|
$(SYSTEMD_PSTORE_PERMISSIONS)
|
|
$(SYSTEMD_TIMESYNCD_PERMISSIONS)
|
|
endef
|
|
|
|
define SYSTEMD_USERS
|
|
# udev user groups
|
|
- - render -1 * - - - DRI rendering nodes
|
|
- - sgx -1 * - - - SGX device nodes
|
|
# systemd user groups
|
|
- - systemd-journal -1 * - - - Journal
|
|
$(SYSTEMD_REMOTE_USER)
|
|
$(SYSTEMD_COREDUMP_USER)
|
|
$(SYSTEMD_OOMD_USER)
|
|
$(SYSTEMD_NETWORKD_USER)
|
|
$(SYSTEMD_RESOLVED_USER)
|
|
$(SYSTEMD_TIMESYNCD_USER)
|
|
endef
|
|
|
|
define SYSTEMD_INSTALL_NSSCONFIG_HOOK
|
|
$(SED) '/^passwd:/ {/systemd/! s/$$/ systemd/}' \
|
|
-e '/^group:/ {/systemd/! s/$$/ [SUCCESS=merge] systemd/}' \
|
|
-e '/^shadow:/ {/systemd/! s/$$/ systemd/}' \
|
|
-e '/^gshadow:/ {/systemd/! s/$$/ systemd/}' \
|
|
$(if $(BR2_PACKAGE_SYSTEMD_RESOLVED), \
|
|
-e '/^hosts:/ s/[[:space:]]*mymachines//' \
|
|
-e '/^hosts:/ {/resolve/! s/files/resolve [!UNAVAIL=return] files/}' ) \
|
|
$(if $(BR2_PACKAGE_SYSTEMD_MYHOSTNAME), \
|
|
-e '/^hosts:/ {/myhostname/! s/files/files myhostname/}' ) \
|
|
$(if $(BR2_PACKAGE_SYSTEMD_MACHINED), \
|
|
-e '/^hosts:/ {/mymachines/! s/^\(hosts:[[:space:]]*\)/\1mymachines /}' ) \
|
|
$(TARGET_DIR)/etc/nsswitch.conf
|
|
endef
|
|
|
|
SYSTEMD_TARGET_FINALIZE_HOOKS += \
|
|
SYSTEMD_INSTALL_NSSCONFIG_HOOK \
|
|
SYSTEMD_INSTALL_RESOLVCONF_HOOK
|
|
|
|
ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
|
|
# systemd provides multiple units to autospawn getty as neede
|
|
# * getty@.service to start a getty on normal TTY
|
|
# * sertial-getty@.service to start a getty on serial lines
|
|
# * console-getty.service for generic /dev/console
|
|
# * container-getty@.service for a getty on /dev/pts/*
|
|
#
|
|
# the generator systemd-getty-generator will
|
|
# * read the console= kernel command line parameter
|
|
# * enable one of the above units depending on what it finds
|
|
#
|
|
# Systemd defaults to enablinb getty@tty1.service
|
|
#
|
|
# What we want to do
|
|
# * Enable a getty on $BR2_TARGET_GENERIC_TTY_PATH
|
|
# * Set the baudrate for all units according to BR2_TARGET_GENERIC_GETTY_BAUDRATE
|
|
# * Always enable a getty on the console using systemd-getty-generator
|
|
# (backward compatibility with previous releases of buildroot)
|
|
#
|
|
# What we do
|
|
# * disable getty@tty1 (enabled by upstream systemd)
|
|
# * enable getty@xxx if $BR2_TARGET_GENERIC_TTY_PATH is a tty
|
|
# * enable serial-getty@xxx for other $BR2_TARGET_GENERIC_TTY_PATH
|
|
# * rewrite baudrates if a baudrate is provided
|
|
define SYSTEMD_INSTALL_SERVICE_TTY
|
|
mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d; \
|
|
printf '[Install]\nDefaultInstance=\n' \
|
|
>$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \
|
|
if [ $(BR2_TARGET_GENERIC_GETTY_PORT) = "console" ]; \
|
|
then \
|
|
: ; \
|
|
elif echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
|
|
then \
|
|
printf '[Install]\nDefaultInstance=%s\n' \
|
|
$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \
|
|
>$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \
|
|
else \
|
|
mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d;\
|
|
printf '[Install]\nDefaultInstance=%s\n' \
|
|
$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \
|
|
>$(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d/buildroot-console.conf;\
|
|
fi; \
|
|
if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
|
|
then \
|
|
$(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/getty@.service; \
|
|
$(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/serial-getty@.service; \
|
|
$(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/console-getty@.service; \
|
|
$(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/container-getty@.service; \
|
|
fi
|
|
endef
|
|
endif
|
|
|
|
define SYSTEMD_INSTALL_PRESET
|
|
$(INSTALL) -D -m 644 $(SYSTEMD_PKGDIR)/80-buildroot.preset $(TARGET_DIR)/usr/lib/systemd/system-preset/80-buildroot.preset
|
|
endef
|
|
|
|
define SYSTEMD_INSTALL_INIT_SYSTEMD
|
|
$(SYSTEMD_INSTALL_PRESET)
|
|
$(SYSTEMD_INSTALL_SERVICE_TTY)
|
|
$(SYSTEMD_INSTALL_NETWORK_CONFS)
|
|
endef
|
|
|
|
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
|
|
# Go through all files with scheme <basename>.<langext>.catalog
|
|
# and remove those where <langext> is not in LOCALE_NOPURGE
|
|
define SYSTEMD_LOCALE_PURGE_CATALOGS
|
|
for cfile in `find $(TARGET_DIR)/usr/lib/systemd/catalog -name '*.*.catalog'`; \
|
|
do \
|
|
basename=$${cfile##*/}; \
|
|
basename=$${basename%.catalog}; \
|
|
langext=$${basename#*.}; \
|
|
[ "$$langext" = "$${basename}" ] && continue; \
|
|
expr '$(LOCALE_NOPURGE)' : ".*\b$${langext}\b" >/dev/null && continue; \
|
|
rm -f "$$cfile"; \
|
|
done
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_LOCALE_PURGE_CATALOGS
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_CATALOGDB),y)
|
|
define SYSTEMD_UPDATE_CATALOGS
|
|
$(HOST_DIR)/bin/journalctl --root=$(TARGET_DIR) --update-catalog
|
|
install -D $(TARGET_DIR)/var/lib/systemd/catalog/database \
|
|
$(TARGET_DIR)/usr/share/factory/var/lib/systemd/catalog/database
|
|
rm $(TARGET_DIR)/var/lib/systemd/catalog/database
|
|
ln -sf /usr/share/factory/var/lib/systemd/catalog/database \
|
|
$(TARGET_DIR)/var/lib/systemd/catalog/database
|
|
grep -q '^L /var/lib/systemd/catalog/database' $(TARGET_DIR)/usr/lib/tmpfiles.d/var.conf || \
|
|
printf "\nL /var/lib/systemd/catalog/database\n" >> $(TARGET_DIR)/usr/lib/tmpfiles.d/var.conf
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_UPDATE_CATALOGS
|
|
endif
|
|
|
|
define SYSTEMD_RM_CATALOG_UPDATE_SERVICE
|
|
rm -rf $(TARGET_DIR)/usr/lib/systemd/catalog \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/systemd-journal-catalog-update.service \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/*/systemd-journal-catalog-update.service
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_CATALOG_UPDATE_SERVICE
|
|
|
|
define SYSTEMD_CREATE_TMPFILES_HOOK
|
|
HOST_SYSTEMD_TMPFILES=$(HOST_DIR)/bin/systemd-tmpfiles \
|
|
$(SYSTEMD_PKGDIR)/fakeroot_tmpfiles.sh $(TARGET_DIR)
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_CREATE_TMPFILES_HOOK
|
|
|
|
define SYSTEMD_PRESET_ALL
|
|
$(HOST_DIR)/bin/systemctl --root=$(TARGET_DIR) preset-all
|
|
endef
|
|
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_PRESET_ALL
|
|
|
|
SYSTEMD_CONF_ENV = $(HOST_UTF8_LOCALE_ENV)
|
|
SYSTEMD_NINJA_ENV = $(HOST_UTF8_LOCALE_ENV)
|
|
|
|
define SYSTEMD_LINUX_CONFIG_FIXUPS
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_SIGNALFD)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_TIMERFD)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_EPOLL)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_UNIX)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_SYSFS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_PROC_FS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_FHANDLE)
|
|
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
|
|
|
|
$(call KCONFIG_DISABLE_OPT,CONFIG_SYSFS_DEPRECATED)
|
|
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS_FS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS4_FS)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_POSIX_ACL)
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_XATTR)
|
|
endef
|
|
|
|
# We need a very minimal host variant, so we disable as much as possible.
|
|
HOST_SYSTEMD_CONF_OPTS = \
|
|
-Dsplit-bin=true \
|
|
-Dsplit-usr=false \
|
|
--prefix=/usr \
|
|
--libdir=lib \
|
|
--sysconfdir=/etc \
|
|
--localstatedir=/var \
|
|
-Dmode=release \
|
|
-Dutmp=false \
|
|
-Dhibernate=false \
|
|
-Dldconfig=false \
|
|
-Dresolve=false \
|
|
-Defi=false \
|
|
-Dtpm=false \
|
|
-Denvironment-d=false \
|
|
-Dbinfmt=false \
|
|
-Drepart=false \
|
|
-Dcoredump=false \
|
|
-Dpstore=false \
|
|
-Doomd=false \
|
|
-Dlogind=false \
|
|
-Dhostnamed=false \
|
|
-Dlocaled=false \
|
|
-Dmachined=false \
|
|
-Dportabled=false \
|
|
-Dsysext=false \
|
|
-Duserdb=false \
|
|
-Dhomed=false \
|
|
-Dnetworkd=false \
|
|
-Dtimedated=false \
|
|
-Dtimesyncd=false \
|
|
-Dremote=false \
|
|
-Dcreate-log-dirs=false \
|
|
-Dnss-myhostname=false \
|
|
-Dnss-mymachines=false \
|
|
-Dnss-resolve=false \
|
|
-Dnss-systemd=false \
|
|
-Dfirstboot=false \
|
|
-Drandomseed=false \
|
|
-Dbacklight=false \
|
|
-Dvconsole=false \
|
|
-Dquotacheck=false \
|
|
-Dsysusers=false \
|
|
-Dtmpfiles=true \
|
|
-Dimportd=false \
|
|
-Dhwdb=false \
|
|
-Drfkill=false \
|
|
-Dman=false \
|
|
-Dhtml=false \
|
|
-Dsmack=false \
|
|
-Dpolkit=false \
|
|
-Dblkid=false \
|
|
-Didn=false \
|
|
-Dadm-group=false \
|
|
-Dwheel-group=false \
|
|
-Dzlib=false \
|
|
-Dgshadow=false \
|
|
-Dima=false \
|
|
-Dtests=false \
|
|
-Dglib=false \
|
|
-Dacl=false \
|
|
-Dsysvinit-path='' \
|
|
-Dinitrd=false \
|
|
-Dxdg-autostart=false \
|
|
-Dkernel-install=false \
|
|
-Danalyze=false \
|
|
-Dlibcryptsetup=false \
|
|
-Daudit=false \
|
|
-Dzstd=false
|
|
|
|
HOST_SYSTEMD_DEPENDENCIES = \
|
|
$(BR2_COREUTILS_HOST_DEPENDENCY) \
|
|
host-util-linux \
|
|
host-patchelf \
|
|
host-libcap \
|
|
host-gperf \
|
|
host-python-jinja2
|
|
|
|
HOST_SYSTEMD_NINJA_ENV = DESTDIR=$(HOST_DIR)
|
|
|
|
# Fix RPATH After installation
|
|
# * systemd provides a install_rpath instruction to meson because the binaries
|
|
# need to link with libsystemd which is not in a standard path
|
|
# * meson can only replace the RPATH, not append to it
|
|
# * the original rpath is thus lost.
|
|
# * the original path had been tweaked by buildroot via LDFLAGS to add
|
|
# $(HOST_DIR)/lib
|
|
# * thus re-tweak rpath after the installation for all binaries that need it
|
|
HOST_SYSTEMD_HOST_TOOLS = busctl journalctl systemctl systemd-* udevadm
|
|
|
|
define HOST_SYSTEMD_FIX_RPATH
|
|
for f in $(addprefix $(HOST_DIR)/bin/,$(HOST_SYSTEMD_HOST_TOOLS)); do \
|
|
[ -e $$f ] || continue; \
|
|
$(HOST_DIR)/bin/patchelf --set-rpath $(HOST_DIR)/lib:$(HOST_DIR)/lib/systemd $${f} \
|
|
|| exit 1; \
|
|
done
|
|
endef
|
|
HOST_SYSTEMD_POST_INSTALL_HOOKS += HOST_SYSTEMD_FIX_RPATH
|
|
|
|
$(eval $(meson-package))
|
|
$(eval $(host-meson-package))
|