From ddd4ab01f1fa331d866ca8b2a3116c73e1b9395e Mon Sep 17 00:00:00 2001 From: Wenzong Fan Date: Tue, 29 Jul 2014 03:30:08 -0400 Subject: [PATCH] refpolicy / minimum: support compressed policy Signed-off-by: Wenzong Fan Signed-off-by: Xin Ouyang --- .../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 }