Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified)) by mollari.NetBSD.org (Postfix) with ESMTPS id 6976A1A9217 for ; Thu, 10 Dec 2020 16:43:28 +0000 (UTC) Received: by mail.netbsd.org (Postfix, from userid 605) id CCF4584D7A; Thu, 10 Dec 2020 16:43:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 10BC184D71 for ; Thu, 10 Dec 2020 16:43:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id CA8-ID9DPgzP for ; Thu, 10 Dec 2020 16:43:25 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id 37CBA84D6D for ; Thu, 10 Dec 2020 16:43:25 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 30CDEFA9D; Thu, 10 Dec 2020 16:43:25 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1607618605203940" MIME-Version: 1.0 Date: Thu, 10 Dec 2020 16:43:25 +0000 From: "Frank Kardel" Subject: CVS commit: pkgsrc/net/frr To: pkgsrc-changes@NetBSD.org Reply-To: kardel@netbsd.org X-Mailer: log_accum Message-Id: <20201210164325.30CDEFA9D@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1607618605203940 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: kardel Date: Thu Dec 10 16:43:25 UTC 2020 Added Files: pkgsrc/net/frr: DESCR MESSAGE Makefile PLIST distinfo options.mk pkgsrc/net/frr/files: staticd.sh pkgsrc/net/frr/patches: patch-pkgsrc_zebra.sh.in patch-zebra_ioctl.c patch-zebra_kernel__socket.c Log Message: net/frr: import frr-7.5 FRRouting ========= FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD as well as Solaris and supports all modern CPU architectures. FRR currently supports the following protocols: * BGP * OSPFv2 * OSPFv3 * RIPv1 * RIPv2 * RIPng * IS-IS ... To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 pkgsrc/net/frr/DESCR pkgsrc/net/frr/MESSAGE \ pkgsrc/net/frr/Makefile pkgsrc/net/frr/PLIST pkgsrc/net/frr/distinfo \ pkgsrc/net/frr/options.mk cvs rdiff -u -r0 -r1.1 pkgsrc/net/frr/files/staticd.sh cvs rdiff -u -r0 -r1.1 pkgsrc/net/frr/patches/patch-pkgsrc_zebra.sh.in \ pkgsrc/net/frr/patches/patch-zebra_ioctl.c \ pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1607618605203940 Content-Disposition: inline Content-Length: 24680 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Added files: Index: pkgsrc/net/frr/DESCR diff -u /dev/null pkgsrc/net/frr/DESCR:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/DESCR Thu Dec 10 16:43:24 2020 @@ -0,0 +1,17 @@ +FRRouting +========= + +FRR is free software that implements and manages various IPv4 and IPv6 routing +protocols. It runs on nearly all distributions of Linux and BSD as well as +Solaris and supports all modern CPU architectures. + +FRR currently supports the following protocols: + +* BGP +* OSPFv2 +* OSPFv3 +* RIPv1 +* RIPv2 +* RIPng +* IS-IS +... Index: pkgsrc/net/frr/MESSAGE diff -u /dev/null pkgsrc/net/frr/MESSAGE:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/MESSAGE Thu Dec 10 16:43:24 2020 @@ -0,0 +1,11 @@ +=========================================================================== +$NetBSD: MESSAGE,v 1.1 2020/12/10 16:43:24 kardel Exp $ + +IMPORTANT: +To complete the installation you need to add +the user "${FRR_USER}" to the (secondary) group "${FRR_VTY_GROUP}". + +You can find some example config files in +${PREFIX}/share/examples/frr + +=========================================================================== Index: pkgsrc/net/frr/Makefile diff -u /dev/null pkgsrc/net/frr/Makefile:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/Makefile Thu Dec 10 16:43:24 2020 @@ -0,0 +1,116 @@ +# $NetBSD: Makefile,v 1.1 2020/12/10 16:43:24 kardel Exp $ + +GITHUB_PROJECT= frr +VERSION= 7.5 +GITHUB_TAG= frr-${VERSION} +DISTNAME= frr-${VERSION} +CATEGORIES= net +MASTER_SITES= ${MASTER_SITE_GITHUB:=FRRouting/} + +MAINTAINER= kardel@NetBSD.org +HOMEPAGE= https://github.com/FRRouting/frr/ +COMMENT= Frr routing multi protocol suite +LICENSE= gnu-gpl-v2 + +CONFLICTS= quagga-[0-9]* + +WRKSRC= ${WRKDIR}/frr-frr-${VERSION} +USE_LANGUAGES= c c++ +USE_TOOLS+= gmake perl bash pkg-config autoconf automake autoreconf +USE_LIBTOOL= YES +GNU_CONFIGURE= yes +BUILD_DEFS= VARBASE + +.include "../../mk/bsd.prefs.mk" +.include "options.mk" + +# to pick up the atomic implementation on i386 +.if ${MACHINE_ARCH} == "i386" +CPPFLAGS+= -march=i586 +.endif + +FRR_GROUP?= _frr +FRR_VTY_GROUP?= frrvty + +FRR_USER?= _frr +FRR_CONF_MODE= 0640 +FRR_CONFDIR_MODE= 0755 +FRR_LOG_MODE= 0640 + +PKG_SYSCONFDIR_PERMS= ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONFDIR_MODE} +PKG_SYSCONFSUBDIR= frr + +PKG_GECOS.${FRR_USER}= FRRouting User +PKG_HOME.${FRR_USER}= /nonexistent +PKG_SHELL.${FRR_USER}= /bin/sh + +PKG_GROUPS= ${FRR_GROUP} ${FRR_VTY_GROUP} +PKG_USERS= ${FRR_USER}:${FRR_GROUP} + +RCD_SUPPLIED= bgpd ospf6d ospfd ripd ripngd zebra +RCD_SCRIPTS= ${RCD_SUPPLIED} staticd + +.for f in ${RCD_SUPPLIED} +RCD_SCRIPT_SRC.${f}= ${WRKSRC}/pkgsrc/${f}.sh +.endfor + +CONFIG_TEMPLATE_PATH= share/examples/${PKG_SYSCONFSUBDIR}/configsamples + +USE_TOOLS+= bash:run +REPLACE_BASH= tools/frr.in tools/*.sh.in + +REPLACE_PYTHON= tools/generate_support_bundle.py tools/frr-reload.py + +MESSAGE_SUBST+= FRR_USER=${FRR_USER} +MESSAGE_SUBST+= FRR_VTY_GROUP=${FRR_VTY_GROUP} + +SUBST_CLASSES+= ids +SUBST_STAGE.ids= pre-configure +SUBST_MESSAGE.ids= Fixing user/group references. +SUBST_FILES.ids= pkgsrc/zebra.sh.in +SUBST_VARS.ids= FRR_USER FRR_VTY_GROUP + +SUBST_CLASSES+= workdir +SUBST_STAGE.workdir= post-configure +SUBST_MESSAGE.workdir= Fixing absolute workdir references. +SUBST_FILES.workdir= lib/version.h +SUBST_SED.workdir= -e "s,${WRKDIR},"'{WRKDIR},g' +SUBST_VARS.workdir= + +CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} +CONFIGURE_ARGS+= --enable-user=${FRR_USER} +CONFIGURE_ARGS+= --enable-group=${FRR_GROUP} +CONFIGURE_ARGS+= --enable-exampledir=${PREFIX}/${CONFIG_TEMPLATE_PATH} +CONFIGURE_ARGS+= --localstatedir=${VARBASE}/run/frr +CONFIGURE_ARGS+= --enable-multipath=64 +CONFIGURE_ARGS+= --enable-vty-group=${FRR_VTY_GROUP} +CONFIGURE_ARGS+= --enable-configfile-mask=${FRR_CONF_MODE} +CONFIGURE_ARGS+= --enable-logfile-mask=${FRR_LOG_MODE} +CONFIGURE_ARGS+= --enable-fpm +CONFIGURE_ARGS+= --with-pkg-git-version +CONFIGURE_ARGS+= --with-pkg-extra-version=/${DISTNAME} +# CONFIGURE_ARGS+= --enable-address-sanitizer + +pre-configure: + cd ${WRKSRC} && ${SH} bootstrap.sh + +.include "../../devel/libyang/buildlink3.mk" +.include "../../textproc/json-c/buildlink3.mk" +.include "../../lang/python/application.mk" +.include "../../devel/readline/buildlink3.mk" + +.include "../../mk/bsd.pkg.mk" + +# needs to be here to have ${EGREP} defined +CONFIG_TEMPLATES!= ${EGREP} ${CONFIG_TEMPLATE_PATH:Q} PLIST 2>/dev/null +CONF_FILES?= + +.for l in ${CONFIG_TEMPLATES} +. if ${l:C,^${CONFIG_TEMPLATE_PATH}/(.*)\.sample,\1,} == "vtysh.conf" +CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ + ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONF_MODE} +. else +CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ + ${FRR_USER} ${FRR_GROUP} ${FRR_CONF_MODE} +. endif +.endfor Index: pkgsrc/net/frr/PLIST diff -u /dev/null pkgsrc/net/frr/PLIST:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/PLIST Thu Dec 10 16:43:24 2020 @@ -0,0 +1,319 @@ +@comment $NetBSD: PLIST,v 1.1 2020/12/10 16:43:24 kardel Exp $ +bin/mtracebis +bin/vtysh +include/frr/agg_table.h +include/frr/atomlist.h +include/frr/bfd.h +include/frr/bitfield.h +include/frr/buffer.h +include/frr/checksum.h +include/frr/command.h +include/frr/command_graph.h +include/frr/command_match.h +include/frr/compiler.h +include/frr/csv.h +include/frr/db.h +include/frr/debug.h +include/frr/defaults.h +include/frr/distribute.h +include/frr/eigrpd/eigrp_dump.h +include/frr/eigrpd/eigrp_topology.h +include/frr/eigrpd/eigrpd.h +include/frr/ferr.h +include/frr/filter.h +include/frr/freebsd-queue.h +include/frr/frr_pthread.h +include/frr/frratomic.h +include/frr/frrcu.h +include/frr/frrlua.h +include/frr/frrstr.h +include/frr/getopt.h +include/frr/graph.h +include/frr/hash.h +include/frr/hook.h +include/frr/iana_afi.h +include/frr/id_alloc.h +include/frr/if.h +include/frr/if_rmap.h +include/frr/imsg.h +include/frr/ipaddr.h +include/frr/jhash.h +include/frr/json.h +include/frr/keychain.h +include/frr/lib_errors.h +include/frr/lib_vty.h +include/frr/libfrr.h +include/frr/libospf.h +include/frr/linklist.h +include/frr/log.h +include/frr/log_vty.h +include/frr/md5.h +include/frr/memory.h +include/frr/mlag.h +include/frr/module.h +include/frr/monotime.h +include/frr/mpls.h +include/frr/network.h +include/frr/nexthop.h +include/frr/nexthop_group.h +include/frr/nexthop_group_private.h +include/frr/northbound.h +include/frr/northbound_cli.h +include/frr/northbound_db.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/pbr.h +include/frr/plist.h +include/frr/prefix.h +include/frr/printfrr.h +include/frr/privs.h +include/frr/ptm_lib.h +include/frr/pullwr.h +include/frr/pw.h +include/frr/qobj.h +include/frr/queue.h +include/frr/ringbuf.h +include/frr/route_types.h +include/frr/routemap.h +include/frr/routing_nb.h +include/frr/sbuf.h +include/frr/seqlock.h +include/frr/sha256.h +include/frr/sigevent.h +include/frr/skiplist.h +include/frr/smux.h +include/frr/sockopt.h +include/frr/sockunion.h +include/frr/spf_backoff.h +include/frr/srcdest_table.h +include/frr/srte.h +include/frr/srv6.h +include/frr/stream.h +include/frr/systemd.h +include/frr/table.h +include/frr/termtable.h +include/frr/thread.h +include/frr/typerb.h +include/frr/typesafe.h +include/frr/vector.h +include/frr/version.h +include/frr/vlan.h +include/frr/vrf.h +include/frr/vrf_int.h +include/frr/vty.h +include/frr/vxlan.h +include/frr/wheel.h +include/frr/workqueue.h +include/frr/yang.h +include/frr/yang_translator.h +include/frr/yang_wrappers.h +include/frr/zassert.h +include/frr/zclient.h +include/frr/zebra.h +include/frr/zlog.h +include/frr/zlog_targets.h +${PLIST.doc}info/frr.info +lib/frr/modules/zebra_fpm.la +lib/libfrr.la +lib/libfrrospfapiclient.la +${PLIST.doc}man/man1/frr.1 +${PLIST.doc}man/man1/vtysh.1 +${PLIST.doc}man/man8/frr-bfdd.8 +${PLIST.doc}man/man8/frr-bgpd.8 +${PLIST.doc}man/man8/frr-eigrpd.8 +${PLIST.doc}man/man8/frr-isisd.8 +${PLIST.doc}man/man8/frr-ldpd.8 +${PLIST.doc}man/man8/frr-ospf6d.8 +${PLIST.doc}man/man8/frr-ospfd.8 +${PLIST.doc}man/man8/frr-pbrd.8 +${PLIST.doc}man/man8/frr-pimd.8 +${PLIST.doc}man/man8/frr-ripd.8 +${PLIST.doc}man/man8/frr-ripngd.8 +${PLIST.doc}man/man8/frr-staticd.8 +${PLIST.doc}man/man8/frr-watchfrr.8 +${PLIST.doc}man/man8/frr-zebra.8 +${PLIST.doc}man/man8/mtracebis.8 +sbin/babeld +sbin/bfdd +sbin/bgpd +sbin/eigrpd +sbin/fabricd +sbin/frr +sbin/frr-reload +sbin/frr-reload.py +sbin/frrcommon.sh +sbin/frrinit.sh +sbin/generate_support_bundle.py +sbin/isisd +sbin/ldpd +sbin/ospf6d +sbin/ospfd +sbin/pbrd +sbin/pimd +sbin/ripd +sbin/ripngd +sbin/ssd +sbin/staticd +sbin/watchfrr +sbin/watchfrr.sh +sbin/zebra +${PLIST.doc}share/doc/frr/html/.buildinfo +${PLIST.doc}share/doc/frr/html/_images/fig-normal-processing.png +${PLIST.doc}share/doc/frr/html/_images/fig-rs-processing.png +${PLIST.doc}share/doc/frr/html/_images/fig-vnc-commercial-route-reflector.png +${PLIST.doc}share/doc/frr/html/_images/fig-vnc-frr-route-reflector.png +${PLIST.doc}share/doc/frr/html/_images/fig-vnc-gw.png +${PLIST.doc}share/doc/frr/html/_images/fig-vnc-mesh.png +${PLIST.doc}share/doc/frr/html/_images/fig-vnc-redundant-route-reflectors.png +${PLIST.doc}share/doc/frr/html/_images/fig_dmvpn_topologies.png +${PLIST.doc}share/doc/frr/html/_images/fig_topologies_full.png +${PLIST.doc}share/doc/frr/html/_images/fig_topologies_rs.png +${PLIST.doc}share/doc/frr/html/_sources/babeld.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/basic.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/bfd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/bgp.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/bmp.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/bugs.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/eigrpd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/fabricd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/filter.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/frr-reload.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/glossary.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/grpc.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/index.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/installation.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ipv6.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/isisd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/kernel.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ldpd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/nhrpd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ospf6d.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ospfd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/overview.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/packet-dumps.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/pbr.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/pim.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ripd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/ripngd.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/routemap.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/setup.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/sharp.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/snmp.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/static.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/vnc.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/vrrp.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/vtysh.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/watchfrr.rst.txt +${PLIST.doc}share/doc/frr/html/_sources/zebra.rst.txt +${PLIST.doc}share/doc/frr/html/_static/basic.css +${PLIST.doc}share/doc/frr/html/_static/classic.css +${PLIST.doc}share/doc/frr/html/_static/default.css +${PLIST.doc}share/doc/frr/html/_static/doctools.js +${PLIST.doc}share/doc/frr/html/_static/documentation_options.js +${PLIST.doc}share/doc/frr/html/_static/file.png +${PLIST.doc}share/doc/frr/html/_static/frr-icon.svg +${PLIST.doc}share/doc/frr/html/_static/frr-logo-icon.png +${PLIST.doc}share/doc/frr/html/_static/jquery-3.4.1.js +${PLIST.doc}share/doc/frr/html/_static/jquery.js +${PLIST.doc}share/doc/frr/html/_static/language_data.js +${PLIST.doc}share/doc/frr/html/_static/minus.png +${PLIST.doc}share/doc/frr/html/_static/overrides.css +${PLIST.doc}share/doc/frr/html/_static/overrides.js +${PLIST.doc}share/doc/frr/html/_static/plus.png +${PLIST.doc}share/doc/frr/html/_static/pygments.css +${PLIST.doc}share/doc/frr/html/_static/searchtools.js +${PLIST.doc}share/doc/frr/html/_static/sidebar.js +${PLIST.doc}share/doc/frr/html/_static/underscore-1.3.1.js +${PLIST.doc}share/doc/frr/html/_static/underscore.js +${PLIST.doc}share/doc/frr/html/babeld.html +${PLIST.doc}share/doc/frr/html/basic.html +${PLIST.doc}share/doc/frr/html/bfd.html +${PLIST.doc}share/doc/frr/html/bgp.html +${PLIST.doc}share/doc/frr/html/bmp.html +${PLIST.doc}share/doc/frr/html/bugs.html +${PLIST.doc}share/doc/frr/html/eigrpd.html +${PLIST.doc}share/doc/frr/html/fabricd.html +${PLIST.doc}share/doc/frr/html/filter.html +${PLIST.doc}share/doc/frr/html/frr-reload.html +${PLIST.doc}share/doc/frr/html/genindex.html +${PLIST.doc}share/doc/frr/html/glossary.html +${PLIST.doc}share/doc/frr/html/grpc.html +${PLIST.doc}share/doc/frr/html/index.html +${PLIST.doc}share/doc/frr/html/installation.html +${PLIST.doc}share/doc/frr/html/ipv6.html +${PLIST.doc}share/doc/frr/html/isisd.html +${PLIST.doc}share/doc/frr/html/kernel.html +${PLIST.doc}share/doc/frr/html/ldpd.html +${PLIST.doc}share/doc/frr/html/nhrpd.html +${PLIST.doc}share/doc/frr/html/objects.inv +${PLIST.doc}share/doc/frr/html/ospf6d.html +${PLIST.doc}share/doc/frr/html/ospfd.html +${PLIST.doc}share/doc/frr/html/overview.html +${PLIST.doc}share/doc/frr/html/packet-dumps.html +${PLIST.doc}share/doc/frr/html/pbr.html +${PLIST.doc}share/doc/frr/html/pim.html +${PLIST.doc}share/doc/frr/html/ripd.html +${PLIST.doc}share/doc/frr/html/ripngd.html +${PLIST.doc}share/doc/frr/html/routemap.html +${PLIST.doc}share/doc/frr/html/search.html +${PLIST.doc}share/doc/frr/html/searchindex.js +${PLIST.doc}share/doc/frr/html/setup.html +${PLIST.doc}share/doc/frr/html/sharp.html +${PLIST.doc}share/doc/frr/html/snmp.html +${PLIST.doc}share/doc/frr/html/static.html +${PLIST.doc}share/doc/frr/html/vnc.html +${PLIST.doc}share/doc/frr/html/vrrp.html +${PLIST.doc}share/doc/frr/html/vtysh.html +${PLIST.doc}share/doc/frr/html/watchfrr.html +${PLIST.doc}share/doc/frr/html/zebra.html +share/examples/frr/configsamples/babeld.conf.sample +share/examples/frr/configsamples/bfdd.conf.sample +share/examples/frr/configsamples/bgpd.conf.sample +share/examples/frr/configsamples/bgpd.conf.sample2 +share/examples/frr/configsamples/bgpd.conf.vnc.sample +share/examples/frr/configsamples/eigrpd.conf.sample +share/examples/frr/configsamples/fabricd.conf.sample +share/examples/frr/configsamples/isisd.conf.sample +share/examples/frr/configsamples/ldpd.conf.sample +share/examples/frr/configsamples/ospf6d.conf.sample +share/examples/frr/configsamples/ospfd.conf.sample +share/examples/frr/configsamples/pbrd.conf.sample +share/examples/frr/configsamples/pimd.conf.sample +share/examples/frr/configsamples/ripd.conf.sample +share/examples/frr/configsamples/ripngd.conf.sample +share/examples/frr/configsamples/staticd.conf.sample +share/examples/frr/configsamples/vtysh.conf.sample +share/examples/frr/configsamples/zebra.conf.sample +share/yang/frr-bfdd.yang +share/yang/frr-eigrpd.yang +share/yang/frr-filter.yang +share/yang/frr-igmp.yang +share/yang/frr-interface.yang +share/yang/frr-isisd.yang +share/yang/frr-module-translator.yang +share/yang/frr-nexthop.yang +share/yang/frr-pim-rp.yang +share/yang/frr-pim.yang +share/yang/frr-ripd.yang +share/yang/frr-ripngd.yang +share/yang/frr-route-map.yang +share/yang/frr-route-types.yang +share/yang/frr-routing.yang +share/yang/frr-staticd.yang +share/yang/frr-test-module.yang +share/yang/frr-vrf.yang +share/yang/frr-zebra.yang +share/yang/ietf-interfaces.yang +share/yang/ietf-routing-types.yang Index: pkgsrc/net/frr/distinfo diff -u /dev/null pkgsrc/net/frr/distinfo:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/distinfo Thu Dec 10 16:43:24 2020 @@ -0,0 +1,9 @@ +$NetBSD: distinfo,v 1.1 2020/12/10 16:43:24 kardel Exp $ + +SHA1 (frr-7.5.tar.gz) = 266129c3de20d5ffbe1ae9751fbbf88184405617 +RMD160 (frr-7.5.tar.gz) = 368fae09311e2b4210cf793f09a33238c19f5441 +SHA512 (frr-7.5.tar.gz) = d0d3c0bc0d30e2ebb93e20906768a996d21db23b23118c8e3c50d238e7bfdee7a789b4a90c9d7dbdc842d857f60bd44f0922b01b0c2c8b289ac860f008a430a9 +Size (frr-7.5.tar.gz) = 6730659 bytes +SHA1 (patch-pkgsrc_zebra.sh.in) = d458e74a1f3319f6e075d3d3a81414bc7d7022f2 +SHA1 (patch-zebra_ioctl.c) = 99b7606564f4dc620df997889156b5c09f7fb396 +SHA1 (patch-zebra_kernel__socket.c) = 9bf24d86923715e3e15cad073df1210bc0608e89 Index: pkgsrc/net/frr/options.mk diff -u /dev/null pkgsrc/net/frr/options.mk:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/options.mk Thu Dec 10 16:43:24 2020 @@ -0,0 +1,25 @@ +# $NetBSD: options.mk,v 1.1 2020/12/10 16:43:24 kardel Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.frr +PKG_SUPPORTED_OPTIONS= doc +PKG_SUGGESTED_OPTIONS= doc + +PLIST_VARS+= doc + +.include "../../mk/bsd.options.mk" + +# Package-specific option-handling + +### +### doc/man support +### +.if !empty(PKG_OPTIONS:Mdoc) +USE_TOOLS+= makeinfo +CONFIGURE_ARGS+= --enable-doc-html +CONFIGURE_ARGS+= --infodir=${PREFIX}/info +TOOL_DEPENDS+= ${PYPKGPREFIX}-sphinx>=2.4.4:../../textproc/py-sphinx +PLIST.doc= yes +INFO_FILES= yes +.else +CONFIGURE_ARGS+= --disable-doc +.endif Index: pkgsrc/net/frr/files/staticd.sh diff -u /dev/null pkgsrc/net/frr/files/staticd.sh:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/files/staticd.sh Thu Dec 10 16:43:24 2020 @@ -0,0 +1,27 @@ +#!/bin/sh +# +# staticd is part of the frr routing beast +# +# PROVIDE: staticd +# REQUIRE: zebra +## + +PATH=/sbin:/bin:/usr/sbin:/usr/bin:@PREFIX@/sbin:@PREFIX@/bin +export PATH + +if [ -f /etc/rc.subr ] +then + . /etc/rc.subr +fi + +name="staticd" +rcvar=$name +required_files="@PREFIX@/etc/frr/${name}.conf" +command="@PREFIX@/sbin/${name}" +command_args="-d" + +socket_dir="@VARBASE@/run/frr" +pidfile="${socket_dir}/${name}.pid" + +load_rc_config $name +run_rc_command "$1" Index: pkgsrc/net/frr/patches/patch-pkgsrc_zebra.sh.in diff -u /dev/null pkgsrc/net/frr/patches/patch-pkgsrc_zebra.sh.in:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/patches/patch-pkgsrc_zebra.sh.in Thu Dec 10 16:43:24 2020 @@ -0,0 +1,16 @@ +$NetBSD: patch-pkgsrc_zebra.sh.in,v 1.1 2020/12/10 16:43:24 kardel Exp $ + + don't hard-code quagga.quagga in chown command in + pkgsrc/zebra.sh.in. + +--- pkgsrc/zebra.sh.in.orig 2020-06-30 11:08:57.000000000 +0000 ++++ pkgsrc/zebra.sh.in +@@ -28,7 +28,7 @@ pidfile="${socket_dir}/${name}.pid" + zebra_precmd() + { + mkdir -p "${socket_dir}" +- chown quagga.quagga "${socket_dir}" ++ chown @FRR_USER@.@FRR_VTY_GROUP@ "${socket_dir}" + chmod 750 "${socket_dir}" + rc_flags="$( + set -- $rc_flags Index: pkgsrc/net/frr/patches/patch-zebra_ioctl.c diff -u /dev/null pkgsrc/net/frr/patches/patch-zebra_ioctl.c:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/patches/patch-zebra_ioctl.c Thu Dec 10 16:43:24 2020 @@ -0,0 +1,116 @@ +$NetBSD: patch-zebra_ioctl.c,v 1.1 2020/12/10 16:43:24 kardel Exp $ + + In NetBSD the correct way to determine link status is + ifi_link_state in if_data. This also avoids many + error messages on interfaces that do not support + SIOCGIFMEDIA. + +--- zebra/ioctl.c.orig 2020-06-30 11:08:57.000000000 +0000 ++++ zebra/ioctl.c +@@ -421,9 +421,6 @@ void if_get_flags(struct interface *ifp) + { + int ret; + struct ifreq ifreq; +-#ifdef HAVE_BSD_LINK_DETECT +- struct ifmediareq ifmr; +-#endif /* HAVE_BSD_LINK_DETECT */ + + ifreq_set_name(&ifreq, ifp); + +@@ -434,34 +431,80 @@ void if_get_flags(struct interface *ifp) + safe_strerror(errno)); + return; + } +-#ifdef HAVE_BSD_LINK_DETECT /* Detect BSD link-state at start-up */ ++ ++ if (!CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)) ++ goto out; + + /* Per-default, IFF_RUNNING is held high, unless link-detect says + * otherwise - we abuse IFF_RUNNING inside zebra as a link-state flag, + * following practice on Linux and Solaris kernels + */ +- SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); + +- if (CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)) { +- (void)memset(&ifmr, 0, sizeof(ifmr)); +- strlcpy(ifmr.ifm_name, ifp->name, sizeof(ifmr.ifm_name)); +- +- /* Seems not all interfaces implement this ioctl */ +- if (if_ioctl(SIOCGIFMEDIA, (caddr_t)&ifmr) == -1 && +- errno != EINVAL) ++#ifdef SIOCGIFDATA ++ /* ++ * BSD gets link state from ifi_link_link in struct if_data. ++ * All BSD's have this in getifaddrs(3) ifa_data for AF_LINK addresses. ++ * We can also access it via SIOCGIFDATA. ++ */ ++ ++#ifdef __NetBSD__ ++ struct ifdatareq ifdr = { .ifdr_data.ifi_link_state = 0 }; ++ struct if_data *ifdata = &ifdr.ifdr_data; ++ ++ strlcpy(ifdr.ifdr_name, ifp->name, sizeof(ifdr.ifdr_name)); ++ ret = vrf_if_ioctl(SIOCGIFDATA, (caddr_t)&ifdr, ifp->vrf_id); ++#else ++ struct if_data ifd = { .ifi_link_state = 0 }; ++ struct if_data *ifdata = &ifd; ++ ++ ifreq.ifr_data = (caddr_t)ifdata; ++ ret = vrf_if_ioctl(SIOCGIFDATA, (caddr_t)&ifreq, ifp->vrf_id); ++#endif ++ ++ if (ret == -1) ++ /* Very unlikely. Did the interface disappear? */ ++ flog_err_sys(EC_LIB_SYSTEM_CALL, ++ "if_ioctl(SIOCGIFDATA) failed: %s", ++ safe_strerror(errno)); ++ else { ++ if (ifdata->ifi_link_state >= LINK_STATE_UP) ++ SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); ++ else if (ifdata->ifi_link_state == LINK_STATE_UNKNOWN) ++ /* BSD traditionally treats UNKNOWN as UP */ ++ SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); ++ else ++ UNSET_FLAG(ifreq.ifr_flags, IFF_RUNNING); ++ } ++ ++#elif defined(HAVE_BSD_LINK_DETECT) ++ /* ++ * This is only needed for FreeBSD older than FreeBSD-13. ++ * Valid and active media generally means the link state is ++ * up, but this is not always the case. ++ * For example, some BSD's with a net80211 interface in MONITOR ++ * mode will treat the media as valid and active but the ++ * link state is down - because we cannot send anything. ++ * Also, virtual interfaces such as PPP, VLAN, etc generally ++ * don't support media at all, so the ioctl will just fail. ++ */ ++ struct ifmediareq ifmr = { .ifm_status = 0 }; ++ ++ strlcpy(ifmr.ifm_name, ifp->name, sizeof(ifmr.ifm_name)); ++ ++ if (if_ioctl(SIOCGIFMEDIA, (caddr_t)&ifmr) == -1) { ++ if (errno != EINVAL) + flog_err_sys(EC_LIB_SYSTEM_CALL, + "if_ioctl(SIOCGIFMEDIA) failed: %s", + safe_strerror(errno)); +- else if (ifmr.ifm_status & IFM_AVALID) /* Link state is valid */ +- { +- if (ifmr.ifm_status & IFM_ACTIVE) +- SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); +- else +- UNSET_FLAG(ifreq.ifr_flags, IFF_RUNNING); +- } ++ } else if (ifmr.ifm_status & IFM_AVALID) { /* media state is valid */ ++ if (ifmr.ifm_status & IFM_ACTIVE) /* media is active */ ++ SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); ++ else ++ UNSET_FLAG(ifreq.ifr_flags, IFF_RUNNING); + } + #endif /* HAVE_BSD_LINK_DETECT */ + ++out: + if_flags_update(ifp, (ifreq.ifr_flags & 0x0000ffff)); + } + Index: pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c diff -u /dev/null pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c:1.1 --- /dev/null Thu Dec 10 16:43:25 2020 +++ pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c Thu Dec 10 16:43:24 2020 @@ -0,0 +1,30 @@ +$NetBSD: patch-zebra_kernel__socket.c,v 1.1 2020/12/10 16:43:24 kardel Exp $ + + Pass IFP interface index if known (normal case) to make + interface specific routes work such as in + + ipv6 route ::/0 carp0 100 + ivv6 route ::/0 200 + +--- zebra/kernel_socket.c.orig 2020-06-30 11:08:57.000000000 +0000 ++++ zebra/kernel_socket.c +@@ -1277,6 +1277,19 @@ int rtm_write(int message, union sockuni + #ifdef __OpenBSD__ + SOCKADDRSET(mpls, RTA_SRC); + #endif ++#ifdef __NetBSD__ ++ if (index > 0) { ++ struct sockaddr_dl sdl; ++ ++ memset(&sdl, 0, sizeof(sdl)); ++ sdl.sdl_len = sizeof(sdl); ++ sdl.sdl_family = AF_LINK; ++ sdl.sdl_index = index; ++ ++ msg.rtm.rtm_addrs |= RTA_IFP; ++ SOCKADDRSET(&sdl, RTA_IFP); ++ } ++#endif + + msg.rtm.rtm_msglen = pnt - (caddr_t)&msg; + --_----------=_1607618605203940--