From 53d2c7bbed6149e74f16966c7625af552938a5fa Mon Sep 17 00:00:00 2001 From: Kurt Jaeger Date: Thu, 22 Oct 2020 05:23:36 +0000 Subject: [PATCH] MFH: r552864 net/openbgpd6: update 6.6.0 -> 6.8.0, fix -fno-common 6.8.0: - In bgpctl(8), the "reload" command now takes a 'reason' argument to use as Administrative Shutdown Communication to its neighbors. - Added bgpctl(8) support for VPNv6 in the family option of the "show rib" command. - Added bgpctl(8) support for JSON formatted output in various "show" commands. - Support to build OpenBGPD on Alpine Linux added 6.7.0: - Add initial support for JSON output in bgpctl(8). - Allow setting both IPv4 and IPv6 local-addresses at the same time in bgpd.conf group blocks. Introduced 'no local-address' to reset a previously set local address. - Properly aggregate duplicate bgpd(8) roa table prefix/source-as combinations into a single entry with the longest maxlen length. - Implemented bgpd.conf(5) max-prefix NUM out to limit the number of announced prefixes, avoiding leaks of full tables to upstreams and peers. - Extended bgpctl(8) 'show neighbor' to include the received and set prefix count, as well as the max-prefix out limit if set. - Improved reporting of notifications to include the suberror cause. - Also report the last received error cause in bgpctl(8) show neighbor output. - Fix softreconfig out handling to also work for neighbors using 'export default-route'. - Mark stale prefixes in the Adj-RIB-Out so that graceful reload operates properly. - Made it possible to build OpenBGPD-portable with bison. There is no longer the need to use byacc on Linux distributions. - Support for --runstatedir to specify the location of the bgpctl.sock. - Cleaned up configure script for better protability. See also: https://github.com/openbgpd-portable/openbgpd-portable/issues/8 PR: 250274 Approved by: ports-secteam (fluffy) --- net/openbgpd6/Makefile | 3 +-- net/openbgpd6/distinfo | 6 ++--- net/openbgpd6/files/patch-Makefile.am | 16 +++++++------ .../files/patch-src__bgpctl__output_json.c | 11 +++++++++ net/openbgpd6/files/patch-src_bgpctl_output.c | 11 +++++++++ net/openbgpd6/files/patch-src_bgpd_bgpd.c | 11 +++++++++ net/openbgpd6/files/patch-src_bgpd_bgpd.h | 23 +++++++++++++++++++ net/openbgpd6/files/patch-src_bgpd_rde.c | 15 ++++++++++++ net/openbgpd6/files/patch-src_bgpd_session.c | 18 +++++++++++++++ net/openbgpd6/files/patch-src_bgpd_session.h | 20 ++++++++++++++++ 10 files changed, 122 insertions(+), 12 deletions(-) create mode 100644 net/openbgpd6/files/patch-src__bgpctl__output_json.c create mode 100644 net/openbgpd6/files/patch-src_bgpctl_output.c create mode 100644 net/openbgpd6/files/patch-src_bgpd_bgpd.c create mode 100644 net/openbgpd6/files/patch-src_bgpd_bgpd.h create mode 100644 net/openbgpd6/files/patch-src_bgpd_rde.c create mode 100644 net/openbgpd6/files/patch-src_bgpd_session.c create mode 100644 net/openbgpd6/files/patch-src_bgpd_session.h diff --git a/net/openbgpd6/Makefile b/net/openbgpd6/Makefile index ba44ca4d9e87..cc76e6b3dd20 100644 --- a/net/openbgpd6/Makefile +++ b/net/openbgpd6/Makefile @@ -1,8 +1,7 @@ # $FreeBSD$ PORTNAME= openbgpd -PORTVERSION= 6.6p0 -PORTREVISION= 1 +PORTVERSION= 6.8p0 CATEGORIES= net MASTER_SITES= OPENBSD/OpenBGPD PKGNAMESUFFIX= 6 diff --git a/net/openbgpd6/distinfo b/net/openbgpd6/distinfo index 7b64893d8e8f..55f85e71f623 100644 --- a/net/openbgpd6/distinfo +++ b/net/openbgpd6/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1575231489 -SHA256 (openbgpd-6.6p0.tar.gz) = 83ad5ee8177d324a2a5cc2ce014835007deff8c91550c009c12b7aa16cb2e046 -SIZE (openbgpd-6.6p0.tar.gz) = 676732 +TIMESTAMP = 1603267757 +SHA256 (openbgpd-6.8p0.tar.gz) = 61487aed98071d9e975e9c38d1bfa0731dd7e55623f655372c318e665d928ff8 +SIZE (openbgpd-6.8p0.tar.gz) = 701164 diff --git a/net/openbgpd6/files/patch-Makefile.am b/net/openbgpd6/files/patch-Makefile.am index da85a8ad6103..78ffb52c79fc 100644 --- a/net/openbgpd6/files/patch-Makefile.am +++ b/net/openbgpd6/files/patch-Makefile.am @@ -1,19 +1,21 @@ ---- Makefile.am.orig 2019-05-01 11:22:14 UTC +--- Makefile.am.orig 2020-05-05 08:36:21 UTC +++ Makefile.am -@@ -19,13 +19,14 @@ - EXTRA_DIST = README.md VERSION bgpd.conf +@@ -19,13 +19,16 @@ ACLOCAL_AMFLAGS = -I m4 + EXTRA_DIST = README.md LICENSE VERSION bgpd.conf install-data-hook: -- @if [ ! -d "$(DESTDIR)$(localstatedir)/run" ]; then \ -+ if [ ! -d "$(DESTDIR)$(localstatedir)/run" ]; then \ - $(INSTALL) -m 755 -d "$(DESTDIR)$(localstatedir)/run"; \ +- @if [ ! -d "$(DESTDIR)$(runstatedir)" ]; then \ ++ if [ ! -d "$(DESTDIR)$(runstatedir)" ]; then \ + $(INSTALL) -m 755 -d "$(DESTDIR)$(runstatedir)"; \ fi - @if [ ! -d "$(DESTDIR)$(sysconfdir)" ]; then \ + if [ ! -d "$(DESTDIR)$(sysconfdir)" ]; then \ $(INSTALL) -m 755 -d "$(DESTDIR)$(sysconfdir)"; \ fi - @if [ ! -f "$(DESTDIR)$(sysconfdir)/bgpd.conf" ]; then \ -+ $(INSTALL) -m 644 "$(srcdir)/bgpd.conf" "$(DESTDIR)$(sysconfdir)/bgpd.conf.sample"; \ ++ if [ ! -f "$(DESTDIR)$(sysconfdir)/bgpd.conf.sample" ]; then \ ++ $(INSTALL) -m 644 "$(srcdir)/bgpd.conf" "$(DESTDIR)$(sysconfdir)/bgpd.conf.sample"; \ ++ fi + if [ ! -f "$(DESTDIR)$(sysconfdir)/bgpd.conf" ]; then \ $(INSTALL) -m 644 "$(srcdir)/bgpd.conf" "$(DESTDIR)$(sysconfdir)/bgpd.conf"; \ else \ diff --git a/net/openbgpd6/files/patch-src__bgpctl__output_json.c b/net/openbgpd6/files/patch-src__bgpctl__output_json.c new file mode 100644 index 000000000000..734515c07811 --- /dev/null +++ b/net/openbgpd6/files/patch-src__bgpctl__output_json.c @@ -0,0 +1,11 @@ +--- src/bgpctl/output_json.c.orig 2020-05-18 19:17:41 UTC ++++ src/bgpctl/output_json.c +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + #include "bgpd.h" + #include "session.h" + #include "rde.h" diff --git a/net/openbgpd6/files/patch-src_bgpctl_output.c b/net/openbgpd6/files/patch-src_bgpctl_output.c new file mode 100644 index 000000000000..a1d2b38db88f --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpctl_output.c @@ -0,0 +1,11 @@ +--- src/bgpctl/output.c.orig 2020-05-18 19:17:41 UTC ++++ src/bgpctl/output.c +@@ -25,6 +25,8 @@ + #include + #include + ++#include ++ + #include "bgpd.h" + #include "session.h" + #include "rde.h" diff --git a/net/openbgpd6/files/patch-src_bgpd_bgpd.c b/net/openbgpd6/files/patch-src_bgpd_bgpd.c new file mode 100644 index 000000000000..b4a072e4cfc4 --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpd_bgpd.c @@ -0,0 +1,11 @@ +--- src/bgpd/bgpd.c.orig 2020-05-18 19:17:41 UTC ++++ src/bgpd/bgpd.c +@@ -61,6 +61,8 @@ struct rib_names ribnames = SIMPLEQ_HEAD_INITIALIZER( + char *cname; + char *rcname; + ++enum bgpd_process bgpd_process; ++ + void + sighdlr(int sig) + { diff --git a/net/openbgpd6/files/patch-src_bgpd_bgpd.h b/net/openbgpd6/files/patch-src_bgpd_bgpd.h new file mode 100644 index 000000000000..14df54585928 --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpd_bgpd.h @@ -0,0 +1,23 @@ +--- src/bgpd/bgpd.h.orig 2020-05-19 09:24:33 UTC ++++ src/bgpd/bgpd.h +@@ -130,7 +130,8 @@ enum bgpd_process { + PROC_MAIN, + PROC_SE, + PROC_RDE +-} bgpd_process; ++}; ++extern enum bgpd_process bgpd_process; + + enum reconf_action { + RECONF_NONE, +@@ -532,6 +533,10 @@ enum imsg_type { + IMSG_XON, + IMSG_XOFF + }; ++ ++extern struct imsgbuf *ibuf_se; ++extern struct imsgbuf *ibuf_rde; ++extern struct imsgbuf *ibuf_main; + + struct demote_msg { + char demote_group[IFNAMSIZ]; diff --git a/net/openbgpd6/files/patch-src_bgpd_rde.c b/net/openbgpd6/files/patch-src_bgpd_rde.c new file mode 100644 index 000000000000..e8204a8b1661 --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpd_rde.c @@ -0,0 +1,15 @@ +--- src/bgpd/rde.c.orig 2020-05-04 14:45:09 UTC ++++ src/bgpd/rde.c +@@ -99,11 +99,9 @@ void rde_shutdown(void); + int ovs_match(struct prefix *, u_int32_t); + + volatile sig_atomic_t rde_quit = 0; +-struct bgpd_config *conf, *nconf; ++static struct bgpd_config *conf, *nconf; + struct filter_head *out_rules, *out_rules_tmp; +-struct imsgbuf *ibuf_se; + struct imsgbuf *ibuf_se_ctl; +-struct imsgbuf *ibuf_main; + struct rde_memstats rdemem; + int softreconfig; + diff --git a/net/openbgpd6/files/patch-src_bgpd_session.c b/net/openbgpd6/files/patch-src_bgpd_session.c new file mode 100644 index 000000000000..fbb2ecf5b0c4 --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpd_session.c @@ -0,0 +1,18 @@ +--- src/bgpd/session.c.orig 2020-05-19 09:24:33 UTC ++++ src/bgpd/session.c +@@ -100,13 +100,13 @@ void session_template_clone(struct peer *, struct so + u_int32_t, u_int32_t); + int session_match_mask(struct peer *, struct bgpd_addr *); + +-struct bgpd_config *conf, *nconf; ++static struct bgpd_config *conf, *nconf; ++struct ctl_conns ctl_conns; + struct bgpd_sysdep sysdep; + volatile sig_atomic_t session_quit; + int pending_reconf; + int csock = -1, rcsock = -1; + u_int peer_cnt; +-struct imsgbuf *ibuf_rde; + struct imsgbuf *ibuf_rde_ctl; + struct imsgbuf *ibuf_main; + diff --git a/net/openbgpd6/files/patch-src_bgpd_session.h b/net/openbgpd6/files/patch-src_bgpd_session.h new file mode 100644 index 000000000000..9fbb480caf01 --- /dev/null +++ b/net/openbgpd6/files/patch-src_bgpd_session.h @@ -0,0 +1,20 @@ +--- src/bgpd/session.h.orig 2020-05-18 19:17:41 UTC ++++ src/bgpd/session.h +@@ -18,6 +18,7 @@ + + #include + #include ++#include + #include + + #define MAX_BACKLOG 5 +@@ -146,7 +147,8 @@ struct ctl_conn { + int terminate; + }; + +-TAILQ_HEAD(ctl_conns, ctl_conn) ctl_conns; ++TAILQ_HEAD(ctl_conns, ctl_conn); ++extern struct ctl_conns ctl_conns; + + struct peer_stats { + unsigned long long msg_rcvd_open;