diff --git a/common/shlibs b/common/shlibs index d12719d534c..dcf6b26ff8c 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3410,3 +3410,5 @@ libOsi.so.1 libClp-1.16.11_1 libOGDF.so libogdf-2018.03_1 libCOIN.so libogdf-2018.03_1 librocksdb.so.5 rocksdb-5.17.2_1 +libfrr.so.0 libfrr-6.0_1 +libfrrospfapiclient.so.0 libfrrospfapiclient-6.0_1 diff --git a/srcpkgs/frr-flush b/srcpkgs/frr-flush new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/frr-flush @@ -0,0 +1 @@ +frr \ No newline at end of file diff --git a/srcpkgs/frr-reload b/srcpkgs/frr-reload new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/frr-reload @@ -0,0 +1 @@ +frr \ No newline at end of file diff --git a/srcpkgs/frr/INSTALL b/srcpkgs/frr/INSTALL new file mode 100644 index 00000000000..f69bd9976da --- /dev/null +++ b/srcpkgs/frr/INSTALL @@ -0,0 +1,8 @@ +case "${ACTION}" in +post) + if [ "$UPDATE" != "yes" ]; then + chown _frr:_frr etc/frr/*.conf + chown root:_frrvty etc/frr/vtysh.conf + fi + ;; +esac diff --git a/srcpkgs/frr/files/babeld/check b/srcpkgs/frr/files/babeld/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/babeld/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/babeld/run b/srcpkgs/frr/files/babeld/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/babeld/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/bfdd/check b/srcpkgs/frr/files/bfdd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/bfdd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/bfdd/run b/srcpkgs/frr/files/bfdd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/bfdd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/bgpd/check b/srcpkgs/frr/files/bgpd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/bgpd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/bgpd/run b/srcpkgs/frr/files/bgpd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/bgpd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/eigrpd/check b/srcpkgs/frr/files/eigrpd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/eigrpd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/eigrpd/run b/srcpkgs/frr/files/eigrpd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/eigrpd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/fabricd/check b/srcpkgs/frr/files/fabricd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/fabricd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/fabricd/run b/srcpkgs/frr/files/fabricd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/fabricd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/frr-flush b/srcpkgs/frr/files/frr-flush new file mode 100755 index 00000000000..b010531e81c --- /dev/null +++ b/srcpkgs/frr/files/frr-flush @@ -0,0 +1,23 @@ +#!/bin/sh + +# Remove routes created by FRR + +set -e + +test "$(id -u)" = "0" + +ip route flush proto 4 +ip route flush proto 11 +ip route flush proto 42 +ip route flush proto 186 +ip route flush proto 187 +ip route flush proto 188 +ip route flush proto 189 +ip route flush proto 190 +ip route flush proto 191 +ip route flush proto 192 +ip route flush proto 193 +ip route flush proto 194 +ip route flush proto 195 +ip route flush proto 196 +ip route flush proto 197 diff --git a/srcpkgs/frr/files/frr-generic/check b/srcpkgs/frr/files/frr-generic/check new file mode 100755 index 00000000000..7e723f2555f --- /dev/null +++ b/srcpkgs/frr/files/frr-generic/check @@ -0,0 +1,3 @@ +#!/bin/sh + +exec vtysh -c 'exit' -d "$(basename "${PWD}")" >/dev/null 2>&1 diff --git a/srcpkgs/frr/files/frr-generic/run b/srcpkgs/frr/files/frr-generic/run new file mode 100755 index 00000000000..1a0d2dfb6cb --- /dev/null +++ b/srcpkgs/frr/files/frr-generic/run @@ -0,0 +1,13 @@ +#!/bin/sh + +daemon="$(basename "${PWD}")" + +if [ "${daemon}" = "staticd" ]; then + sv check zebra +elif [ "${daemon}" != "zebra" ]; then + sv check staticd +fi + +[ -r conf ] && . ./conf + +exec "${daemon}" $ARGS diff --git a/srcpkgs/frr/files/isisd/check b/srcpkgs/frr/files/isisd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/isisd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/isisd/run b/srcpkgs/frr/files/isisd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/isisd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/ldpd/check b/srcpkgs/frr/files/ldpd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/ldpd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/ldpd/run b/srcpkgs/frr/files/ldpd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/ldpd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/nhrpd/check b/srcpkgs/frr/files/nhrpd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/nhrpd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/nhrpd/run b/srcpkgs/frr/files/nhrpd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/nhrpd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/ospf6d/check b/srcpkgs/frr/files/ospf6d/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/ospf6d/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/ospf6d/run b/srcpkgs/frr/files/ospf6d/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/ospf6d/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/ospfd/check b/srcpkgs/frr/files/ospfd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/ospfd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/ospfd/run b/srcpkgs/frr/files/ospfd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/ospfd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/pbrd/check b/srcpkgs/frr/files/pbrd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/pbrd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/pbrd/run b/srcpkgs/frr/files/pbrd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/pbrd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/pimd/check b/srcpkgs/frr/files/pimd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/pimd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/pimd/run b/srcpkgs/frr/files/pimd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/pimd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/ripd/check b/srcpkgs/frr/files/ripd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/ripd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/ripd/run b/srcpkgs/frr/files/ripd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/ripd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/ripngd/check b/srcpkgs/frr/files/ripngd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/ripngd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/ripngd/run b/srcpkgs/frr/files/ripngd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/ripngd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/sharpd/check b/srcpkgs/frr/files/sharpd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/sharpd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/sharpd/run b/srcpkgs/frr/files/sharpd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/sharpd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/staticd/check b/srcpkgs/frr/files/staticd/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/staticd/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/staticd/run b/srcpkgs/frr/files/staticd/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/staticd/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/files/zebra/check b/srcpkgs/frr/files/zebra/check new file mode 120000 index 00000000000..87a8da64689 --- /dev/null +++ b/srcpkgs/frr/files/zebra/check @@ -0,0 +1 @@ +../frr-generic/check \ No newline at end of file diff --git a/srcpkgs/frr/files/zebra/run b/srcpkgs/frr/files/zebra/run new file mode 120000 index 00000000000..19083883e39 --- /dev/null +++ b/srcpkgs/frr/files/zebra/run @@ -0,0 +1 @@ +../frr-generic/run \ No newline at end of file diff --git a/srcpkgs/frr/template b/srcpkgs/frr/template new file mode 100644 index 00000000000..c80994d4a8d --- /dev/null +++ b/srcpkgs/frr/template @@ -0,0 +1,102 @@ +# Template file for 'frr' +pkgname=frr +version=6.0.2 +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-build3" +conf_files="/etc/frr/*.conf" +make_dirs="/var/log/frr 0700 _frr _frr" +hostmakedepends="pkg-config flex bison autoconf automake libtool + python python3 python3-Sphinx python-devel python3-devel" +makedepends="pcre-devel libcap-devel json-c-devel pam-devel c-ares-devel + readline-devel python-devel python3-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=dde97d012b6068a1230c0c6a03b38015befae37f617b9ffbd17024c71a170d94 +nocross="http://ix.io/1rQ6" +system_groups="_frrvty" +system_accounts="_frr" +_frr_groups="_frrvty" + +pre_configure() { + autoreconf -fi +} + +post_install() { + # LSB init script is not needed + rm -f -- "${DESTDIR}/usr/bin/frr" + + # frr-reload wrapper script hardcodes sbindir as usr/lib/frr, so 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 zebra staticd bgpd ospfd ospf6d ripd ripngd isisd pimd ldpd nhrpd eigrpd babeld sharpd pbrd bfdd fabricd; do + vinstall /dev/null 0640 etc/frr "${daemon}.conf" + vsv "${daemon}" + done +} + +frr-flush_package() { + short_desc+=" - route flushing tool" + depends="iproute2 ${srcpkgname}-${version}_${revision}" + pkg_install() { + vmove usr/bin/frr-flush + } +} + +frr-reload_package() { + short_desc+=" - reload tool" + depends="python-ipaddr python ${srcpkgname}-${version}_${revision}" + pkg_install() { + vmove usr/bin/frr-reload + } +} + +libfrr_package() { + short_desc+=" - client library" + pkg_install() { + vmove "usr/lib/libfrr.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 + } +} + +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 + } +} diff --git a/srcpkgs/libfrr b/srcpkgs/libfrr new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/libfrr @@ -0,0 +1 @@ +frr \ No newline at end of file diff --git a/srcpkgs/libfrr-devel b/srcpkgs/libfrr-devel new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/libfrr-devel @@ -0,0 +1 @@ +frr \ No newline at end of file diff --git a/srcpkgs/libfrrospfapiclient b/srcpkgs/libfrrospfapiclient new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/libfrrospfapiclient @@ -0,0 +1 @@ +frr \ No newline at end of file diff --git a/srcpkgs/libfrrospfapiclient-devel b/srcpkgs/libfrrospfapiclient-devel new file mode 120000 index 00000000000..6060b277e4e --- /dev/null +++ b/srcpkgs/libfrrospfapiclient-devel @@ -0,0 +1 @@ +frr \ No newline at end of file