diff options
author | gdt <gdt@pkgsrc.org> | 2014-12-02 20:22:14 +0000 |
---|---|---|
committer | gdt <gdt@pkgsrc.org> | 2014-12-02 20:22:14 +0000 |
commit | e53cc1abbe345a61490525b4831c3c8a3d5b81bc (patch) | |
tree | 68c9652bff8b939a9365b69161fdbb8c85d75615 /net | |
parent | 6cc6cd24396cdb43096cd1a2824830e9307c1d85 (diff) | |
download | pkgsrc-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/Makefile | 5 | ||||
-rw-r--r-- | net/quagga/PLIST | 3 | ||||
-rw-r--r-- | net/quagga/distinfo | 11 | ||||
-rw-r--r-- | net/quagga/patches/patch-lib_queue.h | 15 | ||||
-rw-r--r-- | net/quagga/patches/patch-vtysh_vtysh.c | 18 | ||||
-rw-r--r-- | net/quagga/patches/patch-zebra-kernel_socket.c | 86 |
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 + |