From patchwork Fri Mar 23 09:26:18 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 148412 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id A3D9EB6EEC for ; Fri, 23 Mar 2012 20:27:13 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id A8EAC8D41E; Fri, 23 Mar 2012 09:27:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GjS-Asoyjj+Q; Fri, 23 Mar 2012 09:26:57 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id B98228D55D; Fri, 23 Mar 2012 09:26:55 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id A54B98F753 for ; Fri, 23 Mar 2012 09:26:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9908F8E818 for ; Fri, 23 Mar 2012 09:26:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qE6KFkhN1Gap for ; Fri, 23 Mar 2012 09:26:43 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail.free-electrons.com (mail.free-electrons.com [88.190.12.23]) by whitealder.osuosl.org (Postfix) with ESMTP id F32B38D41E for ; Fri, 23 Mar 2012 09:26:42 +0000 (UTC) Received: by mail.free-electrons.com (Postfix, from userid 106) id B64C41B4; Fri, 23 Mar 2012 10:26:39 +0100 (CET) Received: from localhost (col31-4-88-188-83-94.fbx.proxad.net [88.188.83.94]) by mail.free-electrons.com (Postfix) with ESMTPSA id 7ED8D177 for ; Fri, 23 Mar 2012 10:26:25 +0100 (CET) From: Maxime Ripard To: buildroot@busybox.net Date: Fri, 23 Mar 2012 10:26:18 +0100 Message-Id: <30300fbbfd9026888fff79f2614c34081b202736.1332494567.git.maxime.ripard@free-electrons.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: References: In-Reply-To: References: Subject: [Buildroot] [PATCH 1/5] Add the systemd package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Signed-off-by: Maxime Ripard --- package/Config.in | 1 + package/dbus/dbus.mk | 4 ++ package/systemd/Config.in | 20 +++++++ package/systemd/systemd-37-fix-getty-unit.patch | 34 ++++++++++++ package/systemd/systemd.mk | 62 +++++++++++++++++++++++ package/udev/udev.mk | 4 ++ 6 files changed, 125 insertions(+), 0 deletions(-) create mode 100644 package/systemd/Config.in create mode 100644 package/systemd/systemd-37-fix-getty-unit.patch create mode 100644 package/systemd/systemd.mk diff --git a/package/Config.in b/package/Config.in index 85583c6..623c79a 100644 --- a/package/Config.in +++ b/package/Config.in @@ -577,6 +577,7 @@ source "package/rsyslog/Config.in" source "package/sysklogd/Config.in" source "package/sysvinit/Config.in" endif +source "package/systemd/Config.in" source "package/util-linux/Config.in" source "package/dsp-tools/Config.in" endmenu diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk index e18e291..0942b33 100644 --- a/package/dbus/dbus.mk +++ b/package/dbus/dbus.mk @@ -39,6 +39,10 @@ else DBUS_CONF_OPT += --without-x endif +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +DBUS_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system +endif + # fix rebuild (dbus makefile errors out if /var/lib/dbus is a symlink) define DBUS_REMOVE_VAR_LIB_DBUS rm -rf $(TARGET_DIR)/var/lib/dbus diff --git a/package/systemd/Config.in b/package/systemd/Config.in new file mode 100644 index 0000000..8df3318 --- /dev/null +++ b/package/systemd/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_SYSTEMD + bool "systemd" + depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV + depends on BR2_INET_IPV6 + select BR2_PACKAGE_DBUS + select BR2_PACKAGE_LIBCAP + 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. + + http://freedesktop.org/wiki/Software/systemd + +comment "systemd not available (depends on /dev management with udev and ipv6 support)" + depends on !(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV && BR2_INET_IPV6) diff --git a/package/systemd/systemd-37-fix-getty-unit.patch b/package/systemd/systemd-37-fix-getty-unit.patch new file mode 100644 index 0000000..6df54b1 --- /dev/null +++ b/package/systemd/systemd-37-fix-getty-unit.patch @@ -0,0 +1,34 @@ +Prefer getty to agetty in console setup systemd units + +Signed-off-by: Maxime Ripard +--- + units/getty@.service.m4 | 2 +- + units/serial-getty@.service.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-37/units/getty@.service.m4 +=================================================================== +--- systemd-37.orig/units/getty@.service.m4 ++++ systemd-37/units/getty@.service.m4 +@@ -32,7 +32,7 @@ + + [Service] + Environment=TERM=linux +-ExecStart=-/sbin/agetty %I 38400 ++ExecStart=-/sbin/getty -L %I 115200 vt100 + Restart=always + RestartSec=0 + UtmpIdentifier=%I +Index: systemd-37/units/serial-getty@.service.m4 +=================================================================== +--- systemd-37.orig/units/serial-getty@.service.m4 ++++ systemd-37/units/serial-getty@.service.m4 +@@ -32,7 +32,7 @@ + + [Service] + Environment=TERM=vt100 +-ExecStart=-/sbin/agetty -s %I 115200,38400,9600 ++ExecStart=-/sbin/getty -L %I 115200 vt100 + Restart=always + RestartSec=0 + UtmpIdentifier=%I diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk new file mode 100644 index 0000000..d615bbf --- /dev/null +++ b/package/systemd/systemd.mk @@ -0,0 +1,62 @@ +############################################################# +# +# systemd +# +############################################################# +SYSTEMD_VERSION = 37 +SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/ +SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.bz2 +SYSTEMD_DEPENDENCIES = \ + host-intltool \ + libcap \ + udev \ + dbus + +# Make sure that systemd will always be built after busybox so that we have +# a consitent init setup between two builds +ifeq ($(BR2_PACKAGE_BUSYBOX),y) + SYSTEMD_DEPENDENCIES += busybox +endif + +SYSTEMD_CONF_OPT += \ + --with-distro=other \ + --disable-selinux \ + --disable-pam \ + --disable-libcryptsetup \ + --disable-gtk \ + --disable-plymouth \ + --with-rootdir=/ \ + --with-dbuspolicydir=/etc/dbus-1/system.d \ + --with-dbussessionservicedir=/usr/share/dbus-1/services \ + --with-dbussystemservicedir=/usr/share/dbus-1/system-services \ + --with-dbusinterfacedir=/usr/share/dbus-1/interfaces \ + --with-udevrulesdir=/etc/udev/rules.d \ + --with-sysvinit-path=/etc/init.d/ \ + --without-sysvrcd-path + +ifeq ($(BR2_PACKAGE_ACL),y) + SYSTEMD_CONF_OPT += --enable-acl + SYSTEMD_DEPENDENCIES += acl +else + SYSTEMD_CONF_OPT += --disable-acl +endif + +define SYSTEMD_INSTALL_INIT_HOOK + ln -fs ../bin/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_TTY_HOOK + rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service + ln -fs ../../../../lib/systemd/system/serial-getty@.service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service +endef + +SYSTEMD_POST_INSTALL_TARGET_HOOKS += \ + SYSTEMD_INSTALL_INIT_HOOK \ + SYSTEMD_INSTALL_TTY_HOOK \ + +$(eval $(call AUTOTARGETS)) diff --git a/package/udev/udev.mk b/package/udev/udev.mk index d445a2f..ed41511 100644 --- a/package/udev/udev.mk +++ b/package/udev/udev.mk @@ -35,6 +35,10 @@ UDEV_CONF_OPT += \ --disable-gudev endif +ifeq ($(BR2_PACKAGE_SYSTEMD),y) + UDEV_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system/ +endif + define UDEV_INSTALL_INITSCRIPT $(INSTALL) -m 0755 package/udev/S10udev $(TARGET_DIR)/etc/init.d/S10udev endef