blob: d30a6f72b030b19047049054c398301185bf878f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sec-policy/selinux-base-policy/selinux-base-policy-20061015.ebuild,v 1.1 2006/10/15 20:24:07 pebenito Exp $
IUSE=""
inherit eutils
DESCRIPTION="Gentoo base policy for SELinux"
HOMEPAGE="http://www.gentoo.org/proj/en/hardened/selinux/"
SRC_URI="http://oss.tresys.com/files/refpolicy/refpolicy-${PV}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
#KEYWORDS="~x86 ~ppc ~sparc ~amd64 ~mips ~alpha"
KEYWORDS="x86 ppc sparc amd64 mips alpha"
RDEPEND=">=sys-apps/policycoreutils-1.30.30"
DEPEND="${RDEPEND}
sys-devel/m4
>=sys-apps/checkpolicy-1.30.12"
S=${WORKDIR}/
src_unpack() {
unpack ${A}
for i in ${POLICY_TYPES}; do
mkdir -p ${S}/${i}/policy
cp ${FILESDIR}/modules.conf.${i} ${S}/${i}/policy/modules.conf
done
}
src_compile() {
local OPTS="MONOLITHIC=n DISTRO=gentoo QUIET=y"
cd ${S}/refpolicy
make ${OPTS} generate || die "Failed to create generated module files"
make ${OPTS} xml || "XML generation failed."
for i in ${POLICY_TYPES}; do
# make ${OPTS} TYPE=${i} NAME=${i} LOCAL_ROOT=${S}/${i} conf \
# || die "${i} modules.conf update failed"
make ${OPTS} TYPE=${i} NAME=${i} LOCAL_ROOT=${S}/${i} base \
|| die "${i} compile failed"
done
}
src_install() {
local OPTS="MONOLITHIC=n DISTRO=gentoo QUIET=y DESTDIR=${D}"
cd ${S}/refpolicy
for i in ${POLICY_TYPES}; do
make ${OPTS} TYPE=${i} NAME=${i} LOCAL_ROOT=${S}/${i} install \
|| die "${i} install failed."
make ${OPTS} TYPE=${i} NAME=${i} install-headers \
|| die "${i} headers install failed."
echo "run_init_t" > ${D}/etc/selinux/${i}/contexts/run_init_type
echo "textrel_shlib_t" >> ${D}/etc/selinux/${i}/contexts/customizable_types
# libsemanage won't make this on its own
keepdir /etc/selinux/${i}/policy
done
dodoc doc/Makefile.example doc/example.{te,fc,if}
insinto /etc/selinux
doins ${FILESDIR}/config
}
pkg_postinst() {
if has "loadpolicy" $FEATURES ; then
for i in ${POLICY_TYPES}; do
einfo "Inserting base module into ${i} module store."
cd /usr/share/selinux/${i}
semodule -s ${i} -b base.pp
done
else
echo
echo
eerror "Policy has not been loaded. It is strongly suggested"
eerror "that the policy be loaded before continuing!!"
echo
einfo "Automatic policy loading can be enabled by adding"
einfo "\"loadpolicy\" to the FEATURES in make.conf."
echo
echo
ebeep 4
epause 4
fi
}
|