summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorgdt <gdt@pkgsrc.org>2014-12-02 20:22:14 +0000
committergdt <gdt@pkgsrc.org>2014-12-02 20:22:14 +0000
commite53cc1abbe345a61490525b4831c3c8a3d5b81bc (patch)
tree68c9652bff8b939a9365b69161fdbb8c85d75615 /net
parent6cc6cd24396cdb43096cd1a2824830e9307c1d85 (diff)
downloadpkgsrc-e53cc1abbe345a61490525b4831c3c8a3d5b81bc.tar.gz
Update to 0.99.23.1.
Remove a patch which has been incorporated upstream, and one which has been superceded. Add a patch to use the system's RT_ROUNDUP macro if defined, which fixes IPv6 routing on NetBSD 6 (where rtsock alignment has changed). Upstream NEWS: * Changes in Quagga 0.99.23 Known issues: - [bgpd] setting an extcommunity in a route map on a route that already has an extcommunity attribute will cause bgpd to crash. This issue will be fixed in a followup minor release. User-visible changes: - [lib] Performance enhancements on hashes and timers. - [bgpd] New feature: iBGP TTL security. - [bgpd] New feature: relaxed bestpath criteria for multipath and improved display of multipath routes in "show ip bgp". Scripts parsing this output may need to be updated. - [bgpd] Multiprotocol peerings over IPv6 now try to find a more appropriate IPv4 nexthop by looking at the interface. - [ospf6d] A large amount of changes has been merged for ospf6d. Careful evaluation prior to deployment is recommended. - [zebra] Recursive route support has been overhauled. Scripts parsing "show ip route" output may need adaptation. - [zebra] IPv6 address management has been improved regarding tentative addresses. This is visible in that a freshly configured address will not immediately be marked as usable. - [*] a lot of bugs have been fixed, please refer to the git log
Diffstat (limited to 'net')
-rw-r--r--net/quagga/Makefile5
-rw-r--r--net/quagga/PLIST3
-rw-r--r--net/quagga/distinfo11
-rw-r--r--net/quagga/patches/patch-lib_queue.h15
-rw-r--r--net/quagga/patches/patch-vtysh_vtysh.c18
-rw-r--r--net/quagga/patches/patch-zebra-kernel_socket.c86
6 files changed, 95 insertions, 43 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 3ce636be464..090c21cfd8a 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.47 2014/05/29 23:37:11 wiz Exp $
+# $NetBSD: Makefile,v 1.48 2014/12/02 20:22:14 gdt Exp $
#
-DISTNAME= quagga-0.99.22.3
-PKGREVISION= 1
+DISTNAME= quagga-0.99.23.1
CATEGORIES= net
MASTER_SITES= http://download.savannah.gnu.org/releases/quagga/
diff --git a/net/quagga/PLIST b/net/quagga/PLIST
index 7416cef8875..383e4cb32c3 100644
--- a/net/quagga/PLIST
+++ b/net/quagga/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.14 2014/03/11 14:05:10 jperkin Exp $
+@comment $NetBSD: PLIST,v 1.15 2014/12/02 20:22:14 gdt Exp $
include/quagga/buffer.h
include/quagga/checksum.h
include/quagga/command.h
@@ -10,6 +10,7 @@ include/quagga/if.h
include/quagga/if_rmap.h
include/quagga/jhash.h
include/quagga/keychain.h
+include/quagga/libospf.h
include/quagga/linklist.h
include/quagga/log.h
include/quagga/md5.h
diff --git a/net/quagga/distinfo b/net/quagga/distinfo
index f293ffe81ad..ff94fa86ce9 100644
--- a/net/quagga/distinfo
+++ b/net/quagga/distinfo
@@ -1,8 +1,7 @@
-$NetBSD: distinfo,v 1.19 2014/03/22 10:48:20 wiedi Exp $
+$NetBSD: distinfo,v 1.20 2014/12/02 20:22:14 gdt Exp $
-SHA1 (quagga-0.99.22.3.tar.gz) = 80e2d32bb0a95d2e3e9c90f16618eee863202f85
-RMD160 (quagga-0.99.22.3.tar.gz) = 41fa875d1722af286621aa90b14b27a56e8d6c9d
-Size (quagga-0.99.22.3.tar.gz) = 2363963 bytes
+SHA1 (quagga-0.99.23.1.tar.gz) = 0501f527383cfa548a800de9816cf1423f6b2336
+RMD160 (quagga-0.99.23.1.tar.gz) = 6102fdf118cf31de8155dfcaffee91207ff56164
+Size (quagga-0.99.23.1.tar.gz) = 2526612 bytes
SHA1 (patch-configure) = a58a698ba9b8a174c3623a9cd4b52518e410c0df
-SHA1 (patch-lib_queue.h) = 63ce2d88fb29654d937384898b0d84480b3b2581
-SHA1 (patch-vtysh_vtysh.c) = 55b398c2b78d68b151450d071256031955ca7ebc
+SHA1 (patch-zebra-kernel_socket.c) = d9a2f3a301d4ac8392c246a2661859657a6dca5e
diff --git a/net/quagga/patches/patch-lib_queue.h b/net/quagga/patches/patch-lib_queue.h
deleted file mode 100644
index ed92ea77b08..00000000000
--- a/net/quagga/patches/patch-lib_queue.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-lib_queue.h,v 1.1 2013/10/21 08:57:33 fhajny Exp $
-
-Fix build on SunOS.
---- lib/queue.h.orig 2013-07-30 14:47:01.000000000 +0000
-+++ lib/queue.h
-@@ -33,7 +33,9 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
-+#if !defined(__sun)
- #include <sys/cdefs.h>
-+#endif
-
- /*
- * This file defines four types of data structures: singly-linked lists,
diff --git a/net/quagga/patches/patch-vtysh_vtysh.c b/net/quagga/patches/patch-vtysh_vtysh.c
deleted file mode 100644
index dfb5b3c4c0c..00000000000
--- a/net/quagga/patches/patch-vtysh_vtysh.c
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-vtysh_vtysh.c,v 1.1 2014/03/22 10:48:20 wiedi Exp $
-Fix build failure with readline-6.3
-patch by Matthias Klose for Ubuntu
-
---- vtysh/vtysh.c.orig 2013-07-30 14:47:01.000000000 +0000
-+++ vtysh/vtysh.c
-@@ -2211,9 +2211,9 @@ void
- vtysh_readline_init (void)
- {
- /* readline related settings. */
-- rl_bind_key ('?', (Function *) vtysh_rl_describe);
-+ rl_bind_key ('?', (rl_command_func_t *) vtysh_rl_describe);
- rl_completion_entry_function = vtysh_completion_entry_function;
-- rl_attempted_completion_function = (CPPFunction *)new_completion;
-+ rl_attempted_completion_function = (rl_completion_func_t *)new_completion;
- /* do not append space after completion. It will be appended
- * in new_completion() function explicitly. */
- rl_completion_append_character = '\0';
diff --git a/net/quagga/patches/patch-zebra-kernel_socket.c b/net/quagga/patches/patch-zebra-kernel_socket.c
new file mode 100644
index 00000000000..bfcaecd7e75
--- /dev/null
+++ b/net/quagga/patches/patch-zebra-kernel_socket.c
@@ -0,0 +1,86 @@
+From 2fa9994ed80f1b5620cbebf040e85127992ec20d Mon Sep 17 00:00:00 2001
+From: Greg Troxel <gdt@ir.bbn.com>
+Date: Tue, 2 Dec 2014 14:51:49 -0500
+Subject: [PATCH] zebra/kernel_socket.c: Use platform alignment.
+
+Use the platform-provided RT_ROUNDUP macro to align sockaddrs on the
+routing socket, rather than using hard-coded assumptions about
+alignment. Emit a warning if the OS doesn't define alignment macros.
+
+Resolves failure of ripngd on NetBSD 6 i386, which changed alignment
+to uint64_t from long.
+---
+ zebra/kernel_socket.c | 51 +++++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
+index 3dbeb98..c2ede09 100644
+--- zebra/kernel_socket.c
++++ zebra/kernel_socket.c
+@@ -42,22 +42,53 @@ extern struct zebra_privs_t zserv_privs;
+ extern struct zebra_t zebrad;
+
+ /*
+- * Given a sockaddr length, round it up to include pad bytes following
+- * it. Assumes the kernel pads to sizeof(long).
++ * Historically, the BSD routing socket has aligned data following a
++ * struct sockaddr to sizeof(long), which was 4 bytes on some
++ * platforms, and 8 bytes on others. bytes. NetBSD 6 changed the
++ * routing socket to align to sizeof(uint64_t), which is 8 bytes. OS
++ * X appears to align to sizeof(int), which is 4 bytes.
+ *
+- * XXX: why is ROUNDUP(0) sizeof(long)? 0 is an illegal sockaddr
+- * length anyway (< sizeof (struct sockaddr)), so this shouldn't
+- * matter.
+- * On OS X, both 32, 64bit syatems align on 4 byte boundary
++ * Alignment of zero-sized sockaddrs is nonsensical, but historically
++ * BSD defines RT_ROUNDUP(0) to be the alignment interval (rather than
++ * 0). We follow this practice without questioning it, but it is a
++ * bug if quagga calls ROUNDUP with 0.
+ */
++
++/*
++ * Because of these varying conventions, the only sane approach is for
++ * the <net/route.h> header to define a ROUNDUP macro. We use the
++ * provided ROUNDUP macro when possible, and provide a workaround with
++ * a warning if not.
++ */
++#if defined(RT_ROUNDUP)
++#define ROUNDUP(a) RT_ROUNDUP(a)
++#endif /* defined(RT_ROUNDUP) */
++
++/*
++ * If ROUNDUP is not defined in terms of platform-provided defines,
++ * attempt to cope with heuristics.
++ */
++#if !defined(ROUNDUP)
++
++/*
++ * It's a bug for a platform not to define rounding/alignment for
++ * sockaddrs on the routing socket. This warning really is
++ * intentional, to provoke filing bug reports with operating systems
++ * that don't define RT_ROUNDUP or equivalent.
++ */
++#warning "net/route.h does not define RT_ROUNDUP; makeing unwarranted assumptions!"
++
+ #ifdef __APPLE__
+-#define ROUNDUP(a) \
+- ((a) > 0 ? (1 + (((a) - 1) | (sizeof(int) - 1))) : sizeof(int))
++#define ROUNDUP_TYPE long
+ #else
+-#define ROUNDUP(a) \
+- ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
++#define ROUNDUP_TYPE int
+ #endif
+
++#define ROUNDUP(a) \
++ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(ROUNDUP_TYPE) - 1))) : sizeof(ROUNDUP_TYPE))
++
++#endif /* defined(ROUNDUP) */
++
+ /*
+ * Given a pointer (sockaddr or void *), return the number of bytes
+ * taken up by the sockaddr and any padding needed for alignment.
+--
+2.1.0
+