ports/159330: [maintainer update] net/bird: update to 1.3.2

Alexander V. Chernikov melifaro at ipfw.ru
Sun Jul 31 13:50:02 UTC 2011


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



More information about the freebsd-ports-bugs mailing list