123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735 |
- ################################################################################
- #
- # systemd
- #
- ################################################################################
- SYSTEMD_VERSION = 246.5
- 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 README), BSD-3-Clause (tools/chromiumos)
- SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README tools/chromiumos/LICENSE
- SYSTEMD_INSTALL_STAGING = YES
- SYSTEMD_DEPENDENCIES = \
- $(BR2_COREUTILS_HOST_DEPENDENCY) \
- $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \
- host-gperf \
- kmod \
- libcap \
- util-linux-libs \
- $(TARGET_NLS_DEPENDENCIES)
- SYSTEMD_SELINUX_MODULES = systemd udev
- SYSTEMD_PROVIDES = udev
- SYSTEMD_CONF_OPTS += \
- -Ddefault-hierarchy=hybrid \
- -Didn=true \
- -Dima=false \
- -Dkexec-path=/usr/sbin/kexec \
- -Dkmod-path=/usr/bin/kmod \
- -Dldconfig=false \
- -Dloadkeys-path=/usr/bin/loadkeys \
- -Dman=false \
- -Dmount-path=/usr/bin/mount \
- -Dnss-systemd=true \
- -Dportabled=false \
- -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 \
- -Dumount-path=/usr/bin/umount \
- -Dutmp=false
- ifeq ($(BR2_PACKAGE_ACL),y)
- SYSTEMD_DEPENDENCIES += acl
- SYSTEMD_CONF_OPTS += -Dacl=true
- else
- SYSTEMD_CONF_OPTS += -Dacl=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
- else
- SYSTEMD_CONF_OPTS += -Dlibcryptsetup=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_GNUTLS),y)
- SYSTEMD_DEPENDENCIES += gnutls
- SYSTEMD_CONF_OPTS += -Dgnutls=true
- else
- SYSTEMD_CONF_OPTS += -Dgnutls=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_OPENSSL),y)
- SYSTEMD_DEPENDENCIES += openssl
- SYSTEMD_CONF_OPTS += -Dopenssl=true
- else
- SYSTEMD_CONF_OPTS += -Dopenssl=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_TMPFILES),y)
- SYSTEMD_CONF_OPTS += -Dtmpfiles=true
- else
- SYSTEMD_CONF_OPTS += -Dtmpfiles=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
- else
- SYSTEMD_CONF_OPTS += -Dlogind=false
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y)
- SYSTEMD_CONF_OPTS += -Dmachined=true -Dnss-mymachines=true
- 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
- 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
- else
- SYSTEMD_CONF_OPTS += -Dcoredump=false
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_PSTORE),y)
- SYSTEMD_CONF_OPTS += -Dpstore=true
- else
- SYSTEMD_CONF_OPTS += -Dpstore=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_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_GNUTLS),y)
- SYSTEMD_CONF_OPTS += -Ddns-over-tls=gnutls -Ddefault-dns-over-tls=opportunistic
- SYSTEMD_DEPENDENCIES += gnutls
- else ifeq ($(BR2_PACKAGE_OPENSSL),y)
- SYSTEMD_CONF_OPTS += -Ddns-over-tls=openssl -Ddefault-dns-over-tls=opportunistic
- SYSTEMD_DEPENDENCIES += openssl
- else
- SYSTEMD_CONF_OPTS += -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
- 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=$(TARGET_LD) \
- -Defi-libdir=$(STAGING_DIR)/usr/lib \
- -Defi-ldsdir=$(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
- echo "boot$(SYSTEMD_BOOT_EFI_ARCH).efi" > \
- $(BINARIES_DIR)/efi-part/startup.nsh
- $(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 \
- SYSTEMD_INSTALL_RESOLVCONF_HOOK
- define SYSTEMD_INSTALL_IMAGES_CMDS
- $(SYSTEMD_INSTALL_BOOT_FILES)
- endef
- define SYSTEMD_USERS
- # udev user groups
- # systemd user groups
- - - systemd-journal -1 * - - - Journal
- $(SYSTEMD_REMOTE_USER)
- $(SYSTEMD_COREDUMP_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/}' \
- $(if $(BR2_PACKAGE_SYSTEMD_RESOLVED), \
- -e '/^hosts:/ s/[[:space:]]*mymachines//' \
- -e '/^hosts:/ {/resolve/! s/files/files resolve [!UNAVAIL=return]/}' ) \
- $(if $(BR2_PACKAGE_SYSTEMD_MYHOSTNAME), \
- -e '/^hosts:/ {/myhostname/! s/$$/ myhostname/}' ) \
- $(if $(BR2_PACKAGE_SYSTEMD_MACHINED), \
- -e '/^passwd:/ {/mymachines/! s/files/files mymachines/}' \
- -e '/^group:/ {/mymachines/! s/files/files [SUCCESS=merge] mymachines/}' \
- -e '/^hosts:/ {/mymachines/! s/files/files mymachines/}' ) \
- $(TARGET_DIR)/etc/nsswitch.conf
- endef
- SYSTEMD_TARGET_FINALIZE_HOOKS += SYSTEMD_INSTALL_NSSCONFIG_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 $(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 $(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
- 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_CGROUPS)
- $(call KCONFIG_ENABLE_OPT,CONFIG_FHANDLE)
- $(call KCONFIG_ENABLE_OPT,CONFIG_EPOLL)
- $(call KCONFIG_ENABLE_OPT,CONFIG_SIGNALFD)
- $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERFD)
- $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER)
- $(call KCONFIG_ENABLE_OPT,CONFIG_PROC_FS)
- $(call KCONFIG_ENABLE_OPT,CONFIG_SYSFS)
- $(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 \
- -Dutmp=false \
- -Dhibernate=false \
- -Dldconfig=false \
- -Dresolve=false \
- -Defi=false \
- -Dtpm=false \
- -Denvironment-d=false \
- -Dbinfmt=false \
- -Drepart=false \
- -Dcoredump=false \
- -Dpstore=false \
- -Dlogind=false \
- -Dhostnamed=false \
- -Dlocaled=false \
- -Dmachined=false \
- -Dportabled=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=false \
- -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 \
- -Dsystemd-analyze=false \
- -Dlibcryptsetup=false \
- -Daudit=false \
- -Dzstd=false
- HOST_SYSTEMD_DEPENDENCIES = \
- $(BR2_COREUTILS_HOST_DEPENDENCY) \
- host-util-linux \
- host-patchelf \
- host-libcap \
- host-gperf
- 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))
|