From patchwork Tue Dec 16 03:54:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Weber X-Patchwork-Id: 421783 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 A18651400DD for ; Tue, 16 Dec 2014 14:57:08 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id D63EA8AE5E; Tue, 16 Dec 2014 03:57:07 +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 lqudQAarqH-X; Tue, 16 Dec 2014 03:57:03 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id B53178AE6B; Tue, 16 Dec 2014 03:55:26 +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 74E601C2238 for ; Tue, 16 Dec 2014 03:54:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 6C9198A885 for ; Tue, 16 Dec 2014 03:54:53 +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 1nVEhTHLL2qV for ; Tue, 16 Dec 2014 03:54:46 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from secvs02.rockwellcollins.com (secvs02.rockwellcollins.com [205.175.225.241]) by whitealder.osuosl.org (Postfix) with ESMTPS id 89AC38A8B7 for ; Tue, 16 Dec 2014 03:54:43 +0000 (UTC) Received: from nosuchhost.198.131.in-addr.arpa (HELO crulimr02.rockwellcollins.com) ([131.198.26.125]) by secvs02.rockwellcollins.com with ESMTP; 15 Dec 2014 21:54:42 -0600 X-Received: from smtplb.rockwellcollins.com (smtplb.rockwellcollins.com [131.198.63.134]) by crulimr02.rockwellcollins.com (Postfix) with ESMTP id 7A81B6091B; Mon, 15 Dec 2014 21:54:42 -0600 (CST) X-Received: from largo.rockwellcollins.com (unknown [192.168.140.76]) by smtplb.rockwellcollins.com (Postfix) with ESMTP id 71394801EF; Mon, 15 Dec 2014 21:54:42 -0600 (CST) From: Matt Weber To: buildroot@busybox.net Date: Mon, 15 Dec 2014 21:54:06 -0600 Message-Id: <1418702062-61039-15-git-send-email-matthew.weber@rockwellcollins.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1418702062-61039-1-git-send-email-matthew.weber@rockwellcollins.com> References: <1418702062-61039-1-git-send-email-matthew.weber@rockwellcollins.com> Subject: [Buildroot] [PATCH 14/30] refpolicy: custom git repo 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" Signed-off-by: Matt Weber --- package/refpolicy-contrib/Config.in | 20 +++++++++++++++++ package/refpolicy-contrib/refpolicy-contrib.mk | 19 ++++++++++++++++ package/refpolicy/Config.in | 22 +++++++++++++++++++ package/refpolicy/refpolicy.mk | 30 ++++++++++++++++++++++---- 4 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 package/refpolicy-contrib/Config.in create mode 100644 package/refpolicy-contrib/refpolicy-contrib.mk diff --git a/package/refpolicy-contrib/Config.in b/package/refpolicy-contrib/Config.in new file mode 100644 index 0000000..1fc0c31 --- /dev/null +++ b/package/refpolicy-contrib/Config.in @@ -0,0 +1,20 @@ +if BR2_REFPOLICY_CUSTOM_GIT + +comment "A refpolicy contrib repository is required if using a refpolicy repo. (Contrib is a GIT submodule of refpolicy)" + +config BR2_PACKAGE_REFPOLICY_CONTRIB + bool "refpolicy-contrib" + help + A GIT submodule of the refpolicy package. + + +config BR2_REFPOLICY_CONTRIB_CUSTOM_REPO_URL + string "URL of custom contrib submodule repository" + +config BR2_REFPOLICY_CONTRIB_CUSTOM_REPO_VERSION + string "Custom contrib submodule repository version" + help + Revision to use in the typical format used by Git + e.g. a SHA id, a tag, branch, .. + +endif diff --git a/package/refpolicy-contrib/refpolicy-contrib.mk b/package/refpolicy-contrib/refpolicy-contrib.mk new file mode 100644 index 0000000..e13a3ff --- /dev/null +++ b/package/refpolicy-contrib/refpolicy-contrib.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# refpolicy-contrib +# +################################################################################ + +ifeq ($(BR2_REFPOLICY_CUSTOM_GIT),y) +REFPOLICY_CONTRIB_SITE = $(call qstrip,$(BR2_REFPOLICY_CONTRIB_CUSTOM_REPO_URL)) +REFPOLICY_CONTRIB_VERSION = $(call qstrip,$(BR2_REFPOLICY_CONTRIB_CUSTOM_REPO_VERSION)) +REFPOLICY_CONTRIB_SITE_METHOD = git + +# Inherits license from refpolicy as normally this is a submodule +REFPOLICY_CONTRIB_LICENSE = GPLv2 +REFPOLICY_CONTRIB_LICENSE_FILES = COPYING +endif + +# If refpolicy is from release archive, this contrib content is part of it. + +$(eval $(generic-package)) diff --git a/package/refpolicy/Config.in b/package/refpolicy/Config.in index 5f4046e..79b958e 100644 --- a/package/refpolicy/Config.in +++ b/package/refpolicy/Config.in @@ -62,6 +62,8 @@ config BR2_PACKAGE_REFPOLICY_MODULES_FILE SELinux policy modules to be included in the compiled policy. See policy/modules.conf in the refpolicy sources for the complete list of available modules. + NOTE: This file is only used if a Custom GIT repo is + not specified. config BR2_PACKAGE_REFPOLICY_MODULAR bool "Build a modular SELinux policy" @@ -71,4 +73,24 @@ config BR2_PACKAGE_REFPOLICY_MODULAR target. A modular policy can also be built if policies need to be modified without reloading the target. +config BR2_PACKAGE_REFPOLICY_CUSTOM_GIT + bool "Custom Git repository" + select BR2_PACKAGE_REFPOLICY_CONTRIB + help + This option allows Buildroot to get the refpolicy source + code from a Git repository. + +if BR2_PACKAGE_REFPOLICY_CUSTOM_GIT + +config BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL + string "URL of custom repository" + +config BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION + string "Custom repository version" + help + Revision to use in the typical format used by Git + e.g. a SHA id, a tag, branch, .. + +endif + endif diff --git a/package/refpolicy/refpolicy.mk b/package/refpolicy/refpolicy.mk index 81e104c..382f141 100644 --- a/package/refpolicy/refpolicy.mk +++ b/package/refpolicy/refpolicy.mk @@ -4,16 +4,23 @@ # ################################################################################ +ifeq ($(BR2_PACKAGE_REFPOLICY_CUSTOM_GIT),y) +REFPOLICY_SITE = $(call qstrip,$(BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL)) +REFPOLICY_VERSION = $(call qstrip,$(BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION)) +REFPOLICY_SITE_METHOD = git +REFPOLICY_DEPENDENCIES += refpolicy-contrib +else REFPOLICY_VERSION = 2.20130424 REFPOLICY_SOURCE = refpolicy-$(REFPOLICY_VERSION).tar.bz2 REFPOLICY_SITE = http://oss.tresys.com/files/refpolicy/ +endif REFPOLICY_LICENSE = GPLv2 REFPOLICY_LICENSE_FILES = COPYING # Cannot use multiple threads to build the reference policy REFPOLICY_MAKE = $(TARGET_MAKE_ENV) $(MAKE1) -REFPOLICY_DEPENDENCIES = host-m4 host-checkpolicy host-policycoreutils \ +REFPOLICY_DEPENDENCIES += host-m4 host-checkpolicy host-policycoreutils \ host-setools host-python-pyxml host-gawk policycoreutils REFPOLICY_INSTALL_STAGING = YES @@ -37,18 +44,33 @@ else REFPOLICY_MONOLITHIC = y endif +ifeq ($(BR2_PACKAGE_REFPOLICY_CUSTOM_GIT),y) +define REFPOLICY_GIT_SUBMODULE_SETUP + rsync -ar $(REFPOLICY_CONTRIB_DIR)/* $(@D)/policy/modules/contrib/ +endef +else +define REFPOLICY_CUSTOM_MODULES_CONF + cp -f $(REFPOLICY_MODULES_FILE) $(@D)/policy/modules.conf +endef +endif + define REFPOLICY_CONFIGURE_CMDS $(REFPOLICY_GIT_SUBMODULE_SETUP) # If an external repo is used to build refpolicy, this preserves the # custom modules.conf which defines the enabled components. - [ -f $(@D)/policy/modules.conf ] && mv $(@D)/policy/modules.conf $(@D)/modules.conf.bk + if [ -f $(@D)/policy/modules.conf ]; then \ + mv $(@D)/policy/modules.conf $(@D)/modules.conf.bk ; \ + fi $(REFPOLICY_MAKE) -C $(@D) bare $(REFPOLICY_MAKE_CMDS) DESTDIR=$(STAGING_DIR) $(SED) "/TYPE/c\TYPE = $(BR2_PACKAGE_REFPOLICY_TYPE)" $(@D)/build.conf $(SED) "/MONOLITHIC/c\MONOLITHIC = $(REFPOLICY_MONOLITHIC)" $(@D)/build.conf $(SED) "/NAME/c\NAME = $(REFPOLICY_POLICY_NAME)" $(@D)/build.conf $(REFPOLICY_MAKE) -C $(@D) conf $(REFPOLICY_MAKE_CMDS) DESTDIR=$(STAGING_DIR) - [ -f $(@D)/modules.conf.bk ] && echo "[Preserved modules.conf]" && \ - mv $(@D)/modules.conf.bk $(@D)/policy/modules.conf + if [ -f $(@D)/modules.conf.bk ]; then \ + echo "[Preserved modules.conf]" ; \ + mv $(@D)/modules.conf.bk $(@D)/policy/modules.conf ; \ + fi + $(REFPOLICY_CUSTOM_MODULES_CONF) endef define REFPOLICY_INSTALL_STAGING_CMDS