blob: 415621c469985f92f70261b9015a3a9b2ca3deb4 [file] [log] [blame]
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools readme.gentoo-r1
DESCRIPTION="AIDE (Advanced Intrusion Detection Environment) is a file integrity checker"
HOMEPAGE="https://aide.github.io/ https://github.com/aide/aide"
COMMIT="7949feff20501724a43929ee7894b005812ffb4f" # 20200614
SRC_URI="https://github.com/aide/aide/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="*"
IUSE="acl audit curl e2fs mhash postgres prelink selinux xattr zlib"
REQUIRED_USE="
postgres? ( !mhash )
"
COMMON_DEPEND="
dev-libs/libpcre
acl? ( virtual/acl )
audit? ( sys-process/audit )
curl? ( net-misc/curl )
e2fs? ( sys-fs/e2fsprogs )
!mhash? (
dev-libs/libgcrypt:0=
dev-libs/libgpg-error
)
mhash? ( app-crypt/mhash )
postgres? ( dev-db/postgresql:= )
prelink? ( dev-libs/elfutils )
selinux? ( sys-libs/libselinux )
xattr? ( sys-apps/attr )
zlib? ( sys-libs/zlib )"
RDEPEND="
${COMMON_DEPEND}
selinux? ( sec-policy/selinux-aide )"
DEPEND="${COMMON_DEPEND}"
BDEPEND="
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
prelink? ( sys-devel/prelink )"
HTML_DOCS=( doc/manual.html )
DISABLE_AUTOFORMATTING=1
DOC_CONTENTS="
Example configuration file was installed at '${EPREFIX}/etc/aide/aide.conf'.
Please edit it to meet your needs. Refer to aide.conf(5) manual page
for more information.
A helper script, aideinit, was installed and can be used to make AIDE
management easier. Please run 'aideinit --help' for more information."
PATCHES=(
"${FILESDIR}/aide-0.16-fix-LIBS-LDFLAGS-mixing.patch"
"${FILESDIR}/aide-0.16-fix-acl-configure-option.patch"
# Remove not available gcrypt algorithm 7 DB_HAVAL
# See: https://sourceforge.net/p/aide/bugs/105/
"${FILESDIR}/${P}_define_hash_use_gcrypt.patch"
)
S="${WORKDIR}/${PN}-${COMMIT}"
pkg_setup() {
if use postgres; then
ewarn "\nWARNING!"
ewarn "You need to choose one of the postgres versions before building"
ewarn "\nPlease select a target postgres version/slot using:\n"
ewarn " ~# eselect postgresql list"
ewarn " ~# eselect postgresql set <version>\n"
fi
}
src_prepare() {
default
sed -i -e 's| -Werror||g' configure.ac || die
echo "m4_define([AIDE_VERSION], [${PV}])" > version.m4 || die
eautoreconf
}
src_configure() {
local myeconfargs=(
--sysconfdir="${EPREFIX}/etc/${PN}"
--with-confighmactype="sha512" # Override default weak MD5 hash.
--with-dbhmackey="sha512" # Override default weak MD5 hash.
# Disable broken l10n support: https://sourceforge.net/p/aide/bugs/98/
# This doesn't affect anything because there are no localizations yet.
--without-locale
--disable-static
$(use_with zlib)
$(use_with curl)
$(use_with acl posix-acl)
$(use_with selinux)
$(use_with prelink prelink "${EPREFIX}/usr/sbin/prelink")
$(use_with xattr)
$(use_with e2fs e2fsattrs)
$(use_with mhash mhash)
$(use_with !mhash gcrypt)
$(use_with postgres psql)
$(use_with audit)
)
econf "${myeconfargs[@]}"
}
src_install() {
default
readme.gentoo_create_doc
insinto /etc/${PN}
insopts -m0600
newins "${FILESDIR}"/aide.conf-r1 aide.conf
dosbin "${FILESDIR}"/aideinit
dodoc -r contrib/ "${FILESDIR}"/aide.cron
keepdir /var/{lib,log}/${PN}
}
pkg_postinst() {
readme.gentoo_print_elog
if use postgres; then
elog "\nDue to a bad assumption by aide, you must issue the following"
elog "command after the database initialization (aide --init ...):"
elog '\n ~# 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 "\nwhere TABLE, HOSTNAME, PORT, DBASE, and USER are the same as"
elog "in your aide.conf.\n"
fi
}