Index: head/net/frr/Makefile =================================================================== --- head/net/frr/Makefile (revision 452540) +++ head/net/frr/Makefile (revision 452541) @@ -1,81 +1,81 @@ # $FreeBSD$ PORTNAME= frr -PORTVERSION= 2.0 +PORTVERSION= 3.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]* +CONFLICTS= openbgpd openospfd zebra quagga-esr quagga USE_GITHUB= yes GH_ACCOUNT= FRRouting GH_PROJECT= frr -GH_TAGNAME= frr-2.0 +GH_TAGNAME= frr-3.0 GNU_CONFIGURE= yes INSTALL_TARGET= install-strip -USES= autoreconf gmake pkgconfig libtool makeinfo readline +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 +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 +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 Index: head/net/frr/distinfo =================================================================== --- head/net/frr/distinfo (revision 452540) +++ head/net/frr/distinfo (revision 452541) @@ -1,3 +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 +TIMESTAMP = 1508142178 +SHA256 (FRRouting-frr-3.0-frr-3.0_GH0.tar.gz) = 9335c83c2c0a21e64b4e64a130ee95c1f90d76103cff05e816f452a8ba0603d9 +SIZE (FRRouting-frr-3.0-frr-3.0_GH0.tar.gz) = 3166434 Index: head/net/frr/files/frr.in =================================================================== --- head/net/frr/files/frr.in (revision 452540) +++ head/net/frr/files/frr.in (revision 452541) @@ -1,154 +1,154 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: frr # REQUIRE: netif routing -# KEYWORD: nojail shutdown +# 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 + 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)) + 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 + if [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ]; then check_config fi - if [ ${frr_cmd} = "start" -a ! -f ${required_files} ]; then + if [ ${frr_cmd} = "start" ] && ! [ -f ${required_files} ]; then continue fi - if [ ${frr_cmd} = "stop" -a -z $(check_process ${command}) ]; then + 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 Index: head/net/frr/files/patch-Makefile.am =================================================================== --- head/net/frr/files/patch-Makefile.am (revision 452540) +++ head/net/frr/files/patch-Makefile.am (revision 452541) @@ -1,11 +1,11 @@ ---- Makefile.am.orig 2017-04-02 05:22:47 UTC +--- Makefile.am.orig 2017-03-08 14:59:07 UTC +++ Makefile.am -@@ -3,7 +3,7 @@ - SUBDIRS = lib qpb fpm @ZEBRA@ @LIBRFP@ @RFPTEST@ \ +@@ -4,7 +4,7 @@ SUBDIRS = lib qpb fpm @ZEBRA@ @LIBRFP@ @RFPTEST@ \ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @LDPD@ \ - @ISISD@ @PIMD@ @WATCHFRR@ @VTYSH@ @OSPFCLIENT@ @DOC@ m4 @pkgsrcdir@ \ + @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 \ Index: head/net/frr/files/patch-vtysh_vtysh.c =================================================================== --- head/net/frr/files/patch-vtysh_vtysh.c (revision 452540) +++ head/net/frr/files/patch-vtysh_vtysh.c (revision 452541) @@ -1,11 +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"); +--- 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. */ Index: head/net/frr/files/watchfrr.in =================================================================== --- head/net/frr/files/watchfrr.in (revision 452540) +++ head/net/frr/files/watchfrr.in (revision 452541) @@ -1,30 +1,30 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: watchfrr # REQUIRE: NETWORKING frr -# KEYWORD: shutdown +# 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: -# watchquagga_flags +# watchfrr_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" Index: head/net/frr/pkg-plist =================================================================== --- head/net/frr/pkg-plist (revision 452540) +++ head/net/frr/pkg-plist (revision 452541) @@ -1,120 +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/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