pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net/frr



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.

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@localhost
+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 <ipv6 address> carp0 100
+               ivv6 route ::/0 <other ipv6 address> 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;
+ 



Home | Main Index | Thread Index | Old Index