You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-misc/frr/frr-7.5.ebuild

151 lines
3.3 KiB

# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7,8} )
inherit autotools pam python-single-r1 systemd
DESCRIPTION="The FRRouting Protocol Suite"
HOMEPAGE="https://frrouting.org/"
SRC_URI="https://github.com/FRRouting/frr/archive/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="doc fpm grpc ipv6 kernel_linux nhrp ospfapi pam rpki snmp systemd test"
COMMON_DEPEND="
${PYTHON_DEPS}
acct-user/frr
dev-libs/json-c:0=
>=net-libs/libyang-1.0.184
sys-libs/libcap
sys-libs/readline:0=
grpc? ( net-libs/grpc )
nhrp? ( net-dns/c-ares:0= )
pam? ( sys-libs/pam )
rpki? ( >=net-libs/rtrlib-0.6.3[ssh] )
snmp? ( net-analyzer/net-snmp )
"
BDEPEND="
doc? ( dev-python/sphinx )
sys-devel/flex
virtual/yacc
"
DEPEND="
${COMMON_DEPEND}
test? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') )
"
RDEPEND="
${COMMON_DEPEND}
$(python_gen_cond_dep 'dev-python/ipaddr[${PYTHON_USEDEP}]')
!!net-misc/quagga
"
PATCHES=(
"${FILESDIR}/${PN}-7.5-ipctl-forwarding.patch"
)
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# FRR tarballs have weird format.
S="${WORKDIR}/frr-${P}"
src_prepare() {
default
python_fix_shebang tools
eautoreconf
}
src_configure() {
econf \
--disable-static \
--with-pkg-extra-version="-gentoo" \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--prefix=/usr \
--libdir=/usr/lib/frr \
--sbindir=/usr/lib/frr \
--libexecdir=/usr/lib/frr \
--sysconfdir=/etc/frr \
--localstatedir=/run/frr \
--with-moduledir=/usr/lib/frr/modules \
--enable-exampledir=/usr/share/doc/${PF}/samples \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frr \
--enable-multipath=64 \
$(use_enable doc) \
$(use_enable fpm) \
$(use_enable grpc) \
$(use_enable ipv6 ospf6d) \
$(use_enable ipv6 ripngd) \
$(use_enable ipv6 rtadv) \
$(use_enable kernel_linux realms) \
$(use_enable nhrp nhrpd) \
$(usex ospfapi '--enable-ospfclient' '' '' '') \
$(use_enable rpki) \
$(use_enable snmp) \
$(use_enable systemd)
}
src_compile() {
default
use doc && (cd doc; make html)
}
src_install() {
default
find "${D}" -name '*.la' -delete || die
# Install user documentation if asked
use doc && dodoc -r doc/user/_build/html
# Create configuration directory with correct permissions
keepdir /etc/frr
fowners frr:frr /etc/frr
fperms 775 /etc/frr
# Create logs directory with the correct permissions
keepdir /var/log/frr
fowners frr:frr /var/log/frr
fperms 775 /var/log/frr
# Install the default configuration files
insinto /etc/frr
doins tools/etc/frr/vtysh.conf
doins tools/etc/frr/frr.conf
doins tools/etc/frr/daemons
# Fix permissions/owners.
fowners frr:frr /etc/frr/vtysh.conf
fowners frr:frr /etc/frr/frr.conf
fowners frr:frr /etc/frr/daemons
fperms 640 /etc/frr/vtysh.conf
fperms 640 /etc/frr/frr.conf
fperms 640 /etc/frr/daemons
# Install logrotate configuration
insinto /etc/logrotate.d
newins redhat/frr.logrotate frr
# Install PAM configuration file
use pam && newpamd "${FILESDIR}/frr.pam" frr
# Install init scripts
systemd_dounit tools/frr.service
newinitd "${FILESDIR}/frr-openrc-v1" frr
# Conflict files, installed by net-libs/libsmi, bug #758383
rm "${D}/usr/share/yang/ietf-interfaces.yang" || die
}