# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Force users doing their own patches to install their own tools AUTOTOOLS_AUTO_DEPEND=no inherit systemd autotools toolchain-funcs flag-o-matic git-r3 DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools" HOMEPAGE="https://netfilter.org/projects/iptables/" EGIT_REPO_URI="https://git.netfilter.org/iptables" LICENSE="GPL-2" # Subslot tracks libxtables as that's the one other packages generally link # against and iptables changes. Will have to revisit if other sonames change. SLOT="0/11" IUSE="conntrack ipq ipv6 netlink nftables pcap static-libs" COMMON_DEPEND=" conntrack? ( net-libs/libnetfilter_conntrack ) netlink? ( net-libs/libnfnetlink ) nftables? ( >=net-libs/libmnl-1.0 >=net-libs/libnftnl-1.0.5 ) pcap? ( net-libs/libpcap ) " DEPEND=" ${COMMON_DEPEND} virtual/os-headers " BDEPEND=" virtual/pkgconfig nftables? ( app-alternatives/lex app-alternatives/yacc ) " RDEPEND=" ${COMMON_DEPEND} nftables? ( net-misc/ethertypes ) " # !/dev/null; then elog "Current iptables implementation is unset, setting to ${default_iptables}" eselect iptables set "${default_iptables}" fi if use nftables; then local tables for tables in {arp,eb}tables; do if ! eselect ${tables} show &>/dev/null; then elog "Current ${tables} implementation is unset, setting to ${default_iptables}" eselect ${tables} set xtables-nft-multi fi done fi eselect iptables show } pkg_prerm() { if [[ -z ${REPLACED_BY_VERSION} ]]; then elog "Unsetting iptables symlinks before removal" eselect iptables unset fi if ! has_version 'net-firewall/ebtables'; then elog "Unsetting ebtables symlinks before removal" eselect ebtables unset elif [[ -z ${REPLACED_BY_VERSION} ]]; then elog "Resetting ebtables symlinks to ebtables-legacy" eselect ebtables set ebtables-legacy fi if ! has_version 'net-firewall/arptables'; then elog "Unsetting arptables symlinks before removal" eselect arptables unset elif [[ -z ${REPLACED_BY_VERSION} ]]; then elog "Resetting arptables symlinks to arptables-legacy" eselect arptables set arptables-legacy fi # The eselect module failing should not be fatal return 0 }