X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Fsystemd%2Fsystemd.mk;fp=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Fsystemd%2Fsystemd.mk;h=98bda028e28aef3b89291a2f36809c229b1a54ae;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/buildroot-2015.05/package/systemd/systemd.mk b/cirros-testvm/src-cirros/buildroot-2015.05/package/systemd/systemd.mk new file mode 100644 index 0000000..98bda02 --- /dev/null +++ b/cirros-testvm/src-cirros/buildroot-2015.05/package/systemd/systemd.mk @@ -0,0 +1,214 @@ +################################################################################ +# +# systemd +# +################################################################################ + +SYSTEMD_VERSION = 219 +SYSTEMD_SITE = http://www.freedesktop.org/software/systemd +SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz +SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README +SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 LICENSE.MIT +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= \ + --with-rootlibdir=/lib \ + --enable-static=no \ + --disable-manpages \ + --disable-selinux \ + --disable-pam \ + --disable-libcryptsetup \ + --with-dbuspolicydir=/etc/dbus-1/system.d \ + --with-dbussessionservicedir=/usr/share/dbus-1/services \ + --with-dbussystemservicedir=/usr/share/dbus-1/system-services \ + --enable-split-usr \ + --disable-efi \ + --disable-tests \ + --disable-dbus \ + --without-python + +SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto + +# Override path to kmod, used in kmod-static-nodes.service +SYSTEMD_CONF_ENV = \ + CFLAGS="$(SYSTEMD_CFLAGS)" \ + ac_cv_path_KMOD=/usr/bin/kmod + +ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y) +SYSTEMD_CONF_OPTS += --enable-compat-libs +else +SYSTEMD_CONF_OPTS += --disable-compat-libs +endif + +ifeq ($(BR2_PACKAGE_ACL),y) +SYSTEMD_CONF_OPTS += --enable-acl +SYSTEMD_DEPENDENCIES += acl +else +SYSTEMD_CONF_OPTS += --disable-acl +endif + +ifeq ($(BR2_PACKAGE_LIBGLIB2),y) +SYSTEMD_CONF_OPTS += --enable-gudev +SYSTEMD_DEPENDENCIES += libglib2 +else +SYSTEMD_CONF_OPTS += --disable-gudev +endif + +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +SYSTEMD_CONF_OPTS += --enable-seccomp +SYSTEMD_DEPENDENCIES += libseccomp +else +SYSTEMD_CONF_OPTS += --disable-seccomp +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y) +SYSTEMD_DEPENDENCIES += \ + xz \ + libgcrypt +SYSTEMD_CONF_OPTS += \ + --enable-xz \ + --enable-gcrypt \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr +else +SYSTEMD_CONF_OPTS += \ + --disable-xz \ + --disable-gcrypt +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y) +SYSTEMD_DEPENDENCIES += libmicrohttpd +else +SYSTEMD_CONF_OPTS += --disable-microhttpd +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y) +SYSTEMD_CONF_OPTS += --enable-networkd +define SYSTEMD_INSTALL_RESOLVCONF_HOOK + ln -sf ../run/systemd/resolve/resolv.conf \ + $(TARGET_DIR)/etc/resolv.conf +endef +else +SYSTEMD_CONF_OPTS += --disable-networkd +define SYSTEMD_INSTALL_SERVICE_NETWORK + $(INSTALL) -D -m 644 package/systemd/network.service \ + $(TARGET_DIR)/etc/systemd/system/network.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -fs ../network.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/network.service +endef +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y) +SYSTEMD_CONF_OPTS += --enable-timesyncd +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_BASH),) +SYSTEMD_CONF_OPTS += --with-bashcompletiondir= +endif + +ifeq ($(BR2_PACKAGE_ZSH),) +SYSTEMD_CONF_OPTS += --with-zshcompletiondir= +endif + +# mq_getattr needs -lrt +SYSTEMD_MAKE_OPTS += LIBS=-lrt +SYSTEMD_MAKE_OPTS += LDFLAGS+=-ldl + +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 + +define SYSTEMD_SANITIZE_PATH_IN_UNITS + find $(TARGET_DIR)/lib/systemd/system -name '*.service' \ + -exec $(SED) 's,$(HOST_DIR),,g' {} \; +endef + +# Disable ldconfig.service, as /sbin/ldconfig is not available when the +# target is built with a glibc-based toolchain. +define SYSTEMD_DISABLE_LDCONFIG_SERVICE_HOOK + rm -f $(TARGET_DIR)/lib/systemd/system/sysinit.target.wants/ldconfig.service +endef + +SYSTEMD_POST_INSTALL_TARGET_HOOKS += \ + SYSTEMD_INSTALL_INIT_HOOK \ + SYSTEMD_INSTALL_MACHINEID_HOOK \ + SYSTEMD_INSTALL_RESOLVCONF_HOOK \ + SYSTEMD_DISABLE_LDCONFIG_SERVICE_HOOK \ + SYSTEMD_SANITIZE_PATH_IN_UNITS + +define SYSTEMD_USERS + systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal + 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-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager + systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus + systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization + systemd-network -1 systemd-network -1 * - - - Network Manager + - - input -1 * - - - Input device group +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 +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 +endef +endif + +define SYSTEMD_INSTALL_INIT_SYSTEMD + $(SYSTEMD_DISABLE_SERVICE_TTY1) + $(SYSTEMD_INSTALL_SERVICE_TTY) + $(SYSTEMD_INSTALL_SERVICE_NETWORK) + $(SYSTEMD_INSTALL_SERVICE_TIMESYNC) +endef + +$(eval $(autotools-package))