Index: head/net/frr3/Makefile =================================================================== --- head/net/frr3/Makefile (revision 481324) +++ head/net/frr3/Makefile (revision 481325) @@ -1,82 +1,82 @@ # $FreeBSD$ PORTNAME= frr PORTVERSION= 3.0.3 -PORTREVISION= 1 +PORTREVISION= 2 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 frr5 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 Index: head/net/frr3/files/frr.in =================================================================== --- head/net/frr3/files/frr.in (revision 481324) +++ head/net/frr3/files/frr.in (revision 481325) @@ -1,154 +1,155 @@ #!/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 + frr_cmd=$1 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} - ;; + frr_cmd=${frr_cmd#force} + ;; fast*) - frr_cmd=${frr_cmd#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" - ;; + start|quietstart) + 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" - ;; + 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" - ;; + 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}" - ;; + do_cmd "${frr_cmd}" + ;; esac