# Template file for 'iptables'
pkgname=iptables
version=1.8.10
revision=1
build_style=gnu-configure
configure_args="--enable-libipq --enable-shared --enable-devel --enable-bpf-compiler"
hostmakedepends="pkg-config flex"
makedepends="libpcap-devel libfl-devel libmnl-devel libnfnetlink-devel
 libnetfilter_conntrack-devel libnftnl-devel"
checkdepends="python3"
short_desc="Linux IPv[46] packet filtering ruleset"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="https://www.netfilter.org/"
distfiles="https://www.netfilter.org/projects/iptables/files/iptables-${version}.tar.xz"
checksum=5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c
alternatives="
 iptables:ip6tables:/usr/bin/xtables-legacy-multi
 iptables:ip6tables-restore:/usr/bin/xtables-legacy-multi
 iptables:ip6tables-save:/usr/bin/xtables-legacy-multi
 iptables:iptables:/usr/bin/xtables-legacy-multi
 iptables:iptables-restore:/usr/bin/xtables-legacy-multi
 iptables:iptables-save:/usr/bin/xtables-legacy-multi"
make_check=no #/etc/ethertypes is missing

pre_build() {
	rm include/linux/types.h
}

post_install() {
	vsv iptables
	vsv ip6tables
	vinstall ${FILESDIR}/iptables-flush.scripts 755 usr/libexec iptables-flush

	# Configuration files and rules.
	for f in empty.rules simple_firewall.rules; do
		vinstall ${FILESDIR}/${f} 644 etc/iptables
	done
	for f in filter mangle nat raw security; do
		vinstall ${FILESDIR}/empty-${f}.rules 644 \
			var/lib/iptables empty-${f}.rules
	done
	for f in ip{6,}tables{-save,-restore,}; do
		rm -f "${DESTDIR}/usr/bin/${f}"
	done
}

iptables-devel_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove "usr/lib/*.so"
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove usr/share/man/man3
	}
}

iptables-nft_package() {
	build_style=meta
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc="Iptables-compatible wrapper commands for nftables"
	alternatives="
		iptables:ip6tables:/usr/bin/xtables-nft-multi
		iptables:ip6tables-restore:/usr/bin/xtables-nft-multi
		iptables:ip6tables-save:/usr/bin/xtables-nft-multi
		iptables:iptables:/usr/bin/xtables-nft-multi
		iptables:iptables-restore:/usr/bin/xtables-nft-multi
		iptables:iptables-save:/usr/bin/xtables-nft-multi"
}
