| # Copyright 1999-2021 Gentoo Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI="7" |
| |
| inherit autotools |
| |
| MY_PV="$(ver_rs 3 '-' )" |
| MY_P="${PN}-${MY_PV}" |
| |
| DESCRIPTION="Controls Ethernet frame filtering on a Linux bridge, MAC NAT and brouting" |
| HOMEPAGE="https://ebtables.netfilter.org/" |
| SRC_URI="http://ftp.netfilter.org/pub/${PN}/${MY_P}.tar.gz" |
| S="${WORKDIR}/${MY_P}" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="+perl static" |
| |
| BDEPEND=">=app-eselect/eselect-iptables-20200508" |
| # The ebtables-save script is written in perl. |
| RDEPEND="${BDEPEND} |
| perl? ( dev-lang/perl ) |
| net-misc/ethertypes" |
| |
| PATCHES=( |
| "${FILESDIR}/${PN}-2.0.11-makefile.patch" |
| |
| # Enhance ebtables-save to take table names as parameters bug #189315 |
| "${FILESDIR}/${PN}-2.0.11-ebt-save.patch" |
| |
| # from upstream git |
| "${FILESDIR}/ebtables-2.0.11-remove-stray-atsign.patch" |
| ) |
| |
| pkg_setup() { |
| if use static; then |
| ewarn "You've chosen static build which is useful for embedded devices." |
| ewarn "It has no init script. Make sure that's really what you want." |
| fi |
| } |
| |
| src_prepare() { |
| default |
| |
| # Don't install perl scripts if USE=perl is disabled. |
| if ! use perl; then |
| sed -i -e '/^sbin_SCRIPTS/ d' Makefile.am || die |
| fi |
| |
| # The bundled autotools are borked, so force a rebuild. |
| eautoreconf |
| } |
| |
| src_configure() { |
| econf \ |
| --bindir="/bin" \ |
| --sbindir="/sbin" \ |
| --libdir="/$(get_libdir)/${PN}" \ |
| $(use_enable static) |
| } |
| |
| src_compile() { |
| emake $(usex static 'static ebtables-legacy.8' '') |
| } |
| |
| src_install() { |
| local -a DOCS=( ChangeLog THANKS ) |
| |
| if ! use static; then |
| emake DESTDIR="${D}" install |
| newinitd "${FILESDIR}"/ebtables.initd-r1 ebtables |
| newconfd "${FILESDIR}"/ebtables.confd-r1 ebtables |
| |
| find "${D}" -name '*.la' -type f -delete || die |
| |
| # The ethertypes package installs this for us. |
| rm "${ED}"/etc/ethertypes || die |
| else |
| into / |
| newsbin static ebtables |
| fi |
| |
| newman ebtables-legacy.8 ebtables.8 |
| einstalldocs |
| } |
| |
| pkg_postinst() { |
| if ! eselect ebtables show &>/dev/null; then |
| elog "Current ebtables implementation is unset, setting to ebtables-legacy" |
| eselect ebtables set ebtables-legacy |
| fi |
| |
| eselect ebtables show |
| } |
| |
| pkg_prerm() { |
| if [[ -z ${REPLACED_BY_VERSION} ]] && has_version 'net-firewall/iptables[nftables]'; then |
| elog "Resetting ebtables symlinks to xtables-nft-multi before removal" |
| eselect ebtables set xtables-nft-multi |
| else |
| elog "Unsetting ebtables symlinks before removal" |
| eselect ebtables unset |
| fi |
| } |