summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild')
-rw-r--r--sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild110
1 files changed, 110 insertions, 0 deletions
diff --git a/sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild b/sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild
new file mode 100644
index 000000000000..891bf536f8fa
--- /dev/null
+++ b/sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/selinux-small/selinux-small-2003011510-r2.ebuild,v 1.1 2003/03/20 06:27:21 method Exp $
+
+DESCRIPTION="SELinux policy compiler and example policies"
+HOMEPAGE="http://www.nsa.gov/selinux"
+SRC_URI="http://www.nsa.gov/selinux/archives/${P}.tgz
+ http://www.coker.com.au/selinux/selinux-small/selinux-small_2003011510-7.diff.gz
+ http://www.coker.com.au/selinux/policy.tgz"
+LICENSE="GPL-1"
+SLOT="0"
+S="${WORKDIR}/selinux"
+
+# to easily specify that libsecure is in the workdir
+LIBSECURE="-I${S}/libsecure/include -L${S}/libsecure/src"
+
+KEYWORDS="~x86"
+IUSE="selinux"
+DEPEND="<sys-libs/glibc-2.3.2
+ >=selinux-sources-2.4.20-r1
+ >=yacc-1.9.1"
+
+pkg_setup() {
+ use selinux || eend 1 "You must have selinux USE var"
+}
+
+src_compile() {
+ ln -s /usr/src/linux ${WORKDIR}/lsm-2.4
+
+ # fix up policy makefile
+ cd ${WORKDIR}/policy
+ sed -e 's:/usr/lib/selinux:/usr/flask:' < Makefile > Makefile.new
+ mv -f Makefile.new Makefile
+
+ cd ${S}
+ epatch ${WORKDIR}/selinux-small_2003011510-7.diff
+
+ einfo "Compiling checkpolicy"
+ cd ${S}/module
+ make all LSMVER=-2.4 || die "Checkpolicy compilation failed"
+
+ einfo "Compiling libsecure"
+ cd ${S}/libsecure
+ make SE_INC=/usr/include/linux/flask \
+ EXTRA_CFLAGS="${CFLAGS}" \
+ || die "libsecure compile failed."
+
+ einfo "Compiling utilities"
+ cd ${S}/setfiles
+ make CFLAGS="${CFLAGS} ${LIBSECURE}" \
+ LDFLAGS="-L${S}/libsecure/src" setfiles \
+ || die "setfiles compile failed."
+ cd ${S}/utils/newrole
+ make CFLAGS="${CFLAGS} ${LIBSECURE} -lcrypt" \
+ || die "newrole compile failed."
+ cd ${S}/utils/run_init
+ make CFLAGS="${CFLAGS} ${LIBSECURE} -lcrypt" \
+ || die "run_init compile failed."
+ cd ${S}/utils/spasswd
+ make CFLAGS="${CFLAGS} ${LIBSECURE}" \
+ LDFLAGS="-L${S}/libsecure/src -lcrypt" \
+ || die "spasswd compile failed."
+}
+
+src_install() {
+ # install policies
+ dosbin ${S}/module/checkpolicy/checkpolicy
+ dosbin ${S}/setfiles/setfiles
+ mkdir -p ${D}/etc/security/selinux/src
+ mv ${WORKDIR}/policy ${D}/etc/security/selinux/src
+
+ insinto /usr/include
+ doins ${S}/libsecure/include/*.h
+
+ dolib.a ${S}/libsecure/src/libsecure.a
+
+ dobin ${S}/libsecure/test/{avc_enforcing,avc_toggle,context_to_sid,sid_to_context,list_sids,chsid,lchsid,chsidfs,get_user_sids}
+ dosbin ${S}/libsecure/test/load_policy
+ dobin ${S}/utils/spasswd/{sadminpasswd,schfn,schsh,spasswd,suseradd,suserdel,svipw}
+ dobin ${S}/utils/run_init/run_init
+ dobin ${S}/utils/newrole/newrole
+
+ doman ${S}/setfiles/setfiles.8
+ doman ${S}/libsecure/man/man[12]/*
+ doman ${S}/utils/newrole/newrole.1
+ doman ${S}/utils/run_init/run_init.8
+}
+
+pkg_postinst() {
+ einfo
+ einfo "To recompile the policy and relabel the filesystem simply run:"
+ einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
+ einfo
+}
+
+pkg_config() {
+ cd /etc/security/selinux/src/policy
+
+ einfo "Compiling policy"
+ make policy || die "Policy compile failed (see above error messages)"
+
+ einfo "Installing policy"
+ make install || die "Policy installation failed"
+
+ einfo "Loading policy"
+ make load || die "Policy loading failed"
+
+ einfo "Relabeling filesystems -- This will take a very long time!"
+ make relabel || die "Relabeling failed (see above error messages)"
+}