diff options
author | Arthur Jones <arthur.jones@riverbed.com> | 2018-06-04 15:56:13 -0700 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2018-07-25 08:40:01 +0000 |
commit | 6c21984c5b86ca03c72a88927f8c1de0c420e25f (patch) | |
tree | 90c83f085a32ffcec3482452348316ba08956345 /testing/frr | |
parent | 5ad6fd1e0bd69114140ccf3403b52f93fafd61e5 (diff) | |
download | aports-6c21984c5b86ca03c72a88927f8c1de0c420e25f.tar.bz2 aports-6c21984c5b86ca03c72a88927f8c1de0c420e25f.tar.xz |
testing/frr: new aport for free range routing, a fork of quagga
FRRouting is free software that implements and manages various
IPv4 and IPv6 routing protocols.
Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2,
RIPng, IS-IS, PIM-SM/MSDP, LDP and Babel as well as very early support
for EIGRP and NHRP.
During PR review, fix for openrc-run issue discovered and fix contributed
by Hidde Van der Heide.
fixes #8795
Diffstat (limited to 'testing/frr')
-rw-r--r-- | testing/frr/APKBUILD | 67 | ||||
-rwxr-xr-x | testing/frr/frr | 19 | ||||
-rwxr-xr-x | testing/frr/frr.post-deinstall | 6 | ||||
-rwxr-xr-x | testing/frr/frr.pre-deinstall | 4 | ||||
-rwxr-xr-x | testing/frr/frr.pre-install | 10 | ||||
-rw-r--r-- | testing/frr/make-check-bypass-isisd-tlv.patch | 49 |
6 files changed, 155 insertions, 0 deletions
diff --git a/testing/frr/APKBUILD b/testing/frr/APKBUILD new file mode 100644 index 0000000000..374c242744 --- /dev/null +++ b/testing/frr/APKBUILD @@ -0,0 +1,67 @@ +# Maintainer: Arthur Jones <arthur.jones@riverbed.com> +pkgname=frr +pkgver=5.0.1 +pkgrel=0 +pkgdesc="FRRouting is a fork of quagga" +pkgusers="frr" +pkggroups="frr" +url="https://frrouting.org/" +arch="x86_64" +license="GPL-2.0-only and LGPL-2.1-only" +depends="json-c c-ares iproute2 python py-ipaddr bash" +makedepends="ncurses-dev net-snmp-dev gawk texinfo perl + acct autoconf automake bash bison bsd-compat-headers + c-ares-dev cryptsetup-libs device-mapper-libs flex + json-c-dev kmod lddtree libacl libblkid libburn libedit + libisoburn libisofs libltdl libtool libuuid linux-headers lzo m4 mkinitfs + mtools pcre perl python2-dev readline-dev + squashfs-tools texinfo xorriso py-sphinx" +checkdepends="pytest py-setuptools" +install="$pkgname.pre-install $pkgname.pre-deinstall $pkgname.post-deinstall" +subpackages="$pkgname-dev $pkgname-doc $pkgname-dbg $pkgname-openrc" +source="https://github.com/FRRouting/frr/archive/$pkgname-$pkgver.tar.gz + make-check-bypass-isisd-tlv.patch + frr + " +builddir="$srcdir"/$pkgname-$pkgname-$pkgver + +_sbindir=/usr/lib/frr +_sysconfdir=/etc/frr +_libdir=/usr/lib +_localstatedir=/var/run/frr + +build() { + cd "$builddir" + ./bootstrap.sh + ./configure \ + --prefix=/usr \ + --sbindir=$_sbindir \ + --sysconfdir=$_sysconfdir \ + --libdir=$_libdir \ + --localstatedir=$_localstatedir \ + --enable-systemd=no \ + --enable-vtysh \ + --enable-multipath=64 \ + --enable-vty-group=frrvty \ + --enable-user=${pkgusers%% *} \ + --enable-group=${pkggroups%% *} + make +} + +check() { + cd "$builddir" + + make -j 1 check +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + + install -Dm644 "$builddir"/tools/etc/frr/daemons "$pkgdir"$_sysconfdir + install -Dm644 "$builddir"/tools/etc/frr/daemons.conf "$pkgdir"$_sysconfdir + install -Dm755 "$srcdir"/frr "$pkgdir"/etc/init.d/frr +} +sha512sums="e2a3a4e21998f8c85b59fc971190d0b5340bbcd88356a637740ad8e564275b0df14da78b72a24a99a58435725cded1b9089814fc926a7a4080bd3a8762973548 frr-5.0.1.tar.gz +3c679b857018d82443abd34823e712a8657a597b4210730d260e9796516982a137234354422cb439989985367531d600e205d3fb791cdb7b212425bb704c2016 make-check-bypass-isisd-tlv.patch +c8c568c97925191a66d51921a93f86b87b1f47180900528deb96cb91c3a2ee3b8e0874e6397ed7d1406f396d6f1e5afb847155feec74d3f00bb3329dd7d9f0b0 frr" diff --git a/testing/frr/frr b/testing/frr/frr new file mode 100755 index 0000000000..1721628577 --- /dev/null +++ b/testing/frr/frr @@ -0,0 +1,19 @@ +#!/sbin/openrc-run + +description="FRRouting" + +start() { + exec /usr/lib/frr/frr start +} + +stop() { + exec /usr/lib/frr/frr stop +} + +restart() { + exec /usr/lib/frr/frr restart +} + +status() { + exec /usr/lib/frr/frr status +} diff --git a/testing/frr/frr.post-deinstall b/testing/frr/frr.post-deinstall new file mode 100755 index 0000000000..8f5d3dc40c --- /dev/null +++ b/testing/frr/frr.post-deinstall @@ -0,0 +1,6 @@ +#!/bin/sh + +getent passwd frr > /dev/null && deluser frr +getent group frrvty > /dev/null && delgroup frrvty +getent group frr > /dev/null && delgroup frr +exit 0 diff --git a/testing/frr/frr.pre-deinstall b/testing/frr/frr.pre-deinstall new file mode 100755 index 0000000000..72cf73bc1c --- /dev/null +++ b/testing/frr/frr.pre-deinstall @@ -0,0 +1,4 @@ +#!/bin/sh + +/etc/init.d/frr stop +exit 0 diff --git a/testing/frr/frr.pre-install b/testing/frr/frr.pre-install new file mode 100755 index 0000000000..da608cdcbd --- /dev/null +++ b/testing/frr/frr.pre-install @@ -0,0 +1,10 @@ +#!/bin/sh + +for g in frr frrvty; do + ! getent group $g > /dev/null && addgroup -S $g +done + +! getent passwd frr > /dev/null && \ + adduser -S -D -h /var/run/frr -s /sbin/nologin -G frr -g frr frr + +adduser frr frrvty diff --git a/testing/frr/make-check-bypass-isisd-tlv.patch b/testing/frr/make-check-bypass-isisd-tlv.patch new file mode 100644 index 0000000000..b7a73b353f --- /dev/null +++ b/testing/frr/make-check-bypass-isisd-tlv.patch @@ -0,0 +1,49 @@ +commit f404be7c728ca3433bb4aeaeac5e3c450941de35 +Author: Arthur Jones <arthur.jones@riverbed.com> +Date: Wed Jun 6 07:47:17 2018 -0700 + + tests/isisd: bypass test_fuzz_isis_tlv when inet_ntop is broken + + On Alpine Linux edge, musl does not seem to be RFC 5952 4.2.2 + compliant (how to print a single :0: in the IPv6 address). Let's + skip that test, as we get false negatives when running against + that version of musl. + + Credit for the idea for the fix and how to fix it is due to + chris@opensourcerouting.org. + + Testing done: + + make check on alpine linux passes now + + Issue: https://github.com/FRRouting/frr/issues/2375 + Signed-off-by: Arthur Jones <arthur.jones@riverbed.com> + +diff --git a/tests/isisd/test_fuzz_isis_tlv.py b/tests/isisd/test_fuzz_isis_tlv.py +index bf700bfee..d96e3c4fe 100644 +--- a/tests/isisd/test_fuzz_isis_tlv.py ++++ b/tests/isisd/test_fuzz_isis_tlv.py +@@ -2,10 +2,21 @@ import frrtest + + import pytest + import platform ++import socket + +-if platform.uname()[0] == 'SunOS': ++ ++## ++# on musl, ntop compresses a single :0: -> :: which is against RFC ++## ++def inet_ntop_broken(): ++ addr = '1:2:3:4:0:6:7:8' ++ return socket.inet_ntop(socket.AF_INET6, ++ socket.inet_pton(socket.AF_INET6, addr)) != addr ++ ++ ++if platform.uname()[0] == 'SunOS' or inet_ntop_broken(): + class TestFuzzIsisTLV: +- @pytest.mark.skipif(True, reason='Test unsupported on SunOS') ++ @pytest.mark.skipif(True, reason='Test unsupported') + def test_exit_cleanly(self): + pass + else: |