[yocto] [meta-selinux][PATCH 2/2] refpolicy / minimum: support compressed policy

wenzong.fan at windriver.com wenzong.fan at windriver.com
Tue Jul 29 00:30:08 PDT 2014


From: Wenzong Fan <wenzong.fan at windriver.com>

Signed-off-by: Wenzong Fan <wenzong.fan at windriver.com>
---
 .../refpolicy/refpolicy-minimum_2.20130424.bb      |   26 ++++++++++++++------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/recipes-security/refpolicy/refpolicy-minimum_2.20130424.bb b/recipes-security/refpolicy/refpolicy-minimum_2.20130424.bb
index ae9cb43..d9539f3 100644
--- a/recipes-security/refpolicy/refpolicy-minimum_2.20130424.bb
+++ b/recipes-security/refpolicy/refpolicy-minimum_2.20130424.bb
@@ -30,19 +30,29 @@ EXTRA_POLICY_MODULES += "mta"
 
 POLICY_MODULES_MIN = "${CORE_POLICY_MODULES} ${EXTRA_POLICY_MODULES}"
 
+# re-write the same func from refpolicy_common.inc
 prepare_policy_store () {
-	oe_runmake install \
-		DESTDIR=${D}
+	oe_runmake 'DESTDIR=${D}' 'prefix=${D}${prefix}' install
 
 	# Prepare to create policy store
 	mkdir -p ${D}${sysconfdir}/selinux/
 	mkdir -p ${D}${sysconfdir}/selinux/${POLICY_NAME}/policy
 	mkdir -p ${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/modules
 	mkdir -p ${D}${sysconfdir}/selinux/${POLICY_NAME}/contexts/files
-	bzip2 -c ${D}${datadir}/selinux/${POLICY_NAME}/base.pp  > \
-		${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/base.pp
-	for i in ${POLICY_MODULES_MIN}; do
-		bzip2 -c ${D}${datadir}/selinux/${POLICY_NAME}/$i.pp > \
-			${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/modules/$i.pp
-	done
+	touch ${D}${sysconfdir}/selinux/${POLICY_NAME}/contexts/files/file_contexts.local
+	if  ${@base_contains('DISTRO_FEATURES','compressed_policy','true','false',d)}; then
+		bzip2 base.pp
+		cp base.pp.bz2 ${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/base.pp
+		for i in ${POLICY_MODULES_MIN}; do
+			bzip2 $i
+			cp ${i}.bz2 ${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/modules/`basename $i`
+		done
+	else
+		bzip2 -c ${D}${datadir}/selinux/${POLICY_NAME}/base.pp  > \
+			${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/base.pp
+		for i in ${POLICY_MODULES_MIN}; do
+			bzip2 -c ${D}${datadir}/selinux/${POLICY_NAME}/$i.pp > \
+				${D}${sysconfdir}/selinux/${POLICY_NAME}/modules/active/modules/$i.pp
+		done
+	fi
 }
-- 
1.7.9.5




More information about the yocto mailing list