From patchwork Sun Jun 12 21:55:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 634256 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rSVBq0x9wz9snl for ; Mon, 13 Jun 2016 07:57:39 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=cCMonScH; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 8406C2EDA1; Sun, 12 Jun 2016 21:57:37 +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 dKCmpp6uxoXi; Sun, 12 Jun 2016 21:57:29 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 80EB72F951; Sun, 12 Jun 2016 21:56:33 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 97BD61C120C for ; Sun, 12 Jun 2016 21:55:56 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9123E89958 for ; Sun, 12 Jun 2016 21:55:56 +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 4vZzFK81wPRD for ; Sun, 12 Jun 2016 21:55:55 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by whitealder.osuosl.org (Postfix) with ESMTPS id 6E7098997F for ; Sun, 12 Jun 2016 21:55:55 +0000 (UTC) Received: by mail-wm0-f68.google.com with SMTP id n184so10729754wmn.1 for ; Sun, 12 Jun 2016 14:55:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=PQoJcOyv6a/w2nWwP7Gyj9UitG13E5V+rti90w9Kyvk=; b=cCMonScH553ofB1jmUjLlzzpYGwtjTgNLzgOw1P7gKA2iXkInSceUb8/O0p+/XTtWo hAL0QcPjpX7wPZu/GFIMknfr7/dpXZBNUdo22YYI2lpdaqpV7cqMF1wjPyA2LI3qMYV9 G7QjpqRO7rOrXWvVIzdxFEuYsaWyjp9wCW2baNvkaEgjlHkht37m9lU78Z7o12FxDiQV 6i0CO2VBNEIJpNkgGgy4I2zADwYTa11OxeQn6JAo17n+Y8uZCpuG/S/4cIAAa2b+89sb VqHE26FzrMemkQMtcCSeuGm+vEcQsHlKfTqYhmRnV5PAH6PY639yl7n2J9bN+6BravkA xQPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=PQoJcOyv6a/w2nWwP7Gyj9UitG13E5V+rti90w9Kyvk=; b=fW0ZtiB6RBYFwB3iRwYdSdHWiu2XFZdWwUNKltRBNLBCoDgiCJ3M7MJss5tom7MbaY eQtSsMUNRe+gRCP8WJpAjBrHkqn19x9ULp+WXvTCbtkbgouPsX1Xd0vohYNNBUFT1nHN guIBXYFYFaGBlwwpPObCNiEFDwOEoY4G/NcqdITauHhT/e0lhcuRj+XlhO0OuSkSQfoE MkmPkePTbWMkhj/lZKbkfJo1faPlCsh7NSjNtQoI6PaO1ImGzisNHCd1YOlGxSgrkeAC AJ6ofVSvGC43oiT4vQt3JN+TTduHxHo4jyFLpmww5JGk16lodVfSi+W4fs883TW3NiV3 WV3g== X-Gm-Message-State: ALyK8tIEvMBthCTYZCw/coun0is8iGlbZnvCi0zt2Geq8LkobuTosgr7I37k3MHMVmCkFw== X-Received: by 10.194.79.168 with SMTP id k8mr11463869wjx.52.1465768553982; Sun, 12 Jun 2016 14:55:53 -0700 (PDT) Received: from gourin.bzh.lan (ns304657.ip-46-105-103.eu. [46.105.103.66]) by smtp.gmail.com with ESMTPSA id e133sm10954151wma.6.2016.06.12.14.55.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 12 Jun 2016 14:55:53 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 12 Jun 2016 23:55:23 +0200 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Cc: "Yann E. MORIN" Subject: [Buildroot] [PATCH 18/24] package/skeleton-sysv: split into skeleton-common X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 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" Add skeleton-common, the base skeleton shared between the sysv/busybox and systemd skeletons (the latter to come in followup patches). Signed-off-by: "Yann E. MORIN" --- package/Config.in | 1 + package/skeleton-common/Config.in | 2 + package/skeleton-common/skeleton-common.mk | 99 ++++++++++++++++++++++++++++++ package/skeleton-sysv/Config.in | 1 + package/skeleton-sysv/skeleton-sysv.mk | 60 +----------------- package/skeleton/skeleton.mk | 25 +------- 6 files changed, 106 insertions(+), 82 deletions(-) create mode 100644 package/skeleton-common/Config.in create mode 100644 package/skeleton-common/skeleton-common.mk diff --git a/package/Config.in b/package/Config.in index 8eba40a..6956a2a 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2,6 +2,7 @@ menu "Target packages" source "package/busybox/Config.in" source "package/skeleton/Config.in" + source "package/skeleton-common/Config.in" source "package/skeleton-custom/Config.in" source "package/skeleton-sysv/Config.in" diff --git a/package/skeleton-common/Config.in b/package/skeleton-common/Config.in new file mode 100644 index 0000000..9abed42 --- /dev/null +++ b/package/skeleton-common/Config.in @@ -0,0 +1,2 @@ +config BR2_PACKAGE_SKELETON_COMMON + bool diff --git a/package/skeleton-common/skeleton-common.mk b/package/skeleton-common/skeleton-common.mk new file mode 100644 index 0000000..544cce7 --- /dev/null +++ b/package/skeleton-common/skeleton-common.mk @@ -0,0 +1,99 @@ +################################################################################ +# +# skeleton-common +# +################################################################################ + +SKELETON_COMMON_SOURCE = + +SKELETON_COMMON_ADD_TOOLCHAIN_DEPENDENCY = NO +SKELETON_COMMON_ADD_SKELETON_DEPENDENCY = NO + +SKELETON_COMMON_INSTALL_STAGING = YES + +SKELETON_COMMON_PATH = system/skeleton + +# Provided by the 'skeleton' package: +# - SKELETON_USR_SYMLINKS_OR_DIRS +# - SKELETON_LIB_SYMLINK + +SKELETON_COMMON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) +SKELETON_COMMON_TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) +SKELETON_COMMON_TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) +SKELETON_COMMON_TARGET_GENERIC_PASSWD_METHOD = $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD)) +SKELETON_COMMON_TARGET_GENERIC_BIN_SH = $(call qstrip,$(BR2_SYSTEM_BIN_SH)) + +ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y) +ifeq ($(SKELETON_TARGET_GENERIC_ROOT_PASSWD),) +SKELETON_ROOT_PASSWORD = +else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)),) +SKELETON_ROOT_PASSWORD = '$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)' +else +SKELETON_DEPENDENCIES += host-mkpasswd +# This variable will only be evaluated in the finalize stage, so we can +# be sure that host-mkpasswd will have already been built by that time. +SKELETON_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)"`" +endif +else # !BR2_TARGET_ENABLE_ROOT_LOGIN +SKELETON_ROOT_PASSWORD = "*" +endif + +define SKELETON_COMMON_INSTALL_TARGET_CMDS + $(call SKELETON_RSYNC,$(SKELETON_COMMON_PATH),$(TARGET_DIR)) + $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR)) + ln -snf lib $(TARGET_DIR)/$(SKELETON_LIB_SYMLINK) + ln -snf lib $(TARGET_DIR)/usr/$(SKELETON_LIB_SYMLINK) + $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ + $(TARGET_DIR_WARNING_FILE) +endef + +# For the staging dir, we don't really care about /bin and /sbin. +# But for consistency with the target dir, and to simplify the code, +# we still handle them for the merged or non-merged /usr cases. +# Since the toolchain is not yet available, the staging is not yet +# populated, so we need to create the directories in /usr +define SKELETON_COMMON_INSTALL_STAGING_CMDS + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/lib + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/bin + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/sbin + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include + $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR)) + ln -snf lib $(STAGING_DIR)/$(SKELETON_LIB_SYMLINK) + ln -snf lib $(STAGING_DIR)/usr/$(SKELETON_LIB_SYMLINK) +endef + +ifneq ($(SKELETON_COMMON_TARGET_GENERIC_HOSTNAME),) +define SKELETON_COMMON_SET_HOSTNAME + mkdir -p $(TARGET_DIR)/etc + echo "$(SKELETON_COMMON_TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname + $(SED) '$$a \127.0.1.1\t$(SKELETON_COMMON_TARGET_GENERIC_HOSTNAME)' \ + -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts +endef +SKELETON_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_COMMON_SET_HOSTNAME +endif + +ifneq ($(SKELETON_COMMON_TARGET_GENERIC_ISSUE),) +define SKELETON_COMMON_SET_ISSUE + mkdir -p $(TARGET_DIR)/etc + echo "$(SKELETON_COMMON_TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue +endef +SKELETON_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_COMMON_SET_ISSUE +endif + +define SKELETON_COMMON_SET_ROOT_PASSWD + $(SED) s,^root:[^:]*:,root:$(SKELETON_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow +endef +SKELETON_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_COMMON_SET_ROOT_PASSWD + +ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) +define SKELETON_COMMON_BIN_SH + rm -f $(TARGET_DIR)/bin/sh +endef +else +define SKELETON_COMMON_BIN_SH + ln -sf $(SKELETON_COMMON_TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh +endef +endif +SKELETON_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_COMMON_BIN_SH + +$(eval $(generic-package)) diff --git a/package/skeleton-sysv/Config.in b/package/skeleton-sysv/Config.in index 95c796f..2f6dbd9 100644 --- a/package/skeleton-sysv/Config.in +++ b/package/skeleton-sysv/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_SKELETON_SYSV bool select BR2_PACKAGE_HAS_SKELETON + select BR2_PACKAGE_SKELETON_COMMON config BR2_PACKAGE_PROVIDES_SKELETON default "skeleton-sysv" if BR2_PACKAGE_SKELETON_SYSV diff --git a/package/skeleton-sysv/skeleton-sysv.mk b/package/skeleton-sysv/skeleton-sysv.mk index aa0b65c..6e15b15 100644 --- a/package/skeleton-sysv/skeleton-sysv.mk +++ b/package/skeleton-sysv/skeleton-sysv.mk @@ -8,6 +8,8 @@ SKELETON_SYSV_SOURCE = SKELETON_SYSV_PROVIDES = skeleton +SKELETON_SYSV_DEPENDENCIES = skeleton-common + SKELETON_SYSV_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_SYSV_ADD_SKELETON_DEPENDENCY = NO @@ -27,48 +29,6 @@ SKELETON_SYSV_INSTALL_STAGING = YES # - SKELETON_SET_NETWORK_IFUPDOWN_LOOPBACK # - SKELETON_SET_NETWORK_IFUPDOWN_DHCP -define SKELETON_INSTALL_TARGET_CMDS - $(call SKELETON_RSYNC,system/skeleton,$(TARGET_DIR)) - $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR)) - ln -snf lib $(TARGET_DIR)/$(SKELETON_LIB_SYMLINK) - ln -snf lib $(TARGET_DIR)/usr/$(SKELETON_LIB_SYMLINK) - $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ - $(TARGET_DIR_WARNING_FILE) -endef - -# For the staging dir, we don't really care about /bin and /sbin. -# But for consistency with the target dir, and to simplify the code, -# we still handle them for the merged or non-merged /usr cases. -# Since the toolchain is not yet available, the staging is not yet -# populated, so we need to create the directories in /usr -define SKELETON_SYSV_INSTALL_STAGING_CMDS - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/lib - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/bin - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/sbin - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include - $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR)) - ln -snf lib $(STAGING_DIR)/$(SKELETON_LIB_SYMLINK) - ln -snf lib $(STAGING_DIR)/usr/$(SKELETON_LIB_SYMLINK) -endef - -ifneq ($(SKELETON_TARGET_GENERIC_HOSTNAME),) -define SKELETON_SYSV_SET_HOSTNAME - mkdir -p $(TARGET_DIR)/etc - echo "$(SKELETON_TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname - $(SED) '$$a \127.0.1.1\t$(SKELETON_TARGET_GENERIC_HOSTNAME)' \ - -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts -endef -SKELETON_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_SYSV_SET_HOSTNAME -endif - -ifneq ($(SKELETON_TARGET_GENERIC_ISSUE),) -define SKELETON_SYSV_SET_ISSUE - mkdir -p $(TARGET_DIR)/etc - echo "$(SKELETON_TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue -endef -SKELETON_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_SYSV_SET_ISSUE -endif - define SKELETON_SYSV_SET_NETWORK mkdir -p $(TARGET_DIR)/etc/network/ $(SKELETON_SET_NETWORK_IFUPDOWN_LOOPBACK) @@ -76,22 +36,6 @@ define SKELETON_SYSV_SET_NETWORK endef SKELETON_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_SYSV_SET_NETWORK -define SKELETON_SYSV_SET_ROOT_PASSWD - $(SED) s,^root:[^:]*:,root:$(SKELETON_SYSV_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow -endef -SKELETON_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_SYSV_SET_ROOT_PASSWD - -ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) -define SKELETON_SYSV_BIN_SH - rm -f $(TARGET_DIR)/bin/sh -endef -else -define SKELETON_SYSV_BIN_SH - ln -sf $(SKELETON_TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh -endef -endif -SKELETON_SYSV_TARGET_FINALIZE_HOOKS += SKELETON_SYSV_BIN_SH - ifeq ($(BR2_TARGET_GENERIC_GETTY),y) ifeq ($(BR2_INIT_SYSV),y) # In sysvinit inittab, the "id" must not be longer than 4 bytes, so we diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk index b791650..d93f939 100644 --- a/package/skeleton/skeleton.mk +++ b/package/skeleton/skeleton.mk @@ -16,10 +16,6 @@ $(eval $(virtual-package)) # The following definitions are to be used by the specific skeletons: # - SKELETON_USR_SYMLINKS_OR_DIRS # - SKELETON_LIB_SYMLINK -# - SKELETON_TARGET_GENERIC_HOSTNAME -# - SKELETON_TARGET_GENERIC_ISSUE -# - SKELETON_TARGET_ROOT_PASSWD -# - SKELETON_TARGET_GENERIC_BIN_SH # - SKELETON_TARGET_GENERIC_GETTY_PORT # - SKELETON_TARGET_GENERIC_GETTY_BAUDRATE # - SKELETON_TARGET_GENERIC_GETTY_TERM @@ -58,11 +54,7 @@ else SKELETON_LIB_SYMLINK = lib32 endif -SKELETON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) -SKELETON_TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) -SKELETON_TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) -SKELETON_TARGET_GENERIC_PASSWD_METHOD = $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD)) -SKELETON_TARGET_GENERIC_BIN_SH = $(call qstrip,$(BR2_SYSTEM_BIN_SH)) +# The various init systems have different ways of dealing with those: SKELETON_TARGET_GENERIC_GETTY_PORT = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) SKELETON_TARGET_GENERIC_GETTY_BAUDRATE = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) SKELETON_TARGET_GENERIC_GETTY_TERM = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) @@ -93,18 +85,3 @@ define SKELETON_SET_NETWORK_IFUPDOWN_DHCP $(TARGET_DIR)/etc/network/nfs_check endef endif - -ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y) -ifeq ($(SKELETON_TARGET_GENERIC_ROOT_PASSWD),) -SKELETON_ROOT_PASSWORD = -else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)),) -SKELETON_ROOT_PASSWORD = '$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)' -else -SKELETON_DEPENDENCIES += host-mkpasswd -# This variable will only be evaluated in the finalize stage, so we can -# be sure that host-mkpasswd will have already been built by that time. -SKELETON_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)"`" -endif -else # !BR2_TARGET_ENABLE_ROOT_LOGIN -SKELETON_ROOT_PASSWORD = "*" -endif