# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ inherit autotools eutils DESCRIPTION="AIDE (Advanced Intrusion Detection Environment) is a replacement for Tripwire" HOMEPAGE="http://aide.sourceforge.net/" SRC_URI="mirror://sourceforge/aide/${P}.tar.gz" SLOT="0" LICENSE="GPL-2" KEYWORDS="amd64 x86" IUSE="acl curl mhash nls postgres selinux static xattr zlib" #IUSE="acl audit curl mhash nls postgres selinux static xattr zlib" # libsandbox: Can't dlopen libc: (null) RESTRICT="test" DEPEND="acl? ( sys-apps/acl ) curl? ( net-misc/curl ) mhash? ( >=app-crypt/mhash-0.9.2 ) !mhash? ( dev-libs/libgcrypt ) nls? ( virtual/libintl ) postgres? ( dev-db/postgresql ) selinux? ( sys-libs/libselinux sec-policy/selinux-aide ) xattr? ( sys-apps/attr ) zlib? ( sys-libs/zlib )" # audit? ( sys-process/audit ) RDEPEND="!static? ( ${DEPEND} )" DEPEND="${DEPEND} nls? ( sys-devel/gettext ) sys-devel/bison sys-devel/flex" pkg_setup() { if use mhash && use postgres ; then eerror "We cannot emerge aide with mhash and postgres USE flags at the same time." eerror "Please remove mhash OR postgres USE flags." die "Please remove either mhash or postgres USE flag." fi } src_unpack() { unpack ${A} cd "${S}" epatch "${FILESDIR}/${P}-gentoo.patch" # fix configure switch epatch "${FILESDIR}/${P}-configure.patch" # fix equal match issue, bug #204217 epatch "${FILESDIR}/${P}-equ-matching.patch" # fix libgcrypt issue, bug #266175 epatch "${FILESDIR}/${P}-libgrypt_init.patch" if ! use mhash ; then # dev-libs/libgcrypt doesn't support whirlpool algorithm sed -i -e 's/\+whirlpool//' doc/aide.conf.in || die fi if ! use selinux ; then sed -i -e 's/\+selinux//' doc/aide.conf.in || die fi if ! use xattr ; then sed -i -e 's/\+xattrs//' doc/aide.conf.in || die fi if ! use acl ; then sed -i -e 's/\+acl//' doc/aide.conf.in || die fi eautoreconf } src_compile() { local myconf=" $(use_with acl posix-acl) $(use_with !mhash gcrypt) $(use_with mhash mhash) $(use_with nls locale) $(use_with postgres psql) $(use_with selinux) $(use_enable static) $(use_with xattr) $(use_with zlib) --sysconfdir=/etc/aide" # $(use_with audit) # curl doesn't work with static use curl && ! use static && myconf="${myconf} --with-curl" econf ${myconf} || die "econf failed" # parallel make borked emake -j1 || die "emake failed" } src_install() { emake DESTDIR="${D}" install || die "emake install failed" keepdir /var/lib/aide fowners root:0 /var/lib/aide fperms 0755 /var/lib/aide keepdir /var/log/aide insinto /etc/aide doins "${FILESDIR}"/aide.conf dosbin "${FILESDIR}"/aideinit dodoc ChangeLog AUTHORS NEWS README "${FILESDIR}"/aide.cron dohtml doc/manual.html } pkg_postinst() { elog elog "A sample configuration file has been installed as" elog "/etc/aide/aide.conf. Please edit to meet your needs." elog "Read the aide.conf(5) manual page for more information." elog "A helper script, aideinit, has been installed and can" elog "be used to make AIDE management easier. Please run" elog "aideinit --help for more information" elog if use postgres; then elog "Due to a bad assumption by aide, you must issue the following" elog "command after the database initialization (aide --init ...):" elog elog 'psql -c "update pg_index set indisunique=false from pg_class \\ ' elog " where pg_class.relname='TABLE_pkey' and \ " elog ' pg_class.oid=pg_index.indexrelid" -h HOSTNAME -p PORT DBASE USER' elog elog "where TABLE, HOSTNAME, PORT, DBASE, and USER are the same as" elog "your aide.conf." elog fi }