aports/community/frr/APKBUILD
2023-09-04 06:40:34 +00:00

155 lines
3.7 KiB
Plaintext

# Contributor: Daniel Corbe <daniel@corbe.net>
# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=frr
pkgver=9.0.1
pkgrel=0
pkgdesc="Free Range Routing is a fork of Quagga"
pkgusers="frr"
pkggroups="frr frrvty"
url="https://frrouting.org/"
arch="all"
license="GPL-2.0-or-later"
# libyang version restriction can be removed when upgrading to 9.1
# See: https://github.com/CESNET/libyang/issues/2090
depends="iproute2 bash libyang<2.1.111"
makedepends="
autoconf
automake
bison
bsd-compat-headers
c-ares-dev
elfutils-dev
flex
json-c-dev
libcap-dev
libtool
libyang-dev
linux-headers
net-snmp-dev
protobuf-c-dev
py3-sphinx
python3-dev
readline-dev
rtrlib-dev
texinfo
"
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
allow-invalid-nlri-attributes.patch
"
builddir="$srcdir/frr-frr-$pkgver"
_sysconfdir=/etc/frr
# secfixes:
# 8.2.1-r0:
# - CVE-2022-26125
# - CVE-2022-26126
# - CVE-2022-26127
# - CVE-2022-26128
# - CVE-2022-26129
prepare() {
default_prepare
./bootstrap.sh
}
build() {
export PYTHON=python3
CFLAGS="$CFLAGS -flto=auto" \
./configure \
--prefix=/usr \
--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-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 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' \) -exec 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 tools/etc/frr/vtysh.conf \
tools/etc/frr/frr.conf \
tools/etc/frr/daemons \
tools/etc/frr/support_bundle_commands.conf \
-t "$pkgdir"$_sysconfdir
chown -R ${pkgusers%% *}:${pkggroups%% *} "$pkgdir"$_sysconfdir
install -Dm644 tools/etc/iproute2/rt_protos.d/frr.conf \
-t "$pkgdir"/etc/iproute2/rt_protos.d
install -Dm755 "$srcdir"/frr.initd "$pkgdir"/etc/init.d/frr
}
pythontools() {
pkgdesc="$pkgdesc (tools)"
depends="python3 py3-ipaddr"
amove usr/lib/frr/frr-reload.py
}
rpki() {
pkgdesc="$pkgdesc (BGP RPKI support)"
amove usr/lib/frr/modules/bgpd_rpki.so
}
snmp() {
pkgdesc="$pkgdesc (net-snmp bindings)"
amove usr/lib/frr/modules/*_snmp.so \
usr/lib/frr/libfrrsnmp.*
}
sha512sums="
fa1884529a98c8e5ad2dab7f6f67246844ea34ba4d68e3a907a01d43e0eec9317104107f5f18e4b61c11d2cbb4d20eac1e8aef6e4a2b2e54efcad245ee3fb6b9 frr-9.0.1.tar.gz
f86bdf8f6dd89ba69d03a69bbe645b3b752d3fbb38913c5155536b8043b0493901ab078b7acb6ac463d3473c6492900d8a695582f66610955246052b19c0d70c frr.initd
5b2d735da13ea469c07b254d870fa67f36edb8ccf9eb7073f8858a830e5ec6356a6a9ebe304523ced475ad49beadf09666212eedb65b41edde2d12043ff4b900 allow-invalid-nlri-attributes.patch
"