5fb1b86782
The ifupdown scripts can be used independently of the init system, be it sysv, busybox or systemd; they could even be used when there is no init system (i.e. the user is providing his own). Currently, those ifupdown scripts are bundled in the skeleton. But we soon will have a skeleton specific to systemd, so we would be missing those scripts (when systemd-networkd is not enabled). So, move those scripts to their own package. To keep the current behaviour (before it is changed in future commits), we make that package default to y, but depend on the default skeleton. Instead of being a target-finalize hook, the scripts are installed as any other package are, with a package install-target command. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: drop empty IFUPDOWN_SCRIPTS_SOURCE] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
402 lines
10 KiB
Makefile
402 lines
10 KiB
Makefile
################################################################################
|
|
#
|
|
# systemd
|
|
#
|
|
################################################################################
|
|
|
|
SYSTEMD_VERSION = 233
|
|
SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION))
|
|
SYSTEMD_LICENSE = LGPL-2.1+, GPL-2.0+ (udev), Public Domain (few source files, see README)
|
|
SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
|
|
SYSTEMD_INSTALL_STAGING = YES
|
|
SYSTEMD_DEPENDENCIES = \
|
|
host-intltool \
|
|
libcap \
|
|
util-linux \
|
|
kmod \
|
|
host-gperf
|
|
|
|
SYSTEMD_PROVIDES = udev
|
|
SYSTEMD_AUTORECONF = YES
|
|
|
|
# Make sure that systemd will always be built after busybox so that we have
|
|
# a consistent init setup between two builds
|
|
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
|
SYSTEMD_DEPENDENCIES += busybox
|
|
endif
|
|
|
|
SYSTEMD_CONF_OPTS += \
|
|
--with-rootprefix= \
|
|
--enable-blkid \
|
|
--enable-static=no \
|
|
--disable-manpages \
|
|
--disable-ima \
|
|
--disable-libcryptsetup \
|
|
--disable-efi \
|
|
--disable-gnuefi \
|
|
--disable-ldconfig \
|
|
--disable-tests \
|
|
--disable-coverage \
|
|
--with-default-dnssec=no \
|
|
--without-python
|
|
|
|
SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
|
|
|
|
# Override paths to a few utilities needed at runtime, to
|
|
# avoid finding those we would install in $(HOST_DIR).
|
|
SYSTEMD_CONF_ENV = \
|
|
CFLAGS="$(SYSTEMD_CFLAGS)" \
|
|
ac_cv_path_KILL=/usr/bin/kill \
|
|
ac_cv_path_KMOD=/usr/bin/kmod \
|
|
ac_cv_path_KEXEC=/usr/sbin/kexec \
|
|
ac_cv_path_SULOGIN=/usr/sbin/sulogin \
|
|
ac_cv_path_MOUNT_PATH=/usr/bin/mount \
|
|
ac_cv_path_UMOUNT_PATH=/usr/bin/umount
|
|
|
|
define SYSTEMD_RUN_INTLTOOLIZE
|
|
cd $(@D) && $(HOST_DIR)/usr/bin/intltoolize --force --automake
|
|
endef
|
|
SYSTEMD_PRE_CONFIGURE_HOOKS += SYSTEMD_RUN_INTLTOOLIZE
|
|
|
|
ifeq ($(BR2_PACKAGE_ACL),y)
|
|
SYSTEMD_CONF_OPTS += --enable-acl
|
|
SYSTEMD_DEPENDENCIES += acl
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-acl
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_AUDIT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-audit
|
|
SYSTEMD_DEPENDENCIES += audit
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-audit
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBIDN),y)
|
|
SYSTEMD_CONF_OPTS += --enable-libidn
|
|
SYSTEMD_DEPENDENCIES += libidn
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-libidn
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
|
|
SYSTEMD_CONF_OPTS += --enable-seccomp
|
|
SYSTEMD_DEPENDENCIES += libseccomp
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-seccomp
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
|
|
SYSTEMD_CONF_OPTS += --enable-xkbcommon
|
|
SYSTEMD_DEPENDENCIES += libxkbcommon
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-xkbcommon
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
|
SYSTEMD_DEPENDENCIES += bzip2
|
|
SYSTEMD_CONF_OPTS += --enable-bzip2
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-bzip2
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LZ4),y)
|
|
SYSTEMD_DEPENDENCIES += lz4
|
|
SYSTEMD_CONF_OPTS += --enable-lz4
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-lz4
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
|
|
SYSTEMD_DEPENDENCIES += linux-pam
|
|
SYSTEMD_CONF_OPTS += --enable-pam
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-pam
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_XZ),y)
|
|
SYSTEMD_DEPENDENCIES += xz
|
|
SYSTEMD_CONF_OPTS += --enable-xz
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-xz
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
|
SYSTEMD_DEPENDENCIES += zlib
|
|
SYSTEMD_CONF_OPTS += --enable-zlib
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-zlib
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCURL),y)
|
|
SYSTEMD_DEPENDENCIES += libcurl
|
|
SYSTEMD_CONF_OPTS += --enable-libcurl
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-libcurl
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
|
|
SYSTEMD_DEPENDENCIES += libgcrypt
|
|
SYSTEMD_CONF_OPTS += \
|
|
--enable-gcrypt \
|
|
--with-libgcrypt-prefix=$(STAGING_DIR)/usr \
|
|
--with-libgpg-error-prefix=$(STAGING_DIR)/usr
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-gcrypt
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
|
|
SYSTEMD_DEPENDENCIES += libmicrohttpd
|
|
SYSTEMD_CONF_OPTS += --enable-microhttpd
|
|
ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
|
|
SYSTEMD_CONF_OPTS += --enable-qrencode
|
|
SYSTEMD_DEPENDENCIES += libqrencode
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-qrencode
|
|
endif
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-microhttpd --disable-qrencode
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
|
|
SYSTEMD_DEPENDENCIES += libselinux
|
|
SYSTEMD_CONF_OPTS += --enable-selinux
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-selinux
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
|
|
SYSTEMD_CONF_OPTS += --enable-hwdb
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-hwdb
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-binfmt
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-binfmt
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y)
|
|
SYSTEMD_CONF_OPTS += --enable-vconsole
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-vconsole
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y)
|
|
SYSTEMD_CONF_OPTS += --enable-quotacheck
|
|
SYSTEMD_CONF_ENV += \
|
|
ac_cv_path_QUOTAON=/usr/sbin/quotaon \
|
|
ac_cv_path_QUOTACHECK=/usr/sbin/quotacheck
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-quotacheck
|
|
SYSTEMD_CONF_ENV += \
|
|
ac_cv_path_QUOTAON=/.missing \
|
|
ac_cv_path_QUOTACHECK=/.missing
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y)
|
|
SYSTEMD_CONF_OPTS += --enable-tmpfiles
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-tmpfiles
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y)
|
|
SYSTEMD_CONF_OPTS += --enable-sysusers
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-sysusers
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-firstboot
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-firstboot
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-randomseed
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-randomseed
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-backlight
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-backlight
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y)
|
|
SYSTEMD_CONF_OPTS += --enable-rfkill
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-rfkill
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y)
|
|
SYSTEMD_CONF_OPTS += --enable-logind
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-logind
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-machined
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-machined
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y)
|
|
SYSTEMD_CONF_OPTS += --enable-importd
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-importd
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-hostnamed
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-hostnamed
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y)
|
|
SYSTEMD_CONF_OPTS += --enable-myhostname
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-myhostname
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-timedated
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-timedated
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-localed
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-localed
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y)
|
|
SYSTEMD_CONF_OPTS += --enable-coredump
|
|
SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * /var/lib/systemd/coredump - - Core Dumper
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-coredump
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-polkit
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-polkit
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
|
|
SYSTEMD_CONF_OPTS += --enable-networkd
|
|
SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - Network Manager
|
|
define SYSTEMD_INSTALL_RESOLVCONF_HOOK
|
|
ln -sf ../run/systemd/resolve/resolv.conf \
|
|
$(TARGET_DIR)/etc/resolv.conf
|
|
endef
|
|
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)/ \
|
|
package/systemd/dhcp.network > \
|
|
$(TARGET_DIR)/etc/systemd/network/dhcp.network
|
|
endef
|
|
endif
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-networkd
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y)
|
|
SYSTEMD_CONF_OPTS += --enable-resolved
|
|
SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-resolved
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
|
|
SYSTEMD_CONF_OPTS += --enable-timesyncd
|
|
SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
|
|
define SYSTEMD_INSTALL_SERVICE_TIMESYNC
|
|
mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
|
|
ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
|
|
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
|
|
endef
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-timesyncd
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
|
|
SYSTEMD_CONF_OPTS += --enable-smack
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-smack
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y)
|
|
SYSTEMD_CONF_OPTS += --enable-hibernate
|
|
else
|
|
SYSTEMD_CONF_OPTS += --disable-hibernate
|
|
endif
|
|
|
|
define SYSTEMD_INSTALL_INIT_HOOK
|
|
ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
|
|
|
|
ln -fs ../../../lib/systemd/system/multi-user.target \
|
|
$(TARGET_DIR)/etc/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_USERS
|
|
- - input -1 * - - - Input device group
|
|
- - systemd-journal -1 * - - - Journal
|
|
systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus
|
|
systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
|
|
systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote
|
|
systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload
|
|
$(SYSTEMD_COREDUMP_USER)
|
|
$(SYSTEMD_NETWORKD_USER)
|
|
$(SYSTEMD_RESOLVED_USER)
|
|
$(SYSTEMD_TIMESYNCD_USER)
|
|
endef
|
|
|
|
define SYSTEMD_DISABLE_SERVICE_TTY1
|
|
rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
|
|
endef
|
|
|
|
ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
|
|
# systemd needs getty.service for VTs and serial-getty.service for serial ttys
|
|
# also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that
|
|
define SYSTEMD_INSTALL_SERVICE_TTY
|
|
if echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
|
|
then \
|
|
SERVICE="getty"; \
|
|
else \
|
|
SERVICE="serial-getty"; \
|
|
fi; \
|
|
ln -fs ../../../../lib/systemd/system/$${SERVICE}@.service \
|
|
$(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service; \
|
|
if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
|
|
then \
|
|
$(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${SERVICE}@.service; \
|
|
fi
|
|
endef
|
|
endif
|
|
|
|
define SYSTEMD_INSTALL_INIT_SYSTEMD
|
|
$(SYSTEMD_DISABLE_SERVICE_TTY1)
|
|
$(SYSTEMD_INSTALL_SERVICE_TTY)
|
|
$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
|
|
$(SYSTEMD_INSTALL_NETWORK_CONFS)
|
|
endef
|
|
|
|
$(eval $(autotools-package))
|