# Template file for 'frr' pkgname=frr version=7.4 revision=1 wrksrc="${pkgname}-${pkgname}-${version}" build_style=gnu-configure # chroot-texinfo is not able to build frr's docs configure_args="--disable-doc --localstatedir=/run/frr --sysconfdir=/etc/frr --enable-exampledir=/usr/share/examples/frr --enable-user=_frr --enable-group=_frr --enable-vty-group=_frrvty" make_build_args="SPHINXBUILD=sphinx-build" conf_files="/etc/frr/*.conf" make_dirs="/var/log/frr 0700 _frr _frr" hostmakedepends="pkg-config flex bison autoconf automake libtool python3 python3-Sphinx python3-devel libyang-tools" makedepends="pcre-devel libcap-devel json-c-devel pam-devel c-ares-devel readline-devel python3-devel libyang-devel" short_desc="IP routing protocol suite" maintainer="Cameron Nemo " license="GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://frrouting.org" distfiles="https://github.com/FRRouting/frr/archive/${pkgname}-${version}.tar.gz" checksum=3c8204fda1c9b178d8446562579bbbc49d134b98f3ad02aa56f68724a2f9e40a python_version=3 system_groups="_frrvty" system_accounts="_frr" _frr_groups="_frrvty" _daemons="zebra staticd bgpd ospfd ospf6d ripd ripngd isisd pimd ldpd nhrpd eigrpd babeld sharpd pbrd bfdd fabricd" if [ "$XBPS_TARGET_LIBC" = "musl" ]; then makedepends+=" musl-legacy-compat" fi subpackages="libfrrospfapiclient libfrrospfapiclient-devel libfrr libfrr-devel frr-flush frr-reload" if [ "$CROSS_BUILD" ]; then hostmakedepends+=" frr-devel" configure_args+=" --with-clippy=/usr/libexec/frr-devel/clippy" else subpackages+=" frr-devel" fi pre_configure() { autoreconf -fi } post_install() { if [ -z "$CROSS_BUILD" ]; then # install build tool to be used by cross builds vinstall lib/clippy 0755 usr/libexec/frr-devel fi # LSB init script and friends are not needed for cmd in frr watchfrr watchfrr.sh frrcommon.sh frrinit.sh generate_support_bundle.py; do rm -f -- "${DESTDIR}/usr/bin/${cmd}" done # frr-reload wrapper script hardcodes sbindir as usr/lib/frr, avoid it rm -f -- "${DESTDIR}/usr/bin/frr-reload" mv "${DESTDIR}/usr/bin/frr-reload.py" "${DESTDIR}/usr/bin/frr-reload" vbin "${FILESDIR}/frr-flush" vsv frr-generic vmkdir etc/frr 0755 vinstall /dev/null 0640 etc/frr vtysh.conf for daemon in ${_daemons}; do vinstall /dev/null 0640 etc/frr "${daemon}.conf" vsv "${daemon}" done } frr-devel_package() { short_desc+=" (development binaries)" pkg_install() { vmove usr/libexec/frr-devel } } frr-flush_package() { short_desc+=" - route flushing tool" depends="iproute2 ${sourcepkg}-${version}_${revision}" pkg_install() { vmove usr/bin/frr-flush } } frr-reload_package() { short_desc+=" - reload tool" depends="python3 ${sourcepkg}-${version}_${revision}" pkg_install() { vmove usr/bin/frr-reload } } libfrr_package() { short_desc+=" - client library" pkg_install() { vmove "usr/lib/libfrr.so.*" vmove "usr/lib/libfrrcares.so.*" } } libfrr-devel_package() { short_desc+=" - client library (development files)" depends="${pkgname%-devel}-${version}_${revision}" pkg_install() { vmove "usr/include/frr/*.h" vmove usr/include/frr/ospfd vmove usr/include/frr/eigrpd vmove usr/lib/libfrr.so vmove usr/lib/libfrr.a vmove usr/lib/libfrrcares.so vmove usr/lib/libfrrcares.a } } libfrrospfapiclient_package() { short_desc+=" - OSPF client library" pkg_install() { vmove "usr/lib/libfrrospfapiclient.so.*" } } libfrrospfapiclient-devel_package() { short_desc+=" - OSPF client library (development files)" depends="${pkgname%-devel}-${version}_${revision}" pkg_install() { vmove usr/include/frr/ospfapi vmove usr/lib/libfrrospfapiclient.so vmove usr/lib/libfrrospfapiclient.a } }