Install this version:
emerge -a =net-analyzer/reaction-2.5.1
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =net-analyzer/reaction-2.5.1
Or alternatively:
emerge --autounmask-write -a =net-analyzer/reaction-2.5.1
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 2.5.1 | 8 | ~amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# The vendored dependency set includes crates (e.g. iroh, used only by the
# not-yet-packaged cluster plugin) whose MSRV is 1.91.
RUST_MIN_VER="1.91"
inherit cargo shell-completion systemd
DESCRIPTION="Scan logs and take action, a faster successor to fail2ban"
HOMEPAGE="https://reaction.ppom.me https://framagit.org/ppom/reaction"
SRC_URI="
https://framagit.org/ppom/reaction/-/archive/v${PV}/reaction-v${PV}.tar.gz -> ${P}.tar.gz
https://cafarelli.fr/gentoo/${P}-crates.tar.xz
"
S="${WORKDIR}/${PN}-v${PV}"
LICENSE="AGPL-3"
# Dependent crate licenses
LICENSE+="
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD
CDLA-Permissive-2.0 GPL-2 ISC MIT Unicode-3.0 Unlicense ZLIB
"
SLOT="0"
KEYWORDS="~amd64"
IUSE="munin"
# reaction shells out to the firewall tools selected in its configuration
# (iptables, nftables, ipset, ...), so there is no hard runtime dependency.
# The munin plugin needs munin-node and jq at runtime.
RDEPEND="munin? ( net-analyzer/munin app-misc/jq )"
# The test suite needs network access and live firewall privileges,
# neither of which is available in the sandbox.
RESTRICT="test"
src_configure() {
# Build only the core daemon. The optional plugins (nftables, ipset,
# cluster, virtual) are not packaged yet.
cargo_src_configure --bin reaction
}
src_install() {
cargo_src_install
local tdir
tdir=$(cargo_target_dir)
# Man pages and shell completions are generated by build.rs, but only
# during a release build.
if [[ -f ${tdir}/reaction.1 ]]; then
doman "${tdir}"/reaction*.1
fi
if [[ -f ${tdir}/reaction.bash ]]; then
newbashcomp "${tdir}"/reaction.bash reaction
fi
if [[ -f ${tdir}/reaction.fish ]]; then
dofishcomp "${tdir}"/reaction.fish
fi
if [[ -f ${tdir}/_reaction ]]; then
dozshcomp "${tdir}"/_reaction
fi
newinitd "${FILESDIR}"/reaction.initd reaction
newconfd "${FILESDIR}"/reaction.confd reaction
insinto /etc/logrotate.d
newins "${FILESDIR}"/reaction.logrotated reaction
systemd_dounit packaging/reaction.service
systemd_dounit packaging/system-reaction.slice
if use munin; then
exeinto /usr/libexec/munin/plugins
newexe "${FILESDIR}"/reaction.munin reaction
insinto /etc/munin/plugin-conf.d
newins "${FILESDIR}"/reaction.munin-conf reaction
fi
keepdir /etc/reaction
keepdir /var/lib/reaction
dodoc README.md
docinto examples
dodoc config/example.yml config/example.jsonnet
}
Manage flags for this package:
euse -i <flag> -p net-analyzer/reaction |
euse -E <flag> -p net-analyzer/reaction |
euse -D <flag> -p net-analyzer/reaction
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | reaction-2.5.1-crates.tar.xz | 37357576 bytes | https://cafarelli.fr/gentoo/reaction-2.5.1-crates.tar.xz |
| DIST | reaction-2.5.1.tar.gz | 207781 bytes | https://framagit.org/ppom/reaction/-/archive/v2.5.1/reaction-v2.5.1.tar.gz |