diff options
Diffstat (limited to 'community/frr/APKBUILD')
-rw-r--r-- | community/frr/APKBUILD | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/community/frr/APKBUILD b/community/frr/APKBUILD new file mode 100644 index 0000000000..9b83b89e5b --- /dev/null +++ b/community/frr/APKBUILD @@ -0,0 +1,128 @@ +# Maintainer: Daniel Corbe <daniel@corbe.net> +pkgname=frr +pkgver=7.2 +pkgrel=0 +pkgdesc="Free Range Routing is a fork of Quagga" +pkgusers="frr" +pkggroups="frr frrvty" +url="https://frrouting.org/" +arch="all !s390x" # failing tests +license="GPL-2.0-or-later" +depends="iproute2 bash libcap" +makedepends="autoconf automake libtool + bsd-compat-headers + c-ares-dev + flex bison + json-c-dev + libyang-dev + linux-headers + net-snmp-dev + py3-sphinx + python3-dev + readline-dev + rtrlib-dev + texinfo + libcap-dev + " +checkdepends="py3-pytest" +install="$pkgname.pre-install" +subpackages="$pkgname-dbg + $pkgname-doc::noarch + $pkgname-openrc::noarch + $pkgname-pythontools::noarch + $pkgname-rpki + $pkgname-snmp + " +source="https://github.com/FRRouting/frr/archive/frr-$pkgver.tar.gz + frr.initd + " +builddir="$srcdir"/$pkgname-$pkgname-$pkgver + +_sysconfdir=/etc/frr + +prepare() { + default_prepare + ./bootstrap.sh +} + +build() { + export PYTHON=python3 + + ./configure \ + --prefix=/usr \ + --enable-exampledir=/usr/share/doc/frr/examples/ \ + --localstatedir=/run/frr \ + --sbindir=/usr/lib/frr \ + --sysconfdir=$_sysconfdir \ + --libdir=/usr/lib/frr \ + --with-moduledir=/usr/lib/frr/modules \ + LIBTOOLFLAGS="-rpath /usr/lib/frr" \ + --disable-dependency-tracking \ + --enable-systemd=no \ + --enable-rpki \ + --with-libpam \ + --enable-doc \ + --enable-doc-html \ + --enable-snmp \ + --enable-fpm \ + --disable-protobuf \ + --disable-zeromq \ + --enable-ospfapi \ + --enable-bgp-vnc \ + --enable-multipath=256 \ + --enable-user=${pkgusers%% *} \ + --enable-group=${pkggroups%% *} \ + --enable-vty-group=frrvty \ + --enable-configfile-mask=0640 \ + --enable-logfile-mask=0640 + make +} + +check() { + export PYTHON=python3 + make -j 1 check +} + +package() { + make DESTDIR="$pkgdir" install + + # Remove development files, static libraries and headers. + # They are internal and should not be shipped as a package. + # Compare https://github.com/FRRouting/frr/blob/frr-7.0/debian/rules#L89 + find "$pkgdir" -name '*.la' -o -name '*.a' -o -name 'lib*.so' | xargs rm -f + rm -rf "$pkgdir"/usr/include + rm -f "$pkgdir"/usr/lib/frr/ssd + + # FRR currently installs two flavours of scripts for starting and stopping it. + # Remove the deprecated one. + rm -f "$pkgdir"/usr/lib/frr/frr + rm -f "$pkgdir"/usr/lib/frr/frr-reload + + install -d "$pkgdir"$_sysconfdir + install -Dm644 "$builddir"/tools/etc/frr/daemons "$pkgdir"$_sysconfdir + chown -R ${pkgusers%% *}:${pkggroups%% *} "$pkgdir"$_sysconfdir + install -Dm755 "$srcdir"/frr.initd "$pkgdir"/etc/init.d/frr +} + +pythontools() { + pkgdesc="$pkgdesc (tools)" + depends="python3 py3-ipaddr" + mkdir -p "$subpkgdir"/usr/lib/frr + mv "$pkgdir"/usr/lib/frr/frr-reload.py "$subpkgdir/usr/lib/frr" +} + +rpki() { + pkgdesc="$pkgdesc (BGP RPKI support)" + install -d "$subpkgdir/usr/lib/frr/modules" + mv "$pkgdir"/usr/lib/frr/modules/bgpd_rpki.so "$subpkgdir/usr/lib/frr/modules" +} + +snmp() { + pkgdesc="$pkgdesc (net-snmp bindings)" + install -d "$subpkgdir/usr/lib/frr/modules" + mv "$pkgdir"/usr/lib/frr/modules/*_snmp.so "$subpkgdir/usr/lib/frr/modules" + mv "$pkgdir"/usr/lib/frr/libfrrsnmp.* "$subpkgdir/usr/lib/frr" +} + +sha512sums="5a5852964e2b62dad74a516b9ee53377feebacfa2ce1860a82e6a6ee6dfaf8055a0dbb53b39550fa9098e352c96b434a3d41ea36963f6370e41265fb96d61150 frr-7.2.tar.gz +b495b2be9f2cbb065104ccc0c3474471e870b53ac62ed4fba40020c8d50866e637a99ef3d7af5de1018ff659c4757baac4f40d7648a9de99ed14db33c8992b54 frr.initd" |