# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit autotools flag-o-matic toolchain-funcs DESCRIPTION="A set of tools to collect and process netflow data" HOMEPAGE="https://github.com/phaag/nfdump" SRC_URI="https://github.com/phaag/nfdump/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="BSD" SLOT="0/1.7.10" KEYWORDS="~amd64 ~x86" IUSE="debug ftconv jnat nfpcapd nfprofile readpcap test" RESTRICT="!test? ( test )" # lz4 and zstd are detected by pkg-config with no way to say no: found means # linked, and for lz4 missing means silently compiling the copy vendored under # src/libnffile/compress. Both are unconditional here so neither outcome is left # to what happens to be installed. zlib is genuinely optional -- only libft # (ftconv) requires it, and nfpcapd uses it to read gzipped pcaps. COMMON_DEPEND="app-arch/bzip2:= app-arch/lz4:= app-arch/zstd:= elibc_musl? ( sys-libs/fts-standalone ) ftconv? ( net-analyzer/flow-tools:= virtual/zlib:= ) nfpcapd? ( net-libs/libpcap:= virtual/zlib:= ) nfprofile? ( net-analyzer/rrdtool:= ) readpcap? ( net-libs/libpcap:= ) " DEPEND="${COMMON_DEPEND}" BDEPEND="app-alternatives/yacc sys-devel/flex " RDEPEND="${COMMON_DEPEND} acct-group/nfcapd acct-user/nfcapd " DOCS=( AUTHORS ChangeLog README.md ) src_prepare() { default # Automake pulls these in only in the !HAVE_LZ4 branch, so with the dependency # above they are dead -- and deleting them turns a failed lz4 detection into a # missing-source build failure instead of a bundled lz4 nobody notices. rm src/libnffile/compress/lz4*.[ch] || die eautoreconf } src_configure() { tc-export CC # bug #853763 use elibc_musl && append-libs "-lfts" local myeconfargs=( $(usex debug --enable-devel '') $(usex ftconv --enable-ftconv '') $(usex jnat --enable-jnat '') $(usex nfpcapd --enable-nfpcapd '') $(usex nfprofile --enable-nfprofile '') $(usex readpcap --enable-readpcap '') ) econf "${myeconfargs[@]}" } src_test() { # The cases share one generated dummy_flows.nf: runprepare.sh writes it, the # per-codec cases read it, runtest.sh consumes and deletes it. In parallel # they race and all but nftest fail. emake -j1 check } src_install() { default find "${ED}" -name '*.la' -delete || die newinitd "${FILESDIR}"/nfcapd.initd nfcapd newconfd "${FILESDIR}"/nfcapd.confd nfcapd }