aboutsummaryrefslogtreecommitdiffstats
path: root/community/frr/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/frr/APKBUILD')
-rw-r--r--community/frr/APKBUILD128
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"