Date: Sun, 31 Jul 2011 13:40:40 GMT From: "Alexander V. Chernikov" <melifaro@ipfw.ru> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/159330: [maintainer update] net/bird: update to 1.3.2 Message-ID: <201107311340.p6VDee1o071799@red.freebsd.org> Resent-Message-ID: <201107311350.p6VDo2wq098160@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 159330 >Category: ports >Synopsis: [maintainer update] net/bird: update to 1.3.2 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun Jul 31 13:50:01 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Alexander V. Chernikov >Release: 8.2-STABLE >Organization: >Environment: FreeBSD ws.su29.net 8.2-STABLE FreeBSD 8.2-STABLE #0: Sun Jun 5 23:38:27 MSD 2011 root@ws.su29.net:/var/xtmp/usj/obj/usr/src/sys/PTICHKO amd64 >Description: * Update to 1.3.2 * Update fibs patch (stop bird dumping core on shutdown) * Update include patch (config errors are displayed correctly after SIGHUP or configure) * Remove bgp patch (included in tree now) >How-To-Repeat: >Fix: Patch attached with submission follows: diff -urN net/bird.orig/Makefile net/bird/Makefile --- net/bird.orig/Makefile 2011-06-26 08:59:02.000000000 +0400 +++ net/bird/Makefile 2011-07-31 17:04:15.000000000 +0400 @@ -6,8 +6,7 @@ # PORTNAME= bird -PORTVERSION= 1.3.1 -PORTREVISION= 1 +PORTVERSION= 1.3.2 CATEGORIES= net MASTER_SITES= ftp://bird.network.cz/pub/bird/ @@ -46,6 +45,8 @@ @${ECHO_MSG} @${ECHO_MSG} " WARNING: Please take a look on kern/134931" @${ECHO_MSG} " WARNING: before using multiple fibs in production!" + @${ECHO_MSG} " 8.2-STABLE kernel patch available here:" + @${ECHO_MSG} " http://static.ipfw.ru/patches/rtsock_82S-20110725.diff" @${ECHO_MSG} @${ECHO_MSG} ===================================================================== @${ECHO_MSG} diff -urN net/bird.orig/distinfo net/bird/distinfo --- net/bird.orig/distinfo 2011-06-02 23:52:40.000000000 +0400 +++ net/bird/distinfo 2011-07-31 16:30:28.000000000 +0400 @@ -1,2 +1,2 @@ -SHA256 (bird-1.3.1.tar.gz) = 848be209aba6a1a85ae0ed6192710f8bcc2f1257068191fe2959398cdec01afb -SIZE (bird-1.3.1.tar.gz) = 826422 +SHA256 (bird-1.3.2.tar.gz) = dbf8794ef3560382f10b8926e2d158da9d34670703090bfe378c08892743f54b +SIZE (bird-1.3.2.tar.gz) = 744121 diff -urN net/bird.orig/files/extra-config_includes.diff net/bird/files/extra-config_includes.diff --- net/bird.orig/files/extra-config_includes.diff 2011-06-26 08:59:02.000000000 +0400 +++ net/bird/files/extra-config_includes.diff 2011-07-31 17:22:57.000000000 +0400 @@ -1,8 +1,8 @@ Index: conf/conf.c =================================================================== ---- conf/conf.c (revision 4873) -+++ conf/conf.c (revision 4875) -@@ -108,7 +108,7 @@ +--- conf/conf.c (revision 4962) ++++ conf/conf.c (working copy) +@@ -108,7 +108,7 @@ config_parse(struct config *c) cfg_mem = c->mem; if (setjmp(conf_jmpbuf)) return 0; @@ -11,7 +11,7 @@ sysdep_preconfig(c); protos_preconfig(c); rt_preconfig(c); -@@ -138,7 +138,7 @@ +@@ -138,7 +138,7 @@ cli_parse(struct config *c) cfg_mem = c->mem; if (setjmp(conf_jmpbuf)) return 0; @@ -20,7 +20,7 @@ cf_parse(); return 1; } -@@ -356,6 +356,7 @@ +@@ -356,6 +356,7 @@ cf_error(char *msg, ...) strcpy(buf, "<bug: error message too long>"); new_config->err_msg = cfg_strdup(buf); new_config->err_lino = conf_lino; @@ -30,8 +30,8 @@ Index: conf/cf-lex.l =================================================================== ---- conf/cf-lex.l (revision 4873) -+++ conf/cf-lex.l (revision 4875) +--- conf/cf-lex.l (revision 4962) ++++ conf/cf-lex.l (working copy) @@ -30,6 +30,9 @@ #include <errno.h> #include <stdlib.h> @@ -42,7 +42,7 @@ #define PARSER 1 -@@ -64,18 +67,36 @@ +@@ -64,18 +67,36 @@ struct sym_scope { static struct sym_scope *conf_this_scope; int conf_lino; @@ -82,7 +82,7 @@ %} %option noyywrap -@@ -90,9 +111,12 @@ +@@ -90,9 +111,12 @@ DIGIT [0-9] XIGIT [0-9a-fA-F] ALNUM [a-zA-Z_0-9] WHITE [ \t] @@ -95,7 +95,7 @@ {DIGIT}+\.{DIGIT}+\.{DIGIT}+\.{DIGIT}+ { #ifdef IPV6 if (ipv4_pton_u32(yytext, &cf_lval.i32)) -@@ -184,7 +208,7 @@ +@@ -188,7 +212,7 @@ else: { ["][^"\n]*\n cf_error("Unterminated string"); @@ -104,7 +104,7 @@ {WHITE}+ -@@ -220,7 +244,67 @@ +@@ -224,7 +248,67 @@ else: { %% @@ -172,7 +172,7 @@ cf_hash(byte *c) { unsigned int h = 13; -@@ -363,11 +447,28 @@ +@@ -367,11 +451,28 @@ cf_lex_init_kh(void) * parsing of a new input. */ void @@ -204,9 +204,9 @@ BEGIN(CLI); Index: conf/conf.h =================================================================== ---- conf/conf.h (revision 4873) -+++ conf/conf.h (revision 4875) -@@ -38,7 +38,9 @@ +--- conf/conf.h (revision 4962) ++++ conf/conf.h (working copy) +@@ -38,7 +38,9 @@ struct config { int cli_debug; /* Tracing of CLI connections and commands */ char *err_msg; /* Parser error message */ int err_lino; /* Line containing error */ @@ -216,7 +216,7 @@ struct symbol **sym_hash; /* Lexer: symbol hash table */ struct symbol **sym_fallback; /* Lexer: fallback symbol hash table */ int obstacle_count; /* Number of items blocking freeing of this config */ -@@ -83,7 +85,7 @@ +@@ -83,7 +85,7 @@ char *cfg_strdup(char *c); /* Lexer */ @@ -225,7 +225,7 @@ struct symbol { struct symbol *next; -@@ -107,9 +109,10 @@ +@@ -107,9 +109,10 @@ struct symbol { #define SYM_VARIABLE 0x100 /* 0x100-0x1ff are variable types */ extern int conf_lino; @@ -239,8 +239,8 @@ struct symbol *cf_define_symbol(struct symbol *symbol, int type, void *def); Index: doc/bird.conf.example =================================================================== ---- doc/bird.conf.example (revision 4873) -+++ doc/bird.conf.example (revision 4875) +--- doc/bird.conf.example (revision 4962) ++++ doc/bird.conf.example (working copy) @@ -22,6 +22,9 @@ # else reject; #} @@ -253,9 +253,9 @@ Index: sysdep/unix/main.c =================================================================== ---- sysdep/unix/main.c (revision 4873) -+++ sysdep/unix/main.c (revision 4875) -@@ -122,13 +122,12 @@ +--- sysdep/unix/main.c (revision 4962) ++++ sysdep/unix/main.c (working copy) +@@ -149,13 +149,12 @@ read_iproute_table(char *file, char *prefix, int m #endif // PATH_IPROUTE_DIR @@ -271,7 +271,7 @@ if (l < 0) cf_error("Read error"); return l; -@@ -158,15 +157,15 @@ +@@ -185,15 +184,15 @@ static int unix_read_config(struct config **cp, char *name) { struct config *conf = config_alloc(name); @@ -291,7 +291,7 @@ return ret; } -@@ -178,7 +177,7 @@ +@@ -205,7 +204,7 @@ read_config(void) if (!unix_read_config(&conf, config_name)) { if (conf->err_msg) @@ -300,3 +300,21 @@ else die("Unable to open configuration file %s: %m", config_name); } +@@ -221,7 +220,7 @@ async_config(void) + if (!unix_read_config(&conf, config_name)) + { + if (conf->err_msg) +- log(L_ERR "%s, line %d: %s", config_name, conf->err_lino, conf->err_msg); ++ log(L_ERR "%s, line %d: %s", conf->err_fname, conf->err_lino, conf->err_msg); + else + log(L_ERR "Unable to open configuration file %s: %m", config_name); + config_free(conf); +@@ -244,7 +243,7 @@ cmd_reconfig(char *name, int type) + if (!unix_read_config(&conf, name)) + { + if (conf->err_msg) +- cli_msg(8002, "%s, line %d: %s", name, conf->err_lino, conf->err_msg); ++ cli_msg(8002, "%s, line %d: %s", conf->err_fname, conf->err_lino, conf->err_msg); + else + cli_msg(8002, "%s: %m", name); + config_free(conf); diff -urN net/bird.orig/files/fibs.diff net/bird/files/fibs.diff --- net/bird.orig/files/fibs.diff 2011-06-26 08:59:02.000000000 +0400 +++ net/bird/files/fibs.diff 2011-07-31 17:35:48.000000000 +0400 @@ -1,8 +1,8 @@ Index: sysdep/unix/krt.h =================================================================== ---- sysdep/unix/krt.h (revision 4869) -+++ sysdep/unix/krt.h (working copy) -@@ -67,6 +67,7 @@ +--- sysdep/unix/krt.h (revision 4963) ++++ sysdep/unix/krt.h (revision 4965) +@@ -67,6 +67,7 @@ struct krt_proto { #ifdef CONFIG_ALL_TABLES_AT_ONCE node instance_node; /* Node in krt instance list */ #endif @@ -12,9 +12,9 @@ Index: sysdep/bsd/krt-sock.h =================================================================== ---- sysdep/bsd/krt-sock.h (revision 4869) -+++ sysdep/bsd/krt-sock.h (working copy) -@@ -42,5 +42,8 @@ +--- sysdep/bsd/krt-sock.h (revision 4963) ++++ sysdep/bsd/krt-sock.h (revision 4965) +@@ -42,5 +42,8 @@ struct krt_if_status { static inline int krt_set_params_same(struct krt_set_params *o UNUSED, struct krt_set_params *n UNUSED) { return 1; } void krt_read_msg(struct proto *p, struct ks_msg *msg, int scan); @@ -26,7 +26,7 @@ Index: sysdep/bsd/fib.Y =================================================================== --- sysdep/bsd/fib.Y (revision 0) -+++ sysdep/bsd/fib.Y (revision 0) ++++ sysdep/bsd/fib.Y (revision 4965) @@ -0,0 +1,29 @@ +/* + * BIRD -- FreeBSD rtsock configuration @@ -59,17 +59,17 @@ +CF_END Index: sysdep/bsd/Modules =================================================================== ---- sysdep/bsd/Modules (revision 4869) -+++ sysdep/bsd/Modules (working copy) -@@ -4,3 +4,4 @@ +--- sysdep/bsd/Modules (revision 4963) ++++ sysdep/bsd/Modules (revision 4965) +@@ -4,3 +4,4 @@ sysio.h krt-set.h krt-sock.c krt-sock.h +fib.Y Index: sysdep/bsd/krt-scan.h =================================================================== ---- sysdep/bsd/krt-scan.h (revision 4869) -+++ sysdep/bsd/krt-scan.h (working copy) +--- sysdep/bsd/krt-scan.h (revision 4963) ++++ sysdep/bsd/krt-scan.h (revision 4965) @@ -10,6 +10,7 @@ #define _BIRD_KRT_SCAN_H_ @@ -80,8 +80,8 @@ struct krt_scan_status { Index: sysdep/bsd/krt-sock.c =================================================================== ---- sysdep/bsd/krt-sock.c (revision 4869) -+++ sysdep/bsd/krt-sock.c (working copy) +--- sysdep/bsd/krt-sock.c (revision 4963) ++++ sysdep/bsd/krt-sock.c (revision 4965) @@ -33,8 +33,6 @@ #include "lib/string.h" #include "lib/socket.h" @@ -91,7 +91,7 @@ int krt_capable(rte *e) { -@@ -53,6 +51,49 @@ +@@ -53,6 +51,49 @@ krt_capable(rte *e) ); } @@ -106,7 +106,7 @@ + return 1; + } + -+ //log(L_TRACE "Max fibs: %d", fibs); ++ log(L_TRACE "Max fibs: %d", fibs); + return fibs; +} + @@ -141,7 +141,7 @@ #define ROUNDUP(a) \ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -@@ -69,7 +110,7 @@ +@@ -69,7 +110,7 @@ krt_capable(rte *e) body += l;} static void @@ -150,7 +150,7 @@ { net *net = e->net; rta *a = e->attrs; -@@ -180,23 +221,23 @@ +@@ -180,23 +221,23 @@ static void l = body - (char *)&msg; msg.rtm.rtm_msglen = l; @@ -178,7 +178,7 @@ } } -@@ -218,25 +259,34 @@ +@@ -218,25 +259,34 @@ void krt_set_start(struct krt_proto *x, int first UNUSED) { sock *sk_rt; @@ -221,7 +221,7 @@ } #define SKIP(ARG...) do { DBG("KRT: Ignoring route - " ARG); return; } while(0) -@@ -624,6 +674,8 @@ +@@ -624,6 +674,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte size_t obl, needed; struct ks_msg *m; int retries = 3; @@ -230,7 +230,7 @@ mib[0] = CTL_NET; mib[1] = PF_ROUTE; -@@ -632,6 +684,17 @@ +@@ -632,6 +684,17 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte mib[4] = cmd; mib[5] = 0; @@ -248,7 +248,7 @@ try: if (sysctl(mib, 6 , NULL , &needed, NULL, 0) < 0) die("krt_sysctl_scan 1: %m"); -@@ -656,6 +719,7 @@ +@@ -656,6 +719,7 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte goto try; log(L_ERR "KRT: Route scan failed"); @@ -256,7 +256,7 @@ return; } die("krt_sysctl_scan 2: %m"); -@@ -666,6 +730,8 @@ +@@ -666,6 +730,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte m = (struct ks_msg *)next; krt_read_msg(p, m, 1); } @@ -265,10 +265,27 @@ } static byte *krt_buffer = NULL; +@@ -695,10 +761,13 @@ krt_set_construct(struct krt_config *c UNUSED) + } + + void +-krt_set_shutdown(struct krt_proto *x UNUSED, int last UNUSED) ++krt_set_shutdown(struct krt_proto *x UNUSED, int last) + { +- mb_free(krt_buffer); +- krt_buffer = NULL; ++ if (last) ++ { ++ mb_free(krt_buffer); ++ krt_buffer = NULL; ++ } + } + + void Index: sysdep/cf/bsd-v6.h =================================================================== ---- sysdep/cf/bsd-v6.h (revision 4869) -+++ sysdep/cf/bsd-v6.h (working copy) +--- sysdep/cf/bsd-v6.h (revision 4963) ++++ sysdep/cf/bsd-v6.h (revision 4965) @@ -10,7 +10,7 @@ #define CONFIG_AUTO_ROUTES @@ -280,8 +297,8 @@ #undef CONFIG_UNIX_SET Index: sysdep/cf/bsd.h =================================================================== ---- sysdep/cf/bsd.h (revision 4869) -+++ sysdep/cf/bsd.h (working copy) +--- sysdep/cf/bsd.h (revision 4963) ++++ sysdep/cf/bsd.h (revision 4965) @@ -8,7 +8,7 @@ #define CONFIG_AUTO_ROUTES @@ -291,3 +308,42 @@ #undef CONFIG_UNIX_IFACE #undef CONFIG_UNIX_SET +Index: sysdep/unix/krt.c +=================================================================== +--- sysdep/unix/krt.c (revision 4966) ++++ sysdep/unix/krt.c (revision 4967) +@@ -492,9 +492,9 @@ + + #ifdef CONFIG_ALL_TABLES_AT_ONCE + static timer *krt_scan_timer; +-static int krt_instance_count; + static list krt_instance_list; + #endif ++static int krt_instance_count; + + static void + krt_flush_routes(struct krt_proto *p) +@@ -830,6 +830,7 @@ + add_tail(&krt_instance_list, &p->instance_node); + #else + p->krt_pool = P->pool; ++ krt_instance_count++; + #endif + + #ifdef KRT_ALLOW_LEARN +@@ -859,11 +860,12 @@ + struct krt_proto *p = (struct krt_proto *) P; + int last = 1; + ++ if (--krt_instance_count) ++ last = 0; ++ + #ifdef CONFIG_ALL_TABLES_AT_ONCE + rem_node(&p->instance_node); +- if (--krt_instance_count) +- last = 0; +- else ++ if (!krt_instance_count) + #endif + tm_stop(p->scan_timer); + diff -urN net/bird.orig/files/patch-bgp-packet.c net/bird/files/patch-bgp-packet.c --- net/bird.orig/files/patch-bgp-packet.c 2011-06-26 08:59:02.000000000 +0400 +++ net/bird/files/patch-bgp-packet.c 1970-01-01 03:00:00.000000000 +0300 @@ -1,11 +0,0 @@ ---- proto/bgp/packets.c -+++ proto/bgp/packets.c -@@ -862,7 +862,7 @@ bgp_do_rx_update(struct bgp_conn *conn, - if (conn->state != BS_ESTABLISHED) /* fatal error during decoding */ - return; - -- if (a0 && bgp_set_next_hop(p, a0)) -+ if (a0 && nlri_len && bgp_set_next_hop(p, a0)) - a = rta_lookup(a0); - - while (nlri_len) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107311340.p6VDee1o071799>