Index: head/net/quagga/Makefile =================================================================== --- head/net/quagga/Makefile (revision 369844) +++ head/net/quagga/Makefile (revision 369845) @@ -1,98 +1,99 @@ # Created by: Bruce M Simpson # $FreeBSD$ PORTNAME= quagga PORTVERSION= 0.99.23.1 +PORTREVISION= 1 CATEGORIES= net ipv6 MASTER_SITES= SAVANNAH MAINTAINER= mat@FreeBSD.org COMMENT= Free RIPv1, RIPv2, OSPFv2, BGP4, IS-IS route software LICENSE= GPLv2 BUILD_DEPENDS= gawk:${PORTSDIR}/lang/gawk CONFLICTS= openbgpd-[0-9]* openospfd-[0-9]* zebra-0* quagga-re-[0-9]* GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-exampledir=${PREFIX}/share/examples/quagga INSTALL_TARGET= install-strip USES= gmake libtool makeinfo perl5 readline autoreconf USE_LDCONFIG= yes USE_PERL5= build INFO= quagga OPTIONS_DEFINE= ISISD PAM OSPF_OPAQUE_LSA RTADV SNMP TCPSOCKETS DLMALLOC \ NO_BGP_ANNOUNCE OSPF_NEXTHOP WITHOUT=${OPTIONS_DEFINE} OPTIONS_SUB= yes ISISD_DESC= Enable experimental ISIS daemon PAM_DESC= PAM authentication for vtysh OSPF_OPAQUE_LSA_DESC= OSPF Opaque-LSA support (RFC2370) RTADV_DESC= IPv6 Router Advertisements TCPSOCKETS_DESC= Use TCP/IP sockets for protocol daemons DLMALLOC_DESC= Use dlmalloc (makes bgpd much faster) NO_BGP_ANNOUNCE_DESC= Turn off BGP route announcement OSPF_NEXTHOP_DESC= Set ip next-hop in OSPF route maps ENABLE_USER?= quagga ENABLE_GROUP?= quagga USERS= ${ENABLE_USER} GROUPS= ${ENABLE_GROUP} SYSCONF_DIR?= ${ETCDIR} LOCALSTATE_DIR?=/var/run/quagga CONFIGURE_ARGS= --enable-user=${ENABLE_USER} \ --enable-group=${ENABLE_GROUP} \ --sysconfdir=${SYSCONF_DIR} \ --localstatedir=${LOCALSTATE_DIR} \ --enable-vtysh .if defined(ENABLE_VTY_GROUP) CONFIGURE_ARGS+=--enable-vty-group=${ENABLE_VTY_GROUP} .endif ISISD_CONFIGURE_ENABLE= isisd PAM_CONFIGURE_WITH= libpam OSPF_OPAQUE_LSA_CONFIGURE_ENABLE= opaque-lsa RTADV_CONFIGURE_ENABLE= rtadv SNMP_CONFIGURE_ENABLE= snmp SNMP_LIB_DEPENDS= libnetsnmp.so:${PORTSDIR}/net-mgmt/net-snmp TCPSOCKETS_CONFIGURE_ENABLE= tcp-zebra DLMALLOC_LIB_DEPENDS= libdlmalloc.so:${PORTSDIR}/devel/libdlmalloc DLMALLOC_LIBS= -L${LOCALBASE}/lib -ldlmalloc NO_BGP_ANNOUNCE_CONFIGURE_ARGS+=--disable-bgp-announce OSPF_NEXTHOP_EXTRA_PATCH= ${PATCHDIR}/extra-patch-ospf-nexthop USE_RC_SUBR= quagga watchquagga SUB_LIST+= LOCALSTATE_DIR=${LOCALSTATE_DIR} \ SYSCONF_DIR=${SYSCONF_DIR} PLIST_SUB+= LOCALSTATE_DIR=${LOCALSTATE_DIR} \ SYSCONF_DIR=${SYSCONF_DIR} \ ENABLE_USER=${ENABLE_USER} \ ENABLE_GROUP=${ENABLE_GROUP} pre-everything:: @${ECHO} "=============================================================" @${ECHO} @${ECHO} "You can build ${PORTNAME} with the following options:" @${ECHO} @${ECHO} "ENABLE_USER Specify user to run Quagga suite as" @${ECHO} "ENABLE_GROUP Specify group to run Quagga suite as" @${ECHO} "ENABLE_VTY_GROUP Specify group for vty socket ownership" @${ECHO} "SYSCONF_DIR Specify directory for Quagga configuration files" @${ECHO} "LOCALSTATE_DIR Specify directory for Quagga runtime files" post-install: ${MKDIR} ${STAGEDIR}${LOCALSTATE_DIR} ${STAGEDIR}${SYSCONF_DIR} \ ${STAGEDIR}${EXAMPLESDIR} @${MV} ${STAGEDIR}${ETCDIR}/* ${STAGEDIR}${EXAMPLESDIR} .include Index: head/net/quagga/files/quagga.in =================================================================== --- head/net/quagga/files/quagga.in (revision 369844) +++ head/net/quagga/files/quagga.in (revision 369845) @@ -1,139 +1,139 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: quagga # REQUIRE: netif routing # KEYWORD: nojail shutdown # Add the following line to /etc/rc.conf to enable quagga: # quagga_enable="YES" # # You may also wish to use the following variables to fine-tune startup: # quagga_flags="-d" # quagga_daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd" # quagga_vysh_boot="YES" # Per daemon tuning may be done with daemon_name_flags # zebra_flags="-dP 0" # bgpd_flags="-dnrP 0" and so on # If you want to give the routing deamons a chance to catchup before # continueing, set quagga_wait_for to a "default" or certain prefix. # quagga_wait_for="default" # # If the quagga daemons require additional shared libraries to start, # use the following variable to run ldconfig(8) in advance: #quagga_extralibs_path="/usr/local/lib ..." # . /etc/rc.subr name=quagga rcvar=quagga_enable start_postcmd=start_postcmd stop_postcmd="rm -f $pidfile" configtest_cmd=check_config extra_commands=configtest load_rc_config $name quagga_enable=${quagga_enable:-"NO"} quagga_flags=${quagga_flags:-"-d"} quagga_daemons=${quagga_daemons:-"zebra ripd ripngd ospfd ospf6d bgpd isisd"} quagga_vtysh_boot=${quagga_vtysh_boot:-"NO"} -quagga_cmd=$1 - -case "$1" in - force*) - quagga_cmd=${quagga_cmd#force} - ;; - fast*) - quagga_cmd=${quagga_cmd#fast} - ;; -esac -shift - -if [ $# -ge 1 ]; then - quagga_daemons="$*" -fi - -case "${quagga_cmd}" in - start) - if [ ! -z ${quagga_extralibs_path} ]; then - /sbin/ldconfig -m ${quagga_extralibs_path} - fi - do_cmd "start" - ;; - stop) - quagga_daemons=$(reverse_list ${quagga_daemons}) - do_cmd "stop" - ;; - restart) - quagga_daemons=$(reverse_list ${quagga_daemons}) - do_cmd "stop" - quagga_daemons=$(reverse_list ${quagga_daemons}) - do_cmd "start" - ;; - *) - do_cmd "${quagga_cmd}" - ;; -esac - check_config() { echo "Checking $daemon.conf" $command $daemon_flags -C result=$? if [ "$result" -eq "0" ]; then echo "OK" else echo "FAILED" exit fi } start_postcmd() { # Wait only when last daemon has started. if [ "${quagga_daemons}" = "${quagga_daemons% ${name}}" ]; then return; fi if [ ${quagga_wait_for} ]; then echo Waiting for ${quagga_wait_for} route... while true; do /sbin/route -n get ${quagga_wait_for} >/dev/null 2>&1 && break; sleep 1; done fi } do_cmd() { local ret ret=0 for daemon in ${quagga_daemons}; do command=%%PREFIX%%/sbin/${daemon} required_files=%%SYSCONF_DIR%%/${daemon}.conf pidfile=%%LOCALSTATE_DIR%%/${daemon}.pid if [ ${quagga_cmd} = "restart" -o ${quagga_cmd} = "start" ]; then check_config fi if [ ${quagga_cmd} = "start" -a ! -f ${required_files} ]; then continue fi if [ ${quagga_cmd} = "stop" -a -z $(check_process ${command}) ]; then continue fi eval flags=\$\{${daemon}_flags:-\"${quagga_flags}\"\} name=${daemon} _rc_restart_done=false run_rc_command "$1" || ret=1 done if checkyesno quagga_vtysh_boot; then echo "Booting for integrated-vtysh-config..." %%PREFIX%%/bin/vtysh -b fi return ${ret} } + +quagga_cmd=$1 + +case "$1" in + force*) + quagga_cmd=${quagga_cmd#force} + ;; + fast*) + quagga_cmd=${quagga_cmd#fast} + ;; +esac +shift + +if [ $# -ge 1 ]; then + quagga_daemons="$*" +fi + +case "${quagga_cmd}" in + start) + if [ ! -z ${quagga_extralibs_path} ]; then + /sbin/ldconfig -m ${quagga_extralibs_path} + fi + do_cmd "start" + ;; + stop) + quagga_daemons=$(reverse_list ${quagga_daemons}) + do_cmd "stop" + ;; + restart) + quagga_daemons=$(reverse_list ${quagga_daemons}) + do_cmd "stop" + quagga_daemons=$(reverse_list ${quagga_daemons}) + do_cmd "start" + ;; + *) + do_cmd "${quagga_cmd}" + ;; +esac