# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 DESCRIPTION="Open Source Host-based Intrusion Detection System" HOMEPAGE="https://www.ossec.net/" SRC_URI="https://github.com/ossec/ossec-hids/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64" IUSE="agent hybrid local mysql postgres server sqlite test" REQUIRED_USE="^^ ( agent hybrid local server ) ?? ( mysql postgres )" RESTRICT="!test? ( test )" RDEPEND="acct-user/ossec acct-user/ossecm acct-user/ossecr dev-libs/libevent dev-libs/libpcre2[jit] mysql? ( virtual/mysql ) postgres? ( dev-db/postgresql:= ) sqlite? ( dev-db/sqlite:3 )" DEPEND="${RDEPEND} test? ( dev-libs/check dev-python/python-subunit )" S="${WORKDIR}/${P}/src" declare -a MY_OPT src_prepare() { # Patch for the GCC version 10 -fno-common change. See # https://github.com/ossec/ossec-hids/pull/1875 eapply -p2 "${FILESDIR}/gcc-fno-common-${PV}.patch" eapply -p1 "${FILESDIR}/makefile-${PV}.patch" eapply_user } src_configure() { local target="local" use agent && target="agent" use hybrid && target="hybrid" use server && target="server" MY_OPT=( PCRE2_SYSTEM=yes TARGET=${target} USE_SQLITE=$(usex sqlite) V=0 ZLIB_SYSTEM=yes ) use mysql && MY_OPT+=( DATABASE=mysql ) use postgres && MY_OPT+=( DATABASE=pgsql ) } src_compile() { emake "${MY_OPT[@]}" PREFIX=/var/ossec } src_test() { emake "${MY_OPT[@]}" PREFIX=/var/ossec test } src_install() { keepdir /var/ossec/logs/{alerts,archives,firewall} keepdir /var/ossec/lua/{compiled,native} keepdir /var/ossec/queue/{agent-info,agentless,alerts,diff,fts,ossec,rids,rootcheck,syscheck} keepdir /var/ossec/{.ssh,stats,tmp,var/run} newenvd - 50ossec-hids <<<'CONFIG_PROTECT="/var/ossec/etc"' emake "${MY_OPT[@]}" PREFIX="${D}/var/ossec" install }