summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild')
-rw-r--r--sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild146
1 files changed, 146 insertions, 0 deletions
diff --git a/sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild b/sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild
new file mode 100644
index 000000000000..600f3a8bf1e4
--- /dev/null
+++ b/sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/policycoreutils/policycoreutils-1.34.1.ebuild,v 1.1 2007/02/15 05:29:57 pebenito Exp $
+
+IUSE="nls pam"
+
+inherit eutils python
+
+EXTRAS_VER="1.17"
+SEMNG_VER="1.10"
+SELNX_VER="1.34"
+
+# BUGFIX_PATCH="${FILESDIR}/policycoreutils-1.30.6.diff"
+
+DESCRIPTION="SELinux core utilities"
+HOMEPAGE="http://www.nsa.gov/selinux"
+SRC_URI="http://www.nsa.gov/selinux/archives/${P}.tgz
+ mirror://gentoo/policycoreutils-extra-${EXTRAS_VER}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~mips ~ppc ~sparc ~x86"
+
+RDEPEND=">=sys-libs/libselinux-${SELNX_VER}
+ >=sys-libs/glibc-2.4
+ pam? ( sys-libs/pam )
+ =sys-libs/libsemanage-${SEMNG_VER}*"
+
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )"
+
+S2=${WORKDIR}/policycoreutils-extra
+
+throw_pam_warning() {
+ # this is an extremely important message that needs to be seen
+ # thus it being shown at the beginning and end of the ebuild
+
+ if ! useq pam; then
+ eerror "PAM is disabled. This is not a supported config for"
+ eerror "general use. Disabling PAM decreases security with"
+ eerror "respect to SELinux protection of authentication."
+ eerror "It also requires policy changes."
+ ebeep 4
+ epause 4
+ fi
+}
+
+pkg_setup() {
+ throw_pam_warning
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ [ ! -z "${BUGFIX_PATCH}" ] && epatch "${BUGFIX_PATCH}"
+
+ # This warning makes no sense, in this context
+ sed -i -e '/FILE/ s/;/=NULL;/' ${S}/audit2why/audit2why.c \
+ || die "audit2why sed failed"
+
+ # rlpkg is more useful than fixfiles
+ sed -i -e '/^all/s/fixfiles//' ${S}/scripts/Makefile \
+ || die "fixfiles sed 1 failed"
+ sed -i -e '/fixfiles/d' ${S}/scripts/Makefile \
+ || die "fixfiles sed 2 failed"
+
+ if ! useq pam; then
+ # disable pam
+ sed -i -e s/-lpam/-lcrypt/ -e s/-lpam_misc// -e s/-DUSE_PAM// \
+ ${S}/run_init/Makefile || die "PAM sed 1 failed"
+ sed -i -e s/-lpam/-lcrypt/ -e s/-lpam_misc// -e s/-DUSE_PAM// \
+ ${S}/newrole/Makefile || die "PAM sed 2 failed"
+ sed -i -e s/-lpam/-lcrypt/ -e s/-lpam_misc// -e s/-DUSE_PAM// \
+ ${S2}/src/Makefile || die "PAM sed 3 failed"
+ fi
+
+ if ! useq nls; then
+ # disable locale stuff
+ sed -i -e s/-DUSE_NLS// ${S}/run_init/Makefile \
+ || die "NLS sed 1 failed"
+ sed -i -e s/-DUSE_NLS// ${S}/newrole/Makefile \
+ || die "NLS sed 2 failed"
+ sed -i -e s/-DUSE_NLS// ${S}/load_policy/Makefile \
+ || die "NLS sed 3 failed"
+ sed -i -e 's/ po //' ${S}/Makefile \
+ || die "NLS sed 4 failed"
+ fi
+
+ # fix up to accept Gentoo CFLAGS
+ local SUBDIRS="`cd ${S} && find -type d | cut -d/ -f2`"
+ for i in ${SUBDIRS}; do
+ sed -i -e "s:-Wall:-Wall ${CFLAGS}:g" \
+ -e '/^AUDITH/d' \
+ ${S}/${i}/Makefile \
+ || die "${i} Makefile CFLAGS fix failed."
+
+ # disable audit support because the required version
+ # in portage does not exist yet
+ done
+}
+
+src_compile() {
+ python_version
+
+ einfo "Compiling policycoreutils"
+ emake -C ${S} PYLIBVER="python${PYVER}" || die
+ einfo "Compiling policycoreutils-extra"
+ emake -C ${S2} || die
+}
+
+src_install() {
+ python_version
+
+ einfo "Installing policycoreutils"
+ make DESTDIR="${D}" -C ${S} PYLIBVER="python${PYVER}" install || die
+ einfo "Installing policycoreutils-extra"
+ make DESTDIR="${D}" -C ${S2} install || die
+
+ # remove redhat-style init script
+ rm -fR ${D}/etc/rc.d
+
+ # compatibility symlink
+ dosym /sbin/setfiles /usr/sbin/setfiles
+
+ if ! useq pam; then
+ rm -fR ${D}/etc/pam.d
+ else
+ if has_version '<sys-libs/pam-0.99'; then
+ # install compat pam.d entries
+ # for older pam
+ make DESTDIR="${D}" -C ${S2}/pam.d install || die
+ fi
+ fi
+}
+
+pkg_postinst() {
+ python_version
+ python_mod_optimize ${ROOT}usr/lib/python${PYVER}/site-packages
+
+ throw_pam_warning
+}
+
+pkg_postrm() {
+ python_version
+ python_mod_cleanup ${ROOT}usr/lib/python${PYVER}/site-packages
+}