refpolicy / minimum: support compressed policy

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Xin Ouyang <xin.ouyang@windriver.com>
This commit is contained in:
Wenzong Fan 2014-07-29 03:30:08 -04:00 committed by Xin Ouyang
parent d93fd73990
commit ddd4ab01f1

View File

@ -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
}