From patchwork Mon Nov 11 17:24:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsOpbXkgUk9TRU4=?= X-Patchwork-Id: 1193037 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=smile.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=smile-fr.20150623.gappssmtp.com header.i=@smile-fr.20150623.gappssmtp.com header.b="mFL2FRVL"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47Bd6t5sqTz9sP3 for ; Tue, 12 Nov 2019 04:25:10 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 20B2E8444E; Mon, 11 Nov 2019 17:25:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XTCSTh3VQfiz; Mon, 11 Nov 2019 17:25:01 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 77B8B820F7; Mon, 11 Nov 2019 17:25:01 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id BC1111BF955 for ; Mon, 11 Nov 2019 17:24:57 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id B9A6F20441 for ; Mon, 11 Nov 2019 17:24:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RynPjodpXOQj for ; Mon, 11 Nov 2019 17:24:56 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by silver.osuosl.org (Postfix) with ESMTPS id 6543520470 for ; Mon, 11 Nov 2019 17:24:56 +0000 (UTC) Received: by mail-wr1-f50.google.com with SMTP id n1so15487996wra.10 for ; Mon, 11 Nov 2019 09:24:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smile-fr.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BIEO0vXW8VnrjhFx87vqQ43FGP1GPDJDSUnn1ETeoTk=; b=mFL2FRVL2E0/d0maOZ9iTxfJhMnfN4AGZkKw2uyR7CkSbAPKQdz0hfJ+4Qz0P4Ax49 YKbQePCTlJzadFIi7+krAjHoEelZzseWt5mLLIg1ED8wudgwyRoK4GBnBORRGF+bCwJL guyWlchC6b+SZ2tUI7UnAqefR/h/dEhWMZWSv5PciDTY6GqIyRHHhaBDfetLS+usKnuS w4J5GrhvfAu6asti29aPGvK1r0VERHCWempd2Mcz/aTLnDMKzODSmtZe+I7cgExgFOht x4sFJEpvm+J/kpAi19tB7lCYvd/rZ5/+aX28GVyUnLsn5Cabbpt30BjDvA5B2aHMQwWQ rbNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BIEO0vXW8VnrjhFx87vqQ43FGP1GPDJDSUnn1ETeoTk=; b=ZIeUrCOLx4jj4S95cqNhTnCEvY/g+hoZWtKM4DXXp0v5yhfmF5MAtBJ3vvJ0CD36Go XTP0LtHAoQKNny5uxsc/3371m/ERXCq8yp2i9ZnVM/kQUjtQwm5ptQTliBrRFtVg346Z vB/tPPUrRiWltiYtJseZ0xdAUz+7vXlmE7KLJz50HBOjE5MLJ12fI6lUEPdWLAmxVjQn Rna94Y112+0Vzr5H1G1nTunUBh3mzqezv9WunHRP/l8j2izVivPq6pVyihbnF8oI69MB iWu5ygdU1JUER4KBgC50LbyvdwBB55jIimvonS10jC7niH40h9A57lZfzhD60VWxOHWd 65XA== X-Gm-Message-State: APjAAAUMDfzPmt7+0pfqdwNK6VQnv8I0FcamM+Anw6CIINcXw+sxVwzN E7kwEhcPofFZ6O9d002DRc7RC06i7g== X-Google-Smtp-Source: APXvYqw+EQoAtN21YJLMtDInIVsSRAVfIPdGxzpwkTSrXjWoXRvz1CMA3QBo0jfws559KZpkFw2How== X-Received: by 2002:adf:b64e:: with SMTP id i14mr20742937wre.332.1573493094501; Mon, 11 Nov 2019 09:24:54 -0800 (PST) Received: from localhost.localdomain (2a02-8428-0351-c201-62d6-24fd-3fad-e4ae.rev.sfr.net. [2a02:8428:351:c201:62d6:24fd:3fad:e4ae]) by smtp.googlemail.com with ESMTPSA id h15sm13393905wrb.44.2019.11.11.09.24.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Nov 2019 09:24:53 -0800 (PST) From: =?utf-8?b?SsOpcsOpbXkgUm9zZW4=?= To: buildroot@buildroot.org Date: Mon, 11 Nov 2019 18:24:36 +0100 Message-Id: <20191111172443.6874-3-jeremy.rosen@smile.fr> X-Mailer: git-send-email 2.24.0.rc1 In-Reply-To: <20191111172443.6874-1-jeremy.rosen@smile.fr> References: <20191111172443.6874-1-jeremy.rosen@smile.fr> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2 2/9] use host-systemctl preset all to enable units X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?SsOpcsOpbXkgUm9zZW4=?= Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" since v234 upstream recommands using systemctl preset-all to enable units. * add a buildroot specific preset file * use that file to disable getty@tty1 * make systemd depend on host-systemd * remove all link-creating code that systemd does for us. This does not change how other systemd-enabled packages work. --- package/systemd/80-buildroot.preset | 5 ++ package/systemd/Config.in | 1 + package/systemd/systemd.mk | 102 ++++------------------------ 3 files changed, 18 insertions(+), 90 deletions(-) create mode 100644 package/systemd/80-buildroot.preset diff --git a/package/systemd/80-buildroot.preset b/package/systemd/80-buildroot.preset new file mode 100644 index 0000000000..4074901cbd --- /dev/null +++ b/package/systemd/80-buildroot.preset @@ -0,0 +1,5 @@ +# Higher priority than systemd presets + +# by default systemd enables a getty on tty1 +# we don't want that because tty1 may not exist +disable getty@.service diff --git a/package/systemd/Config.in b/package/systemd/Config.in index aef39abe27..58c7696d65 100644 --- a/package/systemd/Config.in +++ b/package/systemd/Config.in @@ -35,6 +35,7 @@ menuconfig BR2_PACKAGE_SYSTEMD select BR2_PACKAGE_KMOD_TOOLS select BR2_TARGET_TZ_INFO select BR2_NEEDS_HOST_UTF8_LOCALE + select BR2_PACKAGE_HOST_SYSTEMD help systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk index d1db60b5ef..dc2ed80e7d 100644 --- a/package/systemd/systemd.mk +++ b/package/systemd/systemd.mk @@ -12,6 +12,7 @@ SYSTEMD_INSTALL_STAGING = YES SYSTEMD_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \ host-gperf \ + host-systemd \ kmod \ libcap \ util-linux \ @@ -52,12 +53,6 @@ endif ifeq ($(BR2_PACKAGE_AUDIT),y) SYSTEMD_DEPENDENCIES += audit SYSTEMD_CONF_OPTS += -Daudit=true -define SYSTEMD_INSTALL_SERVICE_AUDIT - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../../usr/lib/systemd/system/auditd.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/auditd.service -endef - else SYSTEMD_CONF_OPTS += -Daudit=false endif @@ -65,11 +60,6 @@ endif ifeq ($(BR2_PACKAGE_CRYPTSETUP),y) SYSTEMD_DEPENDENCIES += cryptsetup SYSTEMD_CONF_OPTS += -Dlibcryptsetup=true -define SYSTEMD_INSTALL_TARGET_CRYPTSETUP - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../../usr/lib/systemd/system/remote-cryptsetup.target \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/remote-cryptsetup.target -endef else SYSTEMD_CONF_OPTS += -Dlibcryptsetup=false endif @@ -270,11 +260,6 @@ endif ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y) SYSTEMD_CONF_OPTS += -Dmachined=true -define SYSTEMD_INSTALL_TARGET_MACHINED - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../../lib/systemd/system/machines.target \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/machines.target -endef else SYSTEMD_CONF_OPTS += -Dmachined=false endif @@ -318,11 +303,6 @@ endif ifeq ($(BR2_PACKAGE_SYSTEMD_PSTORE),y) SYSTEMD_CONF_OPTS += -Dpstore=true -define SYSTEMD_INSTALL_SERVICE_PSTORE - mkdir -p $(TARGET_DIR)/etc/systemd/system/systemd-remount-fs.service.wants - ln -sf ../../../../lib/systemd/system/systemd-pstore.service \ - $(TARGET_DIR)/etc/systemd/system/systemd-remount-fs.service.wants/systemd-pstore.service -endef else SYSTEMD_CONF_OPTS += -Dpstore=false endif @@ -337,24 +317,6 @@ endif ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y) SYSTEMD_CONF_OPTS += -Dnetworkd=true SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - Network Manager -define SYSTEMD_INSTALL_SOCKET_NETWORKD - mkdir -p $(TARGET_DIR)/etc/systemd/system/sockets.target.wants - ln -sf ../../../../lib/systemd/system/systemd-networkd.socket \ - $(TARGET_DIR)/etc/systemd/system/sockets.target.wants/systemd-networkd.socket -endef -define SYSTEMD_INSTALL_SERVICE_NETWORKD - ln -sf ../../../lib/systemd/system/systemd-networkd.service \ - $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.network1.service - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../../lib/systemd/system/systemd-networkd.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/systemd-networkd.service - mkdir -p $(TARGET_DIR)/etc/systemd/system/network-online.target.wants - ln -sf ../../../../lib/systemd/system/systemd-networkd-wait-online.service \ - $(TARGET_DIR)/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service - mkdir -p $(TARGET_DIR)/etc/systemd/system/network-pre.target.wants - ln -sf ../../../../lib/systemd/system/systemd-network-generator.service \ - $(TARGET_DIR)/etc/systemd/system/network-pre.target.wants/systemd-network-generator.service -endef SYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) ifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),) define SYSTEMD_INSTALL_NETWORK_CONFS @@ -374,13 +336,6 @@ define SYSTEMD_INSTALL_RESOLVCONF_HOOK endef SYSTEMD_CONF_OPTS += -Dresolve=true SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager -define SYSTEMD_INSTALL_SERVICE_RESOLVED - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../lib/systemd/system/systemd-resolved.service \ - $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.resolve1.service - ln -sf ../../../../lib/systemd/system/systemd-resolved.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/systemd-resolved.service -endef else SYSTEMD_CONF_OPTS += -Dresolve=false endif @@ -388,15 +343,6 @@ endif ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y) SYSTEMD_CONF_OPTS += -Dtimesyncd=true SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization -define SYSTEMD_INSTALL_SERVICE_TIMESYNCD - 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 - ln -sf ../../../../lib/systemd/system/systemd-time-wait-sync.service \ - $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service - ln -sf ../../../lib/systemd/system/systemd-timesyncd.service \ - $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.timesync1.service -endef else SYSTEMD_CONF_OPTS += -Dtimesyncd=false endif @@ -447,18 +393,8 @@ SYSTEMD_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME) 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 ../bin/systemctl $(TARGET_DIR)/sbin/shutdown - ln -fs ../../../lib/systemd/system/multi-user.target \ - $(TARGET_DIR)/etc/systemd/system/default.target - ln -fs ../../../lib/systemd/system/reboot.target \ - $(TARGET_DIR)/etc/systemd/system/ctrl-alt-del.target - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - ln -sf ../../../../lib/systemd/system/remote-fs.target \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/remote-fs.target + ln -fs multi-user.target \ + $(TARGET_DIR)/usr/lib/systemd/system/default.target endef define SYSTEMD_INSTALL_MACHINEID_HOOK @@ -466,9 +402,6 @@ define SYSTEMD_INSTALL_MACHINEID_HOOK endef SYSTEMD_POST_INSTALL_TARGET_HOOKS += \ - SYSTEMD_INSTALL_TARGET_CRYPTSETUP \ - SYSTEMD_INSTALL_TARGET_MACHINED \ - SYSTEMD_INSTALL_SOCKET_NETWORKD \ SYSTEMD_INSTALL_INIT_HOOK \ SYSTEMD_INSTALL_MACHINEID_HOOK \ SYSTEMD_INSTALL_RESOLVCONF_HOOK @@ -492,10 +425,6 @@ define SYSTEMD_USERS $(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 # note that console-getty.service should be used on /dev/console as it should not have dependencies @@ -523,30 +452,23 @@ define SYSTEMD_INSTALL_SERVICE_TTY endef endif -define SYSTEMD_INSTALL_SERVICE_AUTOVT - ln -sf ../../../lib/systemd/system/getty@.service \ - $(TARGET_DIR)/lib/systemd/system/autovt@.service -endef -define SYSTEMD_INSTALL_SERVICE_BOOT_CHECK - mkdir -p $(TARGET_DIR)/etc/systemd/system/boot-complete.target.requires - ln -sf ../../../../lib/systemd/system/systemd-boot-check-no-failures.service \ - $(TARGET_DIR)/etc/systemd/system/boot-complete.target.requires/systemd-boot-check-no-failures.service +define SYSTEMD_INSTALL_PRESET + $(INSTALL) -D -m 644 package/systemd/80-buildroot.preset $(TARGET_DIR)/usr/lib/systemd/system-preset/80-buildroot.preset endef define SYSTEMD_INSTALL_INIT_SYSTEMD - $(SYSTEMD_DISABLE_SERVICE_TTY1) + $(SYSTEMD_INSTALL_PRESET) $(SYSTEMD_INSTALL_SERVICE_TTY) - $(SYSTEMD_INSTALL_SERVICE_AUTOVT) - $(SYSTEMD_INSTALL_SERVICE_RESOLVED) - $(SYSTEMD_INSTALL_SERVICE_TIMESYNCD) $(SYSTEMD_INSTALL_NETWORK_CONFS) - $(SYSTEMD_INSTALL_SERVICE_PSTORE) - $(SYSTEMD_INSTALL_SERVICE_NETWORKD) - $(SYSTEMD_INSTALL_SERVICE_AUDIT) - $(SYSTEMD_INSTALL_SERVICE_BOOT_CHECK) endef +define SYSTEMD_PRESET_ALL + $(HOST_DIR)/bin/systemctl --root=$(TARGET_DIR) preset-all +endef +SYSTEMD_TARGET_FINALIZE_HOOKS += SYSTEMD_PRESET_ALL + + SYSTEMD_CONF_ENV = $(HOST_UTF8_LOCALE_ENV) SYSTEMD_NINJA_ENV = $(HOST_UTF8_LOCALE_ENV)