Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jun 2017 21:05:34 +0000 (UTC)
From:      Olivier Cochard <olivier@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r444689 - in head: . net net/frr net/frr/files
Message-ID:  <201706292105.v5TL5YWH007922@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: olivier
Date: Thu Jun 29 21:05:33 2017
New Revision: 444689
URL: https://svnweb.freebsd.org/changeset/ports/444689

Log:
  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

Added:
  head/net/frr/
  head/net/frr/Makefile   (contents, props changed)
  head/net/frr/distinfo   (contents, props changed)
  head/net/frr/files/
  head/net/frr/files/frr.in   (contents, props changed)
  head/net/frr/files/patch-Makefile.am   (contents, props changed)
  head/net/frr/files/patch-vtysh_vtysh.c   (contents, props changed)
  head/net/frr/files/watchfrr.in   (contents, props changed)
  head/net/frr/pkg-descr   (contents, props changed)
  head/net/frr/pkg-plist   (contents, props changed)
Modified:
  head/GIDs
  head/UIDs
  head/net/Makefile

Modified: head/GIDs
==============================================================================
--- head/GIDs	Thu Jun 29 20:52:29 2017	(r444688)
+++ head/GIDs	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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:

Modified: head/UIDs
==============================================================================
--- head/UIDs	Thu Jun 29 20:52:29 2017	(r444688)
+++ head/UIDs	Thu Jun 29 21:05:33 2017	(r444689)
@@ -114,7 +114,7 @@ lightdm:*:164:164::0:0:Light Display Manager:/var/lib/
 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

Modified: head/net/Makefile
==============================================================================
--- head/net/Makefile	Thu Jun 29 20:52:29 2017	(r444688)
+++ head/net/Makefile	Thu Jun 29 21:05:33 2017	(r444689)
@@ -151,6 +151,7 @@
     SUBDIR += freerdp1
     SUBDIR += freeswitch
     SUBDIR += freevrrpd
+    SUBDIR += frr
     SUBDIR += fspclient
     SUBDIR += fspd
     SUBDIR += fsplib

Added: head/net/frr/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/Makefile	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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>

Added: head/net/frr/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/distinfo	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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

Added: head/net/frr/files/frr.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/files/frr.in	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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

Added: head/net/frr/files/patch-Makefile.am
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/files/patch-Makefile.am	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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 \

Added: head/net/frr/files/patch-vtysh_vtysh.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/files/patch-vtysh_vtysh.c	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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. */

Added: head/net/frr/files/watchfrr.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/files/watchfrr.in	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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"

Added: head/net/frr/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/pkg-descr	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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/

Added: head/net/frr/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/frr/pkg-plist	Thu Jun 29 21:05:33 2017	(r444689)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201706292105.v5TL5YWH007922>