mirror of
https://git.freebsd.org/ports.git
synced 2025-05-19 18:43:13 -04:00
New port: net/frr
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/ Sponsored by: Orange
This commit is contained in:
parent
3550198a2d
commit
0014661d9d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=444689
11 changed files with 419 additions and 3 deletions
4
GIDs
4
GIDs
|
@ -93,7 +93,7 @@ ipv6mon:*:148:
|
|||
avenger:*:149:
|
||||
cbsd:*:150:
|
||||
# free: 151
|
||||
# free: 152
|
||||
frrvty:*:152:frr
|
||||
rbldns:*:153:
|
||||
trircd:*:154:
|
||||
xorp:*:155:
|
||||
|
@ -109,7 +109,7 @@ lightdm:*:164:
|
|||
uwsgi:*:165:
|
||||
yule:*:166:
|
||||
ceph:*:167:
|
||||
# free: 168
|
||||
frr:*:168:
|
||||
acme:*:169:
|
||||
tile38:*:170:
|
||||
sfs:*:171:
|
||||
|
|
2
UIDs
2
UIDs
|
@ -114,7 +114,7 @@ lightdm:*:164:164::0:0:Light Display Manager:/var/lib/lightdm-data:/usr/sbin/nol
|
|||
uwsgi:*:165:165::0:0:uwsgi Daemon:/nonexistent:/usr/sbin/nologin
|
||||
yule:*:166:166::0:0:Samhain Daemon:/nonexistent:/usr/sbin/nologin
|
||||
ceph:*:167:167::0:0:Ceph Daemons:/var/lib/ceph:/usr/sbin/nologin
|
||||
# free: 168
|
||||
frr:*:168:168::0:0:FRRouting user:/var/empty:/usr/sbin/nologin
|
||||
acme:*:169:169::0:0:ACME protocol client:/var/db/acme:/bin/sh
|
||||
tile38:*:170:170::0:0:Tile38 User:/var/db/tile38:/usr/sbin/nologin
|
||||
sfs:*:171:171::0:0:Self-Certifying File System:/nonexistent:/usr/sbin/nologin
|
||||
|
|
|
@ -151,6 +151,7 @@
|
|||
SUBDIR += freerdp1
|
||||
SUBDIR += freeswitch
|
||||
SUBDIR += freevrrpd
|
||||
SUBDIR += frr
|
||||
SUBDIR += fspclient
|
||||
SUBDIR += fspd
|
||||
SUBDIR += fsplib
|
||||
|
|
81
net/frr/Makefile
Normal file
81
net/frr/Makefile
Normal file
|
@ -0,0 +1,81 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= frr
|
||||
PORTVERSION= 2.0
|
||||
CATEGORIES= net ipv6
|
||||
|
||||
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-[0-9]* openospfd-[0-9]* zebra-0* quagga-re-[0-9]* quagga-[0-9]*
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= FRRouting
|
||||
GH_PROJECT= frr
|
||||
GH_TAGNAME= frr-2.0
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
INSTALL_TARGET= install-strip
|
||||
USES= autoreconf 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/frr/distinfo
Normal file
3
net/frr/distinfo
Normal file
|
@ -0,0 +1,3 @@
|
|||
TIMESTAMP = 1497785263
|
||||
SHA256 (FRRouting-frr-2.0-frr-2.0_GH0.tar.gz) = 70259dc379678a7b0c32abd30173034f31876612451e2ffd7d09c52ab22ac05b
|
||||
SIZE (FRRouting-frr-2.0-frr-2.0_GH0.tar.gz) = 3025536
|
154
net/frr/files/frr.in
Normal file
154
net/frr/files/frr.in
Normal file
|
@ -0,0 +1,154 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: frr
|
||||
# REQUIRE: netif routing
|
||||
# KEYWORD: nojail 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" -o ${frr_cmd} = "start" ]; then
|
||||
check_config
|
||||
fi
|
||||
if [ ${frr_cmd} = "start" -a ! -f ${required_files} ]; then
|
||||
continue
|
||||
fi
|
||||
if [ ${frr_cmd} = "stop" -a -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/frr/files/patch-Makefile.am
Normal file
11
net/frr/files/patch-Makefile.am
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- Makefile.am.orig 2017-04-02 05:22:47 UTC
|
||||
+++ Makefile.am
|
||||
@@ -3,7 +3,7 @@
|
||||
SUBDIRS = lib qpb fpm @ZEBRA@ @LIBRFP@ @RFPTEST@ \
|
||||
@BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @LDPD@ \
|
||||
@ISISD@ @PIMD@ @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/frr/files/patch-vtysh_vtysh.c
Normal file
11
net/frr/files/patch-vtysh_vtysh.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- vtysh/vtysh.c.orig 2017-06-27 14:48:26 UTC
|
||||
+++ vtysh/vtysh.c
|
||||
@@ -261,7 +261,7 @@ vtysh_pager_init (void)
|
||||
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. */
|
30
net/frr/files/watchfrr.in
Normal file
30
net/frr/files/watchfrr.in
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: watchfrr
|
||||
# REQUIRE: NETWORKING frr
|
||||
# KEYWORD: 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:
|
||||
# watchquagga_flags
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=watchfrr
|
||||
rcvar=${name}_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
stop_postcmd="rm -f $pidfile"
|
||||
|
||||
watchfrr_enable=${watchfrr_enable:-"NO"}
|
||||
|
||||
command=%%PREFIX%%/sbin/watchfrr
|
||||
pidfile=%%LOCALSTATE_DIR%%/watchfrr.pid
|
||||
|
||||
run_rc_command "$1"
|
5
net/frr/pkg-descr
Normal file
5
net/frr/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/
|
120
net/frr/pkg-plist
Normal file
120
net/frr/pkg-plist
Normal file
|
@ -0,0 +1,120 @@
|
|||
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/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/hash.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/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/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/qobj.h
|
||||
include/frr/route_types.h
|
||||
include/frr/routemap.h
|
||||
include/frr/sigevent.h
|
||||
include/frr/skiplist.h
|
||||
include/frr/smux.h
|
||||
include/frr/sockopt.h
|
||||
include/frr/sockunion.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/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/libfrr_pb.a
|
||||
lib/libfrr_pb.so
|
||||
lib/libfrr_pb.so.0
|
||||
lib/libfrr_pb.so.0.0.0
|
||||
lib/libfrrfpm_pb.a
|
||||
lib/libfrrfpm_pb.so
|
||||
lib/libfrrfpm_pb.so.0
|
||||
lib/libfrrfpm_pb.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
|
Loading…
Add table
Reference in a new issue