mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-19 03:52:17 +00:00
Due to stability problems with FRR 4.0, reintroduce previous FRR 3.0.3.
Merge watchfrr RC script from frr4 that was improved and update frr4's conflicts port list. Sponsored by: Orange
This commit is contained in:
parent
59a89375f0
commit
4a7eb59f34
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=471530
@ -166,6 +166,7 @@
|
||||
SUBDIR += freerdp1
|
||||
SUBDIR += freeswitch
|
||||
SUBDIR += freevrrpd
|
||||
SUBDIR += frr3
|
||||
SUBDIR += frr4
|
||||
SUBDIR += fspclient
|
||||
SUBDIR += fspd
|
||||
|
81
net/frr3/Makefile
Normal file
81
net/frr3/Makefile
Normal file
@ -0,0 +1,81 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= frr
|
||||
PORTVERSION= 3.0.3
|
||||
DISTVERSIONPREFIX= frr-
|
||||
CATEGORIES= net ipv6
|
||||
PKGNAMESUFFIX= 3
|
||||
|
||||
MAINTAINER= olivier@FreeBSD.org
|
||||
COMMENT= IP routing protocol suite including BGP, IS-IS, OSPF and RIP
|
||||
|
||||
LICENSE= GPLv2
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
BUILD_DEPENDS= gawk:lang/gawk
|
||||
LIB_DEPENDS= libjson-c.so:devel/json-c
|
||||
|
||||
CONFLICTS= openbgpd openospfd zebra quagga frr4
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= FRRouting
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
INSTALL_TARGET= install-strip
|
||||
USES= autoreconf bison gmake pkgconfig libtool makeinfo readline
|
||||
USE_LDCONFIG= yes
|
||||
|
||||
INFO= frr
|
||||
|
||||
OPTIONS_DEFINE= FPM LDPD PAM SHELLACCESS TCPSOCKETS VTYSH MULTIPATH TCMALLOC
|
||||
OPTIONS_DEFAULT= VTYSH
|
||||
OPTIONS_SUB= yes
|
||||
# SNMP option build failed
|
||||
# checksum.c:79:21: warning: implicit declaration of function 'typeof' is
|
||||
# invalid in C99 [-Wimplicit-function-declaration]
|
||||
# IRDP option needs something freebsd does not seem to have:
|
||||
# configure: error: 'IRDP requires in_pktinfo at the moment!'
|
||||
|
||||
FPM_DESC= Enable Forwarding Plane Manager support
|
||||
LDPD_DESC= Build ldpd
|
||||
MULTIPATH_DESC= Enable multipath function
|
||||
PAM_DESC= Use libpam for PAM support in vtysh
|
||||
SHELLACCESS_DESC= Allow users to access shell/telnet/ssh
|
||||
SNMP_DESC= SNMP support
|
||||
TCMALLOC_DESC= Use tcmalloc
|
||||
TCPSOCKETS_DESC= Use TCP/IP sockets for protocol daemons
|
||||
VTYSH_DESC= Build integrated vty shell
|
||||
|
||||
USERS= frr
|
||||
GROUPS= frr frrvty
|
||||
|
||||
CPPFLAGS+= -I${LOCALBASE}/include
|
||||
LDFLAGS+= -L${LOCALBASE}/lib
|
||||
INSTALL_TARGET= install-strip
|
||||
|
||||
# PIM compile but didn't work on FreeBSD
|
||||
CONFIGURE_ARGS= --enable-user=frr \
|
||||
--enable-group=frr \
|
||||
--enable-vty-group=frrvty \
|
||||
--sysconfdir=${ETCDIR} \
|
||||
--localstatedir=/var/run/frr \
|
||||
--disable-pimd
|
||||
|
||||
SHELLACCESS_CONFIGURE_ENABLE= shell-access
|
||||
FPM_CONFIGURE_ENABLE= fpm
|
||||
PAM_CONFIGURE_WITH= libpam
|
||||
LDPD_CONFIGURE_ENABLE= ldpd
|
||||
MULTIPATH_CONFIGURE_ON= --enable-multipath=64
|
||||
TCMALLOC_CONFIGURE_ENABLE= tcmalloc
|
||||
TCMALLOC_LIB_DEPENDS= libtcmalloc.so:devel/google-perftools
|
||||
SNMP_CONFIGURE_ENABLE= snmp
|
||||
SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp
|
||||
TCPSOCKETS_CONFIGURE_ENABLE= tcp-zebra
|
||||
VTYSH_CONFIGURE_ENABLE= vtysh
|
||||
|
||||
USE_RC_SUBR= frr watchfrr
|
||||
|
||||
post-install:
|
||||
${MKDIR} ${STAGEDIR}/var/run/frr
|
||||
|
||||
.include <bsd.port.mk>
|
3
net/frr3/distinfo
Normal file
3
net/frr3/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1515855735
|
||||
SHA256 (FRRouting-frr-frr-3.0.3_GH0.tar.gz) = c850d6f7ae389e27acb1e808e01e561b0db7e0e35a902ca18ce53839c7906b7b
|
||||
SIZE (FRRouting-frr-frr-3.0.3_GH0.tar.gz) = 3168397
|
154
net/frr3/files/frr.in
Normal file
154
net/frr3/files/frr.in
Normal file
@ -0,0 +1,154 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: frr
|
||||
# REQUIRE: netif routing
|
||||
# KEYWORD: nojailvnet shutdown
|
||||
|
||||
# Add the following line to /etc/rc.conf to enable frr:
|
||||
# frr_enable="YES"
|
||||
#
|
||||
# You may also wish to use the following variables to fine-tune startup:
|
||||
# frr_flags=""
|
||||
# frr_daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd"
|
||||
# frr_vysh_boot="YES"
|
||||
# Per daemon tuning may be done with daemon_name_flags
|
||||
# zebra_flags="-P 0"
|
||||
# bgpd_flags="-nrP 0" and so on
|
||||
# If you want to give the routing deamons a chance to catchup before
|
||||
# continueing, set frr_wait_for to a "default" or certain prefix.
|
||||
# frr_wait_for="default"
|
||||
# Set the time limit for the wait.
|
||||
# frr_wait_seconds="90"
|
||||
#
|
||||
# If the frr daemons require additional shared libraries to start,
|
||||
# use the following variable to run ldconfig(8) in advance:
|
||||
# frr_extralibs_path="/usr/local/lib ..."
|
||||
#
|
||||
# This RC script was adapted from the net/quagga port
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=frr
|
||||
rcvar=$name_enable
|
||||
|
||||
start_postcmd=start_postcmd
|
||||
stop_postcmd="rm -f $pidfile"
|
||||
configtest_cmd=check_config
|
||||
extra_commands=configtest
|
||||
command_args="-d"
|
||||
|
||||
load_rc_config $name
|
||||
: ${frr_enable:="NO"}
|
||||
: ${frr_flags:=""}
|
||||
: ${frr_daemons:="zebra ripd ripngd ospfd ospf6d bgpd isisd"}
|
||||
: ${frr_vtysh_boot:="NO"}
|
||||
: ${frr_wait_for:=""}
|
||||
: ${frr_wait_seconds:="90"}
|
||||
|
||||
check_config()
|
||||
{
|
||||
echo "Checking $daemon.conf"
|
||||
# pimd doesn't support -C
|
||||
if [ "$daemon" = "pimd" ]; then
|
||||
echo "Ignored"
|
||||
else
|
||||
$command $daemon_flags -C
|
||||
result=$?
|
||||
if [ "$result" -eq "0" ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAILED"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
start_postcmd()
|
||||
{
|
||||
local waited_for
|
||||
waited_for=0
|
||||
# Wait only when last daemon has started.
|
||||
if [ "${frr_daemons}" = "${frr_daemons% ${name}}" ]; then
|
||||
return;
|
||||
fi
|
||||
if [ -n "${frr_wait_for}" ]; then
|
||||
echo Waiting for ${frr_wait_for} route...
|
||||
while [ ${waited_for} -lt ${frr_wait_seconds} ]; do
|
||||
/sbin/route -n get ${frr_wait_for} >/dev/null 2>&1 && break;
|
||||
waited_for=$((waited_for+1))
|
||||
sleep 1;
|
||||
done
|
||||
[ ${waited_for} -lt ${frr_wait_seconds} ] || echo Giving up...
|
||||
fi
|
||||
}
|
||||
|
||||
do_cmd()
|
||||
{
|
||||
local ret
|
||||
ret=0
|
||||
for daemon in ${frr_daemons}; do
|
||||
command=%%PREFIX%%/sbin/${daemon}
|
||||
required_files=%%ETCDIR%%/${daemon}.conf
|
||||
pidfile=/var/run/frr/${daemon}.pid
|
||||
if [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ]; then
|
||||
check_config
|
||||
fi
|
||||
if [ ${frr_cmd} = "start" ] && ! [ -f ${required_files} ]; then
|
||||
continue
|
||||
fi
|
||||
if [ ${frr_cmd} = "stop" ] && [ -z $(check_process ${command}) ]; then
|
||||
continue
|
||||
fi
|
||||
eval flags=\$\{${daemon}_flags:-\"${frr_flags}\"\}
|
||||
name=${daemon}
|
||||
_rc_restart_done=false
|
||||
run_rc_command "$1" || ret=1
|
||||
done
|
||||
if checkyesno frr_vtysh_boot; then
|
||||
echo "Booting for integrated-vtysh-config..."
|
||||
%%PREFIX%%/bin/vtysh -b
|
||||
fi
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
frr_cmd=$1
|
||||
|
||||
case "$1" in
|
||||
force*)
|
||||
frr_cmd=${frr_cmd#force}
|
||||
;;
|
||||
fast*)
|
||||
frr_cmd=${frr_cmd#fast}
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
|
||||
if [ $# -ge 1 ]; then
|
||||
frr_daemons="$*"
|
||||
fi
|
||||
|
||||
case "${frr_cmd}" in
|
||||
start)
|
||||
if [ -n "${frr_extralibs_path}" ]; then
|
||||
/sbin/ldconfig -m ${frr_extralibs_path}
|
||||
fi
|
||||
# Why should I need to add this check ?
|
||||
checkyesno frr_enable && do_cmd "start"
|
||||
;;
|
||||
stop)
|
||||
frr_daemons=$(reverse_list ${frr_daemons})
|
||||
do_cmd "stop"
|
||||
;;
|
||||
restart)
|
||||
frr_daemons=$(reverse_list ${frr_daemons})
|
||||
do_cmd "stop"
|
||||
frr_daemons=$(reverse_list ${frr_daemons})
|
||||
checkyesno frr_enable && do_cmd "start"
|
||||
;;
|
||||
*)
|
||||
do_cmd "${frr_cmd}"
|
||||
;;
|
||||
esac
|
11
net/frr3/files/patch-Makefile.am
Normal file
11
net/frr3/files/patch-Makefile.am
Normal file
@ -0,0 +1,11 @@
|
||||
--- Makefile.am.orig 2017-03-08 14:59:07 UTC
|
||||
+++ Makefile.am
|
||||
@@ -4,7 +4,7 @@ SUBDIRS = lib qpb fpm @ZEBRA@ @LIBRFP@ @RFPTEST@ \
|
||||
@BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @LDPD@ \
|
||||
@ISISD@ @PIMD@ @NHRPD@ \
|
||||
@WATCHFRR@ @VTYSH@ @OSPFCLIENT@ @DOC@ m4 @pkgsrcdir@ \
|
||||
- redhat @SOLARIS@ tests tools cumulus snapcraft
|
||||
+ redhat @SOLARIS@ tests cumulus snapcraft
|
||||
|
||||
DIST_SUBDIRS = lib qpb fpm zebra bgpd ripd ripngd ospfd ospf6d ldpd \
|
||||
isisd watchfrr vtysh ospfclient doc m4 pkgsrc redhat tests \
|
11
net/frr3/files/patch-vtysh_vtysh.c
Normal file
11
net/frr3/files/patch-vtysh_vtysh.c
Normal file
@ -0,0 +1,11 @@
|
||||
--- vtysh/vtysh.c.orig 2017-08-09 12:56:09.000000000 +0200
|
||||
+++ vtysh/vtysh.c 2017-08-22 22:04:36.068181000 +0200
|
||||
@@ -249,7 +249,7 @@
|
||||
if (pager_defined)
|
||||
vtysh_pager_name = strdup(pager_defined);
|
||||
else
|
||||
- vtysh_pager_name = strdup("more");
|
||||
+ vtysh_pager_name = strdup("cat");
|
||||
}
|
||||
|
||||
/* Command execution over the vty interface. */
|
33
net/frr3/files/watchfrr.in
Normal file
33
net/frr3/files/watchfrr.in
Normal file
@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: watchfrr
|
||||
# REQUIRE: NETWORKING frr
|
||||
# KEYWORD: nojailvtnet shutdown
|
||||
|
||||
# Add the following line to /etc/rc.conf to enable watchfrr:
|
||||
# watchfrr_enable="YES"
|
||||
#
|
||||
# You may also wish to use the following variables to fine-tune startup:
|
||||
# watchfrr_flags
|
||||
# Example of flags usage:
|
||||
# watchfrr_flags=" -d -r /usr/sbin/servicebBfrrbBrestartbB%s -s /usr/sbin/servicebBfrrbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30 zebra ripd ripngd ospfd ospf6d bgpd isisd eigrpd babeld"
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=watchfrr
|
||||
rcvar=${name}_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
stop_postcmd="rm -f $pidfile"
|
||||
|
||||
watchfrr_enable=${watchfrr_enable:-"NO"}
|
||||
watchfrr_flags=${watchfrr_flags:-"-d -r /usr/sbin/servicebBfrrbBrestartbB%s -s /usr/sbin/servicebBfrrbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30 zebra ripd ripngd ospfd ospf6d bgpd isisd"}
|
||||
|
||||
command=%%PREFIX%%/sbin/watchfrr
|
||||
pidfile=/var/run/frr/watchfrr.pid
|
||||
|
||||
run_rc_command "$1"
|
5
net/frr3/pkg-descr
Normal file
5
net/frr3/pkg-descr
Normal file
@ -0,0 +1,5 @@
|
||||
FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms
|
||||
which includes protocol daemons for BGP, IS-IS, OSPF and RIP. FRR has its roots
|
||||
in the Quagga project.
|
||||
|
||||
WWW: https://frrouting.org/
|
122
net/frr3/pkg-plist
Normal file
122
net/frr3/pkg-plist
Normal file
@ -0,0 +1,122 @@
|
||||
bin/bgp_btoa
|
||||
%%VTYSH%%bin/vtysh
|
||||
include/frr/bfd.h
|
||||
include/frr/bitfield.h
|
||||
include/frr/buffer.h
|
||||
include/frr/checksum.h
|
||||
include/frr/command.h
|
||||
include/frr/command_match.h
|
||||
include/frr/csv.h
|
||||
include/frr/distribute.h
|
||||
include/frr/event_counter.h
|
||||
include/frr/fifo.h
|
||||
include/frr/filter.h
|
||||
include/frr/getopt.h
|
||||
include/frr/graph.h
|
||||
include/frr/hash.h
|
||||
include/frr/hook.h
|
||||
include/frr/if.h
|
||||
include/frr/if_rmap.h
|
||||
include/frr/imsg.h
|
||||
include/frr/jhash.h
|
||||
include/frr/json.h
|
||||
include/frr/keychain.h
|
||||
include/frr/libfrr.h
|
||||
include/frr/libospf.h
|
||||
include/frr/linklist.h
|
||||
include/frr/log.h
|
||||
include/frr/md5.h
|
||||
include/frr/memory.h
|
||||
include/frr/memory_vty.h
|
||||
include/frr/module.h
|
||||
include/frr/monotime.h
|
||||
include/frr/mpls.h
|
||||
include/frr/network.h
|
||||
include/frr/nexthop.h
|
||||
include/frr/ns.h
|
||||
include/frr/openbsd-queue.h
|
||||
include/frr/openbsd-tree.h
|
||||
include/frr/ospfapi/ospf_apiclient.h
|
||||
include/frr/ospfd/ospf_api.h
|
||||
include/frr/ospfd/ospf_asbr.h
|
||||
include/frr/ospfd/ospf_dump.h
|
||||
include/frr/ospfd/ospf_dump_api.h
|
||||
include/frr/ospfd/ospf_ism.h
|
||||
include/frr/ospfd/ospf_lsa.h
|
||||
include/frr/ospfd/ospf_lsdb.h
|
||||
include/frr/ospfd/ospf_nsm.h
|
||||
include/frr/ospfd/ospf_opaque.h
|
||||
include/frr/ospfd/ospfd.h
|
||||
include/frr/plist.h
|
||||
include/frr/pqueue.h
|
||||
include/frr/prefix.h
|
||||
include/frr/privs.h
|
||||
include/frr/ptm_lib.h
|
||||
include/frr/pw.h
|
||||
include/frr/qobj.h
|
||||
include/frr/route_types.h
|
||||
include/frr/routemap.h
|
||||
include/frr/sigevent.h
|
||||
include/frr/spf_backoff.h
|
||||
include/frr/skiplist.h
|
||||
include/frr/smux.h
|
||||
include/frr/sockopt.h
|
||||
include/frr/sockunion.h
|
||||
include/frr/srcdest_table.h
|
||||
include/frr/stream.h
|
||||
include/frr/systemd.h
|
||||
include/frr/table.h
|
||||
include/frr/thread.h
|
||||
include/frr/vector.h
|
||||
include/frr/version.h
|
||||
include/frr/vrf.h
|
||||
include/frr/vty.h
|
||||
include/frr/wheel.h
|
||||
include/frr/workqueue.h
|
||||
include/frr/zassert.h
|
||||
include/frr/zclient.h
|
||||
include/frr/zebra.h
|
||||
lib/libfrr.a
|
||||
lib/libfrr.so
|
||||
lib/libfrr.so.0
|
||||
lib/libfrr.so.0.0.0
|
||||
lib/libfrrospfapiclient.a
|
||||
lib/libfrrospfapiclient.so
|
||||
lib/libfrrospfapiclient.so.0
|
||||
lib/libfrrospfapiclient.so.0.0.0
|
||||
man/man1/frr.1.gz
|
||||
man/man8/isisd.8.gz
|
||||
man/man8/watchfrr.8.gz
|
||||
%%VTYSH%%man/man1/vtysh.1.gz
|
||||
man/man8/bgpd.8.gz
|
||||
%%LDPD%%man/man8/ldpd.8.gz
|
||||
man/man8/ospf6d.8.gz
|
||||
man/man8/ospfclient.8.gz
|
||||
man/man8/ospfd.8.gz
|
||||
man/man8/ripd.8.gz
|
||||
man/man8/ripngd.8.gz
|
||||
man/man8/zebra.8.gz
|
||||
sbin/bgpd
|
||||
%%LDPD%%sbin/ldpd
|
||||
sbin/ospf6d
|
||||
sbin/ospfclient
|
||||
sbin/ospfd
|
||||
sbin/ripd
|
||||
sbin/ripngd
|
||||
sbin/zebra
|
||||
sbin/isisd
|
||||
sbin/rfptest
|
||||
sbin/ssd
|
||||
sbin/watchfrr
|
||||
%%ETCDIR%%/bgpd.conf.sample
|
||||
%%ETCDIR%%/bgpd.conf.sample2
|
||||
%%ETCDIR%%/bgpd.conf.vnc.sample
|
||||
%%ETCDIR%%/isisd.conf.sample
|
||||
%%LDPD%%%%ETCDIR%%/ldpd.conf.sample
|
||||
%%ETCDIR%%/ospf6d.conf.sample
|
||||
%%ETCDIR%%/ospfd.conf.sample
|
||||
%%ETCDIR%%/ripd.conf.sample
|
||||
%%ETCDIR%%/ripngd.conf.sample
|
||||
%%VTYSH%%%%ETCDIR%%/vtysh.conf.sample
|
||||
%%ETCDIR%%/zebra.conf.sample
|
||||
@dir(frr,frr,750) /var/run/frr
|
@ -17,7 +17,7 @@ BUILD_DEPENDS= gawk:lang/gawk \
|
||||
python:lang/python
|
||||
LIB_DEPENDS= libjson-c.so:devel/json-c
|
||||
|
||||
CONFLICTS= openbgpd openospfd zebra quagga-esr quagga
|
||||
CONFLICTS= openbgpd openospfd zebra quagga frr3
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
INSTALL_TARGET= install-strip
|
||||
|
Loading…
Reference in New Issue
Block a user