remove 0.98.3; add warning about tcpmd5 kernel patch; x86 on 0.98.4
authorAlin Năstac <mrness@gentoo.org>
Fri, 14 Oct 2005 05:19:12 +0000 (05:19 +0000)
committerAlin Năstac <mrness@gentoo.org>
Fri, 14 Oct 2005 05:19:12 +0000 (05:19 +0000)
Package-Manager: portage-2.0.51.22-r3

net-misc/quagga/ChangeLog
net-misc/quagga/Manifest
net-misc/quagga/files/digest-quagga-0.98.3 [deleted file]
net-misc/quagga/files/patches-0.98.3/amir-connected-route.patch [deleted file]
net-misc/quagga/files/patches-0.98.3/ht-20040304-classless-bgp.patch [deleted file]
net-misc/quagga/files/patches-0.98.3/ht-20050110-0.98.0-bgp-md5.patch [deleted file]
net-misc/quagga/quagga-0.96.5-r1.ebuild
net-misc/quagga/quagga-0.98.2.ebuild
net-misc/quagga/quagga-0.98.3.ebuild [deleted file]
net-misc/quagga/quagga-0.98.4.ebuild

index 0157c3798101e4946eb21f7d77a38e58f969329f..61bd0e25ce7d2526d7fdf7d2e46627a396ae1626 100644 (file)
@@ -2,7 +2,17 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Copyright 2003-2004 DataCore GmbH
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/ChangeLog,v 1.20 2005/09/14 11:11:08 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/ChangeLog,v 1.21 2005/10/14 05:19:12 mrness Exp $
+
+  14 Oct 2005; Alin Nastac <mrness@gentoo.org>
+  -files/patches-0.98.3/amir-connected-route.patch,
+  -files/patches-0.98.3/ht-20040304-classless-bgp.patch,
+  -files/patches-0.98.3/ht-20050110-0.98.0-bgp-md5.patch,
+  quagga-0.96.5-r1.ebuild, quagga-0.98.2.ebuild, -quagga-0.98.3.ebuild,
+  quagga-0.98.4.ebuild:
+  Remove obsolete test version 0.98.3. Add a warning about necessity of
+  patching kernel for being able to use TCP MD5 for BGP (#108364). Mark
+  version 0.98.4 stable on x86.
 
   14 Sep 2005; Alin Nastac <mrness@gentoo.org> +files/bgpd.init,
   -files/init/bgpd, -files/init/ospf6d, -files/init/ospfd, -files/init/ripd,
index caab99935ba8c31277908af7c04f43028f4e0916..17174fafd79bbd60d414ad4413c061a3dae52126 100644 (file)
@@ -1,16 +1,14 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 c0a941e08060816c4c7068cd4023602c quagga-0.98.3.ebuild 4861
-MD5 d30997e32c750bff03590ab79f7276ff quagga-0.98.2.ebuild 4468
-MD5 c4bcfc277e856924ed9ba4cead328cba ChangeLog 8277
-MD5 c5d35e84e9953411d425350619e46b15 quagga-0.98.4.ebuild 4238
+MD5 95af004409f46b53eb8c5277bfd5b5b8 quagga-0.98.2.ebuild 4625
+MD5 32d1b21f3a7df65fe58533a8152060f8 ChangeLog 8764
+MD5 7eb6d4f48ba75934fc51d92287a1d38d quagga-0.98.4.ebuild 4393
 MD5 f0c8f9afaf3bbefcea71ff3b6fa139c4 metadata.xml 1389
-MD5 7b34e71571fb66352e5e6713fe6840a2 quagga-0.96.5-r1.ebuild 3861
+MD5 6f7bbd50a0af9c0e1f2fae5116a8eacf quagga-0.96.5-r1.ebuild 4017
 MD5 cc109a746273bc0d6aee9d758e7524ab files/bgpd.init 900
 MD5 44547b687343ebfed7524cebc5626067 files/ospf6d.init 919
 MD5 1a1df9fb95d48001187e1f56dc4ff5e5 files/digest-quagga-0.98.2 66
-MD5 ab93cbbeeed343892eea7f9b79217a8b files/digest-quagga-0.98.3 66
 MD5 8550c2f78b4c3ba7ba66c6bcb0bf4913 files/digest-quagga-0.98.4 147
 MD5 39b8cb21b55de53af38c94c2f5d85917 files/ripd.init 900
 MD5 120ab1b53975ec86e78266f31e935ab6 files/ripngd.init 920
@@ -23,13 +21,10 @@ MD5 2c1c5b782f96a74b48ccc496ad7a3865 files/zebra.init 1168
 MD5 7da4097332468741416e156a2e5d35e4 files/patches-0.98.2/amir-connected-route.patch 6336
 MD5 6c9cdbdc237bb8d24dfd26504059464b files/patches-0.98.2/ht-20050110-0.98.0-bgp-md5.patch 14570
 MD5 e70bf25e2ca5f76efb2c5704234ccc1f files/patches-0.98.2/ht-20040304-classless-bgp.patch 1581
-MD5 a5a7f270b8ccff05a27e0fa943a0aaf5 files/patches-0.98.3/amir-connected-route.patch 6091
-MD5 6c9cdbdc237bb8d24dfd26504059464b files/patches-0.98.3/ht-20050110-0.98.0-bgp-md5.patch 14570
-MD5 e70bf25e2ca5f76efb2c5704234ccc1f files/patches-0.98.3/ht-20040304-classless-bgp.patch 1581
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.1 (GNU/Linux)
 
-iD8DBQFDKAVkNSP4Vda7IdsRAhXPAJ92dT40836Pr+s0x8EV30gLLpBiAwCfR+SV
-ANB85ToVTVAmKFMBbVxmdiw=
-=hC/h
+iD8DBQFDTz/mNSP4Vda7IdsRAmfUAKCSM5++hEKa8wp+JfZBzkr1U6LshACfYf4b
+gRBILuFXTuSG+m0ALVamO18=
+=AqBA
 -----END PGP SIGNATURE-----
diff --git a/net-misc/quagga/files/digest-quagga-0.98.3 b/net-misc/quagga/files/digest-quagga-0.98.3
deleted file mode 100644 (file)
index cc7f588..0000000
+++ /dev/null
@@ -1 +0,0 @@
-MD5 68be5e911e4d604c0f5959338263356e quagga-0.98.3.tar.gz 2118348
diff --git a/net-misc/quagga/files/patches-0.98.3/amir-connected-route.patch b/net-misc/quagga/files/patches-0.98.3/amir-connected-route.patch
deleted file mode 100644 (file)
index 40b6606..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-diff -Nur quagga-0.98.3.orig/zebra/connected.c quagga-0.98.3/zebra/connected.c
---- quagga-0.98.3.orig/zebra/connected.c       2005-03-12 20:54:45.000000000 +0200
-+++ quagga-0.98.3/zebra/connected.c    2005-06-15 08:33:06.012693968 +0300
-@@ -29,6 +29,7 @@
- #include "rib.h"
- #include "table.h"
- #include "log.h"
-+#include "rt.h"
- 
- #include "zebra/zserv.h"
- #include "zebra/redistribute.h"
-@@ -85,6 +86,8 @@
-   rib_add_ipv4 (ZEBRA_ROUTE_CONNECT, 0, &p, NULL, ifp->ifindex, 0, 0, 0);
- 
-   rib_update ();
-+
-+  kernel_connected_up(ifc);
- }
- 
- /* Add connected IPv4 route to the interface. */
-@@ -221,6 +224,8 @@
-   rib_delete_ipv4 (ZEBRA_ROUTE_CONNECT, 0, &p, NULL, ifp->ifindex, 0);
- 
-   rib_update ();
-+
-+  kernel_connected_down(ifc);
- }
- 
- /* Delete connected IPv4 route to the interface. */
-@@ -314,6 +319,8 @@
-   rib_add_ipv6 (ZEBRA_ROUTE_CONNECT, 0, &p, NULL, ifp->ifindex, 0);
- 
-   rib_update ();
-+
-+  kernel_connected_up(ifc);
- }
- 
- /* Add connected IPv6 route to the interface. */
-@@ -403,6 +410,8 @@
-   rib_delete_ipv6 (ZEBRA_ROUTE_CONNECT, 0, &p, NULL, ifp->ifindex, 0);
- 
-   rib_update ();
-+
-+  kernel_connected_down(ifc);
- }
- 
- void
-diff -Nur quagga-0.98.3.orig/zebra/rt.h quagga-0.98.3/zebra/rt.h
---- quagga-0.98.3.orig/zebra/rt.h      2002-12-13 22:15:30.000000000 +0200
-+++ quagga-0.98.3/zebra/rt.h   2005-06-15 08:33:06.012693968 +0300
-@@ -29,6 +29,9 @@
- int kernel_address_add_ipv4 (struct interface *, struct connected *);
- int kernel_address_delete_ipv4 (struct interface *, struct connected *);
- 
-+int kernel_connected_up (struct connected *ifc);
-+int kernel_connected_down (struct connected *ifc);
-+
- #ifdef HAVE_IPV6
- int kernel_add_ipv6 (struct prefix *, struct rib *);
- int kernel_delete_ipv6 (struct prefix *, struct rib *);
-diff -Nur quagga-0.98.3.orig/zebra/rt_ioctl.c quagga-0.98.3/zebra/rt_ioctl.c
---- quagga-0.98.3.orig/zebra/rt_ioctl.c        2004-12-07 23:12:56.000000000 +0200
-+++ quagga-0.98.3/zebra/rt_ioctl.c     2005-06-15 08:33:06.013693816 +0300
-@@ -44,6 +44,20 @@
-   return;
- }
- 
-+/* Dummy function */
-+int
-+kernel_connected_up (struct connected *ifc)
-+{
-+  return 0;
-+}
-+
-+/* Dummy function */
-+int
-+kernel_connected_down (struct connected *ifc)
-+{
-+  return 0;
-+}
-+
- #if 0
- /* Initialization prototype of struct sockaddr_in. */
- static struct sockaddr_in sin_proto =
-diff -Nur quagga-0.98.3.orig/zebra/rt_netlink.c quagga-0.98.3/zebra/rt_netlink.c
---- quagga-0.98.3.orig/zebra/rt_netlink.c      2005-03-31 23:26:59.000000000 +0300
-+++ quagga-0.98.3/zebra/rt_netlink.c   2005-06-15 08:33:06.014693664 +0300
-@@ -1341,6 +1341,112 @@
-   return 0;
- }
- 
-+/* Routing table change for connected route via netlink interface. */
-+int
-+netlink_routeconnected (int cmd, struct connected *ifc)
-+{
-+  int ret;
-+  int bytelen;
-+  struct sockaddr_nl snl;
-+  u_char bufnet[BUFSIZ];
-+  u_char bufaddr[BUFSIZ];
-+  u_char bufsrc[BUFSIZ];
-+
-+  int cmds[] = { RTM_NEWROUTE, RTM_DELROUTE };
-+
-+  struct prefix *p = ifc->address;
-+  int family = ifc->address->family;
-+  int table = RT_TABLE_MAIN;
-+  int index = ifc->ifp->ifindex;
-+
-+  struct prefix dest;
-+  struct prefix src;
-+  int length = p->prefixlen; 
-+
-+  struct
-+  {
-+    struct nlmsghdr n;
-+    struct rtmsg r;
-+    char buf[1024];
-+  } req;
-+
-+  if (! (index && p))
-+    return -1;  
-+
-+#ifdef HAVE_IPV6
-+  if ((family == AF_INET6) && (IN6_IS_ADDR_LINKLOCAL(&p->u.prefix6)))
-+    return -1;
-+#endif /* HAVE_IPV6 */
-+
-+  memset (&dest, 0, sizeof dest);
-+  memset (&req, 0, sizeof req);
-+  memset (&src, 0, sizeof(struct prefix));
-+
-+  /* Copy prefix */
-+  prefix_copy (&src, p);
-+  prefix2str(&src, bufsrc, sizeof (bufaddr));
-+
-+  prefix_copy (&dest, p);
-+  prefix2str(&dest, bufaddr, sizeof (bufaddr));
-+
-+  /* Make it sure prefixlen is applied to the prefix. */
-+  apply_mask (&dest);
-+  prefix2str(&dest, bufnet, sizeof (bufnet));
-+
-+  bytelen = (family == AF_INET ? 4 : 16);
-+
-+  req.n.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtmsg));
-+  req.n.nlmsg_flags = NLM_F_CREATE | NLM_F_REQUEST;
-+  req.n.nlmsg_type = cmds[cmd];
-+  req.r.rtm_family = family;
-+  req.r.rtm_table = table;
-+  req.r.rtm_dst_len = length;
-+  req.r.rtm_src_len = IPV4_MAX_BITLEN;
-+
-+  req.r.rtm_protocol = RTPROT_KERNEL;
-+  req.r.rtm_scope = RT_SCOPE_LINK;
-+  req.r.rtm_type = RTN_UNICAST;
-+
-+  addattr_l (&req.n, sizeof req, RTA_DST, &dest.u.prefix, bytelen);
-+  addattr_l (&req.n, sizeof req, RTA_PREFSRC, &src.u.prefix, bytelen);
-+
-+  if (index > 0)
-+    addattr32 (&req.n, sizeof req, RTA_OIF, index);
-+
-+  /* Destination netlink address. */
-+  memset (&snl, 0, sizeof snl);
-+  snl.nl_family = AF_NETLINK;
-+
-+  if (! cmd)
-+    zlog_warn ("netlink_routeconnected: connected route for if %s (%s) for net %s src %s in fib", ifc->ifp->name, bufaddr, bufnet, bufsrc);
-+  else
-+    zlog_warn ("netlink_routeconnected: connected route for if %s (%s) for net %s src %s in fib", ifc->ifp->name, bufaddr, bufnet, bufsrc);
-+
-+  /* Talk to netlink socket. */
-+  ret = netlink_talk (&req.n, &netlink);
-+  if (ret < 0)
-+    return -1;
-+
-+  if (! cmd)
-+    zlog_warn ("netlink_routeconnected: ACK: connected route for if %s (%s) for net %s src %s in fib", ifc->ifp->name, bufaddr, bufnet, bufsrc);
-+  else
-+    zlog_warn ("netlink_routeconnected: ACK: connected route for if %s (%s) for net %s src %s in fib", ifc->ifp->name, bufaddr, bufnet, bufsrc);
-+
-+  return 0;
-+}
-+
-+int
-+kernel_connected_up (struct connected *ifc)
-+{
-+  return netlink_routeconnected (0, ifc);
-+}
-+
-+int
-+kernel_connected_down (struct connected *ifc)
-+{
-+  return netlink_routeconnected (1, ifc);
-+}
-+
- /* Routing table change via netlink interface. */
- int
- netlink_route_multipath (int cmd, struct prefix *p, struct rib *rib,
-diff -Nur quagga-0.98.3.orig/zebra/rt_socket.c quagga-0.98.3/zebra/rt_socket.c
---- quagga-0.98.3.orig/zebra/rt_socket.c       2004-12-07 23:12:56.000000000 +0200
-+++ quagga-0.98.3/zebra/rt_socket.c    2005-06-15 08:33:06.015693512 +0300
-@@ -480,4 +480,18 @@
- 
-   return route;
- }
-+
-+/* Dummy function */
-+int
-+kernel_connected_up (struct connected *ifc)
-+{
-+  return 0;
-+}
-+
-+/* Dummy function */
-+int
-+kernel_connected_down (struct connected *ifc)
-+{
-+  return 0;
-+}
- #endif /* HAVE_IPV6 */
diff --git a/net-misc/quagga/files/patches-0.98.3/ht-20040304-classless-bgp.patch b/net-misc/quagga/files/patches-0.98.3/ht-20040304-classless-bgp.patch
deleted file mode 100644 (file)
index 978dfa3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: bgpd/bgp_route.c
-===================================================================
-RCS file: /var/cvsroot/quagga/bgpd/bgp_route.c,v
-retrieving revision 1.10
-diff -u -3 -p -r1.10 bgp_route.c
---- bgpd/bgp_route.c   17 Feb 2004 19:45:10 -0000      1.10
-+++ bgpd/bgp_route.c   4 Mar 2004 19:44:42 -0000
-@@ -3710,16 +3710,7 @@ route_vty_out_route (struct prefix *p, s
-     {
-       len = vty_out (vty, "%s", inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ));
-       destination = ntohl (p->u.prefix4.s_addr);
--
--      if ((IN_CLASSC (destination) && p->prefixlen == 24)
--        || (IN_CLASSB (destination) && p->prefixlen == 16)
--        || (IN_CLASSA (destination) && p->prefixlen == 8)
--        || p->u.prefix4.s_addr == 0)
--      {
--        /* When mask is natural, mask is not displayed. */
--      }
--      else
--      len += vty_out (vty, "/%d", p->prefixlen);
-+      len += vty_out (vty, "/%d", p->prefixlen);
-     }
-   else
-     len = vty_out (vty, "%s/%d", inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
-@@ -8931,16 +8922,7 @@ bgp_config_write_network (struct vty *vt
-           masklen2ip (p->prefixlen, &netmask);
-           vty_out (vty, " network %s",
-                    inet_ntop (p->family, &p->u.prefix, buf, SU_ADDRSTRLEN));
--
--          if ((IN_CLASSC (destination) && p->prefixlen == 24)
--              || (IN_CLASSB (destination) && p->prefixlen == 16)
--              || (IN_CLASSA (destination) && p->prefixlen == 8)
--              || p->u.prefix4.s_addr == 0)
--            {
--              /* Natural mask is not display. */
--            }
--          else
--            vty_out (vty, " mask %s", inet_ntoa (netmask));
-+          vty_out (vty, " mask %s", inet_ntoa (netmask));
-         }
-       else
-         {
diff --git a/net-misc/quagga/files/patches-0.98.3/ht-20050110-0.98.0-bgp-md5.patch b/net-misc/quagga/files/patches-0.98.3/ht-20050110-0.98.0-bgp-md5.patch
deleted file mode 100644 (file)
index 933304d..0000000
+++ /dev/null
@@ -1,481 +0,0 @@
-==== Patch <ht-20050110-0.98.0-bgp-md5> level 1
-Source: [No source]
-Target: 53eccb64-3fed-0310-a953-aee945e670f6:/quagga/working-copy:832 [local]
-Log:
-Patch updated to the Quagga version 0.98.0.
---- bgpd/bgp_network.c  (revision 832)
-+++ bgpd/bgp_network.c  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -38,6 +38,56 @@ Software Foundation, Inc., 59 Temple Pla
- extern struct zebra_privs_t bgpd_privs;
- 
- \f
-+#if defined(HAVE_TCP_MD5) && defined(GNU_LINUX)
-+/* Set MD5 key to the socket.  */
-+int
-+bgp_md5_set (int sock, struct peer *peer, char *password)
-+{
-+  int ret;
-+  struct tcp_rfc2385_cmd cmd;
-+  struct in_addr *addr = &peer->su.sin.sin_addr;
-+
-+  cmd.command = TCP_MD5_AUTH_ADD;
-+  cmd.address = addr->s_addr;
-+  cmd.keylen = strlen (password);
-+  cmd.key = password;
-+
-+  if ( bgpd_privs.change (ZPRIVS_RAISE) )
-+    zlog_err ("bgp_md5_set: could not raise privs");
-+
-+  ret = setsockopt (sock, IPPROTO_TCP, TCP_MD5_AUTH, &cmd, sizeof cmd);
-+
-+  if (bgpd_privs.change (ZPRIVS_LOWER) )
-+    zlog_err ("bgp_md5_set: could not lower privs");
-+
-+  return ret;
-+}
-+
-+/* Unset MD5 key from the socket.  */
-+int
-+bgp_md5_unset (int sock, struct peer *peer, char *password)
-+{
-+  int ret;
-+  struct tcp_rfc2385_cmd cmd;
-+  struct in_addr *addr = &peer->su.sin.sin_addr;
-+
-+  cmd.command = TCP_MD5_AUTH_DEL;
-+  cmd.address = addr->s_addr;
-+  cmd.keylen = strlen (password);
-+  cmd.key = password;
-+
-+  if ( bgpd_privs.change (ZPRIVS_RAISE) )
-+    zlog_err ("bgp_md5_unset: could not raise privs");
-+
-+  ret = setsockopt (sock, IPPROTO_TCP, TCP_MD5_AUTH, &cmd, sizeof cmd);
-+
-+  if (bgpd_privs.change (ZPRIVS_LOWER) )
-+    zlog_err ("bgp_md5_unset: could not lower privs");
-+
-+  return ret;
-+}
-+#endif /* defined(HAVE_TCP_MD5) && defined(GNU_LINUX) */
-+\f
- /* Accept bgp connection. */
- static int
- bgp_accept (struct thread *thread)
-@@ -240,6 +290,12 @@ bgp_connect (struct peer *peer)
-   sockopt_reuseaddr (peer->fd);
-   sockopt_reuseport (peer->fd);
- 
-+#ifdef HAVE_TCP_MD5
-+  if (CHECK_FLAG (peer->flags, PEER_FLAG_PASSWORD))
-+    if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_set (peer->fd, peer, peer->password);
-+#endif /* HAVE_TCP_MD5 */
-+
-   /* Bind socket. */
-   bgp_bind (peer);
- 
-@@ -287,6 +343,9 @@ int
- bgp_socket (struct bgp *bgp, unsigned short port)
- {
-   int ret, en;
-+#ifdef IPV6_V6ONLY
-+  int v6only = 1;
-+#endif /* IPV6_V6ONLY */
-   struct addrinfo req;
-   struct addrinfo *ainfo;
-   struct addrinfo *ainfo_save;
-@@ -321,6 +380,11 @@ bgp_socket (struct bgp *bgp, unsigned sh
-         zlog_err ("socket: %s", safe_strerror (errno));
-         continue;
-       }
-+#ifdef IPV6_V6ONLY
-+      ret = setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&v6only, sizeof(v6only));
-+      if (ret < 0)
-+        zlog_err ("setsockopt IPV6_V6ONLY: i%s", strerror (errno));
-+#endif /* IPV6_V6ONLY */
- 
-       sockopt_reuseaddr (sock);
-       sockopt_reuseport (sock);
-@@ -348,6 +412,11 @@ bgp_socket (struct bgp *bgp, unsigned sh
-         continue;
-       }
- 
-+#ifdef HAVE_TCP_MD5
-+      if (ainfo->ai_family == AF_INET)
-+      bm->sock = sock;
-+#endif /* HAVE_TCP_MD5 */
-+
-       thread_add_read (master, bgp_accept, bgp, sock);
-     }
-   while ((ainfo = ainfo->ai_next) != NULL);
-@@ -408,6 +477,9 @@ bgp_socket (struct bgp *bgp, unsigned sh
-       close (sock);
-       return ret;
-     }
-+#ifdef HAVE_TCP_MD5
-+  bm->sock = sock;
-+#endif /* HAVE_TCP_MD5 */
- 
-   thread_add_read (bm->master, bgp_accept, bgp, sock);
- 
---- bgpd/bgp_network.h  (revision 832)
-+++ bgpd/bgp_network.h  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -18,6 +18,27 @@ along with GNU Zebra; see the file COPYI
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.  */
- 
-+#if defined(HAVE_TCP_MD5) && defined(GNU_LINUX)
-+/* setsockopt Number */
-+#define TCP_MD5_AUTH 13
-+
-+/* Commands (used in the structure passed from userland) */
-+#define TCP_MD5_AUTH_ADD 1
-+#define TCP_MD5_AUTH_DEL 2
-+
-+struct tcp_rfc2385_cmd {
-+  u_int8_t     command;    /* Command - Add/Delete */
-+  u_int32_t    address;    /* IPV4 address associated */
-+  u_int8_t     keylen;     /* MD5 Key len (do NOT assume 0 terminated ascii) */
-+  void         *key;       /* MD5 Key */
-+};
-+#endif /* defined(HAVE_TCP_MD5) && defined(GNU_LINUX) */
-+
-+#ifdef HAVE_TCP_MD5
-+int bgp_md5_set (int sock, struct peer *, char *);
-+int bgp_md5_unset (int sock, struct peer *, char *);
-+#endif /* HAVE_TCP_MD5 */
-+
- int bgp_socket (struct bgp *, unsigned short);
- int bgp_connect (struct peer *);
- void bgp_getsockname (struct peer *);
---- bgpd/bgp_vty.c  (revision 832)
-+++ bgpd/bgp_vty.c  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -1386,6 +1386,46 @@ ALIAS (no_neighbor_local_as,
-        "AS number used as local AS\n"
-        "Do not prepend local-as to updates from ebgp peers\n")
- \f
-+#ifdef HAVE_TCP_MD5
-+DEFUN (neighbor_password,
-+       neighbor_password_cmd,
-+       NEIGHBOR_CMD2 "password LINE",
-+       NEIGHBOR_STR
-+       NEIGHBOR_ADDR_STR2
-+       "Set a password\n"
-+       "The password\n")
-+{
-+  struct peer *peer;
-+  int ret;
-+
-+  peer = peer_and_group_lookup_vty (vty, argv[0]);
-+  if (! peer)
-+    return CMD_WARNING;
-+
-+  ret = peer_password_set (peer, argv[1]);
-+  return bgp_vty_return (vty, ret);
-+}
-+
-+DEFUN (no_neighbor_password,
-+       no_neighbor_password_cmd,
-+       NO_NEIGHBOR_CMD2 "password",
-+       NO_STR
-+       NEIGHBOR_STR
-+       NEIGHBOR_ADDR_STR2
-+       "Set a password\n")
-+{
-+  struct peer *peer;
-+  int ret;
-+
-+  peer = peer_and_group_lookup_vty (vty, argv[0]);
-+  if (! peer)
-+    return CMD_WARNING;
-+
-+  ret = peer_password_unset (peer);
-+  return bgp_vty_return (vty, ret);
-+}
-+#endif /* HAVE_TCP_MD5 */
-+\f
- DEFUN (neighbor_activate,
-        neighbor_activate_cmd,
-        NEIGHBOR_CMD2 "activate",
-@@ -8531,6 +8571,12 @@ bgp_vty_init ()
-   install_element (BGP_NODE, &no_neighbor_local_as_val_cmd);
-   install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd);
- 
-+#ifdef HAVE_TCP_MD5
-+  /* "neighbor password" commands. */
-+  install_element (BGP_NODE, &neighbor_password_cmd);
-+  install_element (BGP_NODE, &no_neighbor_password_cmd);
-+#endif /* HAVE_TCP_MD5 */
-+
-   /* "neighbor activate" commands. */
-   install_element (BGP_NODE, &neighbor_activate_cmd);
-   install_element (BGP_IPV4_NODE, &neighbor_activate_cmd);
---- bgpd/bgpd.c  (revision 832)
-+++ bgpd/bgpd.c  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -707,6 +707,7 @@ peer_new ()
-   peer->ostatus = Idle;
-   peer->version = BGP_VERSION_4;
-   peer->weight = 0;
-+  peer->password = NULL;
- 
-   /* Set default flags.  */
-   for (afi = AFI_IP; afi < AFI_MAX; afi++)
-@@ -1068,6 +1069,17 @@ peer_delete (struct peer *peer)
-   bgp_stop (peer);
-   bgp_fsm_change_status (peer, Idle);
- 
-+#ifdef HAVE_TCP_MD5
-+  /* Password configuration */
-+  if (peer->password)
-+    {
-+      if (! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP)
-+          && sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_unset (bm->sock, peer, peer->password);
-+      free (peer->password);
-+    }
-+#endif /* HAVE_TCP_MD5 */
-+
-   /* Stop all timers. */
-   BGP_TIMER_OFF (peer->t_start);
-   BGP_TIMER_OFF (peer->t_connect);
-@@ -1293,6 +1305,26 @@ peer_group2peer_config_copy (struct peer
-   else
-     peer->v_routeadv = BGP_DEFAULT_EBGP_ROUTEADV;
- 
-+#ifdef HAVE_TCP_MD5
-+  /* password apply */
-+  if (CHECK_FLAG (conf->flags, PEER_FLAG_PASSWORD))
-+    {
-+      if (peer->password)
-+      free (peer->password);
-+      peer->password = strdup (conf->password);
-+
-+      if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_set (bm->sock, peer, peer->password);
-+    }
-+  else if (peer->password)
-+    {
-+      if (sockunion_family (&peer->su) == AF_INET)
-+        bgp_md5_unset (bm->sock, peer, peer->password);
-+      free (peer->password);
-+      peer->password = NULL;
-+    }
-+#endif /* HAVE_TCP_MD5 */
-+
-   /* maximum-prefix */
-   peer->pmax[afi][safi] = conf->pmax[afi][safi];
-   peer->pmax_threshold[afi][safi] = conf->pmax_threshold[afi][safi];
-@@ -3270,6 +3302,119 @@ peer_local_as_unset (struct peer *peer)
-   return 0;
- }
- \f
-+#ifdef HAVE_TCP_MD5
-+/* Set password for authenticating with the peer. */
-+int
-+peer_password_set (struct peer *peer, const char *password)
-+{
-+  struct peer_group *group;
-+  struct listnode *nn;
-+
-+  if (peer->password && strcmp (peer->password, password) == 0
-+      && ! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP))
-+      return 0;
-+
-+  SET_FLAG (peer->flags, PEER_FLAG_PASSWORD);
-+  if (peer->password)
-+    free (peer->password);
-+  peer->password = strdup (password);
-+
-+  if (! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP))
-+    {
-+      if (peer->status == Established)
-+          bgp_notify_send (peer, BGP_NOTIFY_CEASE, BGP_NOTIFY_CEASE_CONFIG_CHANGE);
-+      else
-+        BGP_EVENT_ADD (peer, BGP_Stop);
-+
-+      if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_set (bm->sock, peer, peer->password);
-+      return 0;
-+    }
-+
-+  group = peer->group;
-+  LIST_LOOP (group->peer, peer, nn)
-+    {
-+      if (peer->password && strcmp (peer->password, password) == 0)
-+      continue;
-+
-+      SET_FLAG (peer->flags, PEER_FLAG_PASSWORD);
-+      if (peer->password)
-+        free (peer->password);
-+      peer->password = strdup (password);
-+
-+      if (peer->status == Established)
-+        bgp_notify_send (peer, BGP_NOTIFY_CEASE, BGP_NOTIFY_CEASE_CONFIG_CHANGE);
-+      else
-+        BGP_EVENT_ADD (peer, BGP_Stop);
-+
-+      if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_set (bm->sock, peer, peer->password);
-+    }
-+
-+  return 0;
-+}
-+
-+int
-+peer_password_unset (struct peer *peer)
-+{
-+  struct peer_group *group;
-+  struct listnode *nn;
-+
-+  if (! CHECK_FLAG (peer->flags, PEER_FLAG_PASSWORD)
-+      && ! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP))
-+    return 0;
-+
-+  if (! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP))
-+    {
-+      if (peer_group_active (peer)
-+        && CHECK_FLAG (peer->group->conf->flags, PEER_FLAG_PASSWORD))
-+      return BGP_ERR_PEER_GROUP_HAS_THE_FLAG;
-+
-+      if (peer->status == Established)
-+        bgp_notify_send (peer, BGP_NOTIFY_CEASE, BGP_NOTIFY_CEASE_CONFIG_CHANGE);
-+      else
-+        BGP_EVENT_ADD (peer, BGP_Stop);
-+
-+      if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_unset (bm->sock, peer, peer->password);
-+
-+      UNSET_FLAG (peer->flags, PEER_FLAG_PASSWORD);
-+      if (peer->password)
-+      free (peer->password);
-+      peer->password = NULL;
-+
-+      return 0;
-+    }
-+
-+  UNSET_FLAG (peer->flags, PEER_FLAG_PASSWORD);
-+  if (peer->password)
-+    free (peer->password);
-+  peer->password = NULL;
-+
-+  group = peer->group;
-+  LIST_LOOP (group->peer, peer, nn)
-+    {
-+      if (! CHECK_FLAG (peer->flags, PEER_FLAG_PASSWORD))
-+      continue;
-+
-+      if (peer->status == Established)
-+        bgp_notify_send (peer, BGP_NOTIFY_CEASE, BGP_NOTIFY_CEASE_CONFIG_CHANGE);
-+      else
-+        BGP_EVENT_ADD (peer, BGP_Stop);
-+
-+      if (sockunion_family (&peer->su) == AF_INET)
-+      bgp_md5_unset (bm->sock, peer, peer->password);
-+
-+      UNSET_FLAG (peer->flags, PEER_FLAG_PASSWORD);
-+      if (peer->password)
-+        free (peer->password);
-+      peer->password = NULL;
-+    }
-+
-+  return 0;
-+}
-+#endif /* HAVE_TCP_MD5 */
-+\f
- /* Set distribute list to the peer. */
- int
- peer_distribute_set (struct peer *peer, afi_t afi, safi_t safi, int direct, 
-@@ -4286,6 +4431,16 @@ bgp_config_write_peer (struct vty *vty, 
-           ! CHECK_FLAG (g_peer->flags, PEER_FLAG_SHUTDOWN))
-         vty_out (vty, " neighbor %s shutdown%s", addr, VTY_NEWLINE);
- 
-+#ifdef HAVE_TCP_MD5
-+      /* Password. */
-+      if (CHECK_FLAG (peer->flags, PEER_FLAG_PASSWORD))
-+      if (! peer_group_active (peer)
-+          || ! CHECK_FLAG (g_peer->flags, PEER_FLAG_PASSWORD)
-+          || strcmp (peer->password, g_peer->password) != 0)
-+        vty_out (vty, " neighbor %s password %s%s", addr, peer->password,
-+                 VTY_NEWLINE);
-+#endif /* HAVE_TCP_MD5 */
-+
-       /* BGP port. */
-       if (peer->port != BGP_PORT_DEFAULT)
-       vty_out (vty, " neighbor %s port %d%s", addr, peer->port, 
-@@ -4817,6 +4972,9 @@ bgp_master_init ()
-   bm->port = BGP_PORT_DEFAULT;
-   bm->master = thread_master_create ();
-   bm->start_time = time (NULL);
-+#ifdef HAVE_TCP_MD5
-+  bm->sock = -1;
-+#endif /* HAVE_TCP_MD5 */
- }
- \f
- void
---- bgpd/bgpd.h  (revision 832)
-+++ bgpd/bgpd.h  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -45,6 +45,11 @@ struct bgp_master
- #define BGP_OPT_NO_FIB                   (1 << 0)
- #define BGP_OPT_MULTIPLE_INSTANCE        (1 << 1)
- #define BGP_OPT_CONFIG_CISCO             (1 << 2)
-+
-+#ifdef HAVE_TCP_MD5
-+  /* bgp receive socket */
-+  int sock;
-+#endif /* HAVE_TCP_MD5 */
- };
- 
- /* BGP instance structure.  */
-@@ -335,6 +340,7 @@ struct peer
- #define PEER_FLAG_DYNAMIC_CAPABILITY        (1 << 6) /* dynamic capability */
- #define PEER_FLAG_ENFORCE_MULTIHOP          (1 << 7) /* enforce-multihop */
- #define PEER_FLAG_LOCAL_AS_NO_PREPEND       (1 << 8) /* local-as no-prepend */
-+#define PEER_FLAG_PASSWORD                  (1 << 9) /* password */
- 
-   /* Per AF configuration flags. */
-   u_int32_t af_flags[AFI_MAX][SAFI_MAX];
-@@ -356,6 +362,9 @@ struct peer
- #define PEER_FLAG_MAX_PREFIX_WARNING        (1 << 15) /* maximum prefix warning-only */
- #define PEER_FLAG_NEXTHOP_LOCAL_UNCHANGED   (1 << 16) /* leave link-local nexthop unchanged */ 
- 
-+  /* MD5 password */
-+  char *password;
-+
-   /* default-originate route-map.  */
-   struct
-   {
-@@ -895,5 +904,10 @@ int peer_unsuppress_map_unset (struct pe
- int peer_maximum_prefix_set (struct peer *, afi_t, safi_t, u_int32_t, u_char, int);
- int peer_maximum_prefix_unset (struct peer *, afi_t, safi_t);
- 
-+#ifdef HAVE_TCP_MD5
-+int peer_password_set (struct peer *, const char *);
-+int peer_password_unset (struct peer *);
-+#endif /* HAVE_TCP_MD5 */
-+
- int peer_clear (struct peer *);
- int peer_clear_soft (struct peer *, afi_t, safi_t, enum bgp_clear_type);
---- configure.ac  (revision 832)
-+++ configure.ac  (patch ht-20050110-0.98.0-bgp-md5 level 1)
-@@ -153,6 +153,8 @@ AC_ARG_ENABLE(irdp,
- [  --enable-irdp                 enable IRDP server support in zebra])
- AC_ARG_ENABLE(capabilities,
- [  --disable-capabilities        disable using POSIX capabilities])
-+AC_ARG_ENABLE(tcp-md5,
-+[  --enable-tcp-md5  enable TCP MD5 Signature Option (RFC2385)])
- AC_ARG_ENABLE(gcc_ultra_verbose,
- [  --enable-gcc-ultra-verbose    enable ultra verbose GCC warnings])
- AC_ARG_ENABLE(gcc-rdynamic,
-@@ -192,6 +194,11 @@ if test "${enable_ospf_te}" = "yes"; the
-   AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
- fi
- 
-+if test "${enable_tcp_md5}" = "yes"; then
-+  AC_DEFINE(HAVE_TCP_MD5,,Linux TCP MD5 Signature Option)
-+fi
-+
-+
- AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
- if test "${enable_rtadv}" != "no"; then
-   AC_MSG_RESULT(yes)
index 5d304156a91f8c2eee23c24a622f3aa60bc47677..740b04e6ff09a4f3f6a66ac7d91cee0ea57f5f70 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.96.5-r1.ebuild,v 1.5 2005/09/14 11:11:08 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.96.5-r1.ebuild,v 1.6 2005/10/14 05:19:12 mrness Exp $
 
 inherit eutils
 
@@ -116,4 +116,10 @@ pkg_postinst() {
        einfo "Sample configuration files can be found in /etc/quagga/samples."
        einfo "You have to create config files in /etc/quagga before"
        einfo "starting one of the daemons."
+
+       if use tcpmd5; then
+               echo
+               ewarn "TCP MD5 for BGP needs a patched kernel!"
+               einfo "See http://hasso.linux.ee/quagga/bgp-md5.en.php for more info."
+       fi
 }
index d7fcb044861087884fff3d11926c0d9e3f719e68..6e49d207d10fb5951ecae320b5b7916c8bffc204 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.98.2.ebuild,v 1.9 2005/09/14 11:11:08 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.98.2.ebuild,v 1.10 2005/10/14 05:19:12 mrness Exp $
 
 inherit eutils
 
@@ -126,4 +126,10 @@ pkg_postinst() {
        einfo "Sample configuration files can be found in /etc/quagga/samples."
        einfo "You have to create config files in /etc/quagga before"
        einfo "starting one of the daemons."
+
+       if use tcpmd5; then
+               echo
+               ewarn "TCP MD5 for BGP needs a patched kernel!"
+               einfo "See http://hasso.linux.ee/quagga/bgp-md5.en.php for more info."
+       fi
 }
diff --git a/net-misc/quagga/quagga-0.98.3.ebuild b/net-misc/quagga/quagga-0.98.3.ebuild
deleted file mode 100644 (file)
index d14e233..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.98.3.ebuild,v 1.5 2005/09/14 11:11:08 mrness Exp $
-
-inherit eutils
-
-DESCRIPTION="A free routing daemon replacing Zebra supporting RIP, OSPF and BGP. Includes OSPFAPI, NET-SNMP and IPV6 support."
-HOMEPAGE="http://quagga.net/"
-SRC_URI="http://www.quagga.net/download/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ppc ~sparc ~x86"
-IUSE="ipv6 snmp pam tcpmd5 bgpclassless ospfapi"
-
-RDEPEND="sys-apps/iproute2
-       >=sys-libs/libcap-1.10-r5
-       snmp? ( net-analyzer/net-snmp )
-       pam? ( sys-libs/pam )"
-DEPEND="${RDEPEND}
-       virtual/libc
-       sys-devel/binutils"
-
-# TCP MD5 for BGP patch for Linux (RFC 2385) 
-MD5_PATCH="ht-20050110-0.98.0-bgp-md5.patch"
-# http://hasso.linux.ee/quagga/ht-20050110-0.98.0-bgp-md5.patch
-
-# Classless prefixes for BGP
-CLASSLESS_PATCH="ht-20040304-classless-bgp.patch"
-# http://hasso.linux.ee/quagga/pending-patches/ht-20040304-classless-bgp.patch
-
-# Connected route fix (Amir)
-CONNECTED_PATCH="amir-connected-route.patch"
-# http://voidptr.sboost.org/quagga/amir-connected-route.patch.bz2
-
-[ -z "${QUAGGA_USER_NAME}" ] && QUAGGA_USER_NAME="quagga"
-[ -z "${QUAGGA_USER_UID}" ] && QUAGGA_USER_UID="-1"
-[ -z "${QUAGGA_GROUP_NAME}" ] && QUAGGA_GROUP_NAME="quagga"
-#[ -z "${QUAGGA_GROUP_GID}" ] && QUAGGA_GROUP_GID=""
-[ -z "${QUAGGA_VTYGROUP}" ] && QUAGGA_VTYGROUP="quagga"
-[ -z "${QUAGGA_USER_SH}" ] && QUAGGA_USER_SH="/bin/false"
-[ -z "${QUAGGA_USER_HOMEDIR}" ] && QUAGGA_USER_HOMEDIR=/var/empty
-[ -z "${QUAGGA_USER_GROUPS}" ] && QUAGGA_USER_GROUPS=${QUAGGA_GROUP_NAME}
-[ -z "${QUAGGA_STATEDIR}" ] && QUAGGA_STATEDIR=/var/run/quagga
-
-pkg_preinst() {
-       enewgroup ${QUAGGA_GROUP_NAME} ${QUAGGA_GROUP_GID}
-       enewuser ${QUAGGA_USER_NAME} ${QUAGGA_USER_UID} ${QUAGGA_USER_SH} ${QUAGGA_USER_HOMEDIR} ${QUAGGA_USER_GROUPS}
-}
-
-src_unpack() {
-       unpack ${A} || die "failed to unpack sources"
-
-       cd ${S} || die "source dir not found"
-       use tcpmd5 && epatch ${FILESDIR}/patches-${PV}/${MD5_PATCH}
-       use bgpclassless && epatch ${FILESDIR}/patches-${PV}/${CLASSLESS_PATCH}
-       # non-upstream connected route patch
-       epatch ${FILESDIR}/patches-${PV}/${CONNECTED_PATCH}
-}
-
-src_compile() {
-       # regenerate configure and co if we touch .ac or .am files
-       #export WANT_AUTOMAKE=1.7
-       #./update-autotools || die
-       autoreconf
-       libtoolize --copy --force
-
-       local myconf="--disable-static --enable-dynamic"
-
-       use ipv6 \
-                       && myconf="${myconf} --enable-ipv6 --enable-ripng --enable-ospf6d --enable-rtadv" \
-                       || myconf="${myconf} --disable-ipv6 --disable-ripngd --disable-ospf6d"
-       use ospfapi \
-                       && myconf="${myconf} --enable-opaque-lsa --enable-ospf-te --enable-ospfclient"
-       use snmp && myconf="${myconf} --enable-snmp"
-       use pam && myconf="${myconf} --with-libpam"
-       use tcpmd5 && myconf="${myconf} --enable-tcp-md5"
-
-       econf \
-               --enable-tcp-zebra \
-               --enable-nssa \
-               --enable-user=${QUAGGA_USER_NAME} \
-               --enable-group=${QUAGGA_GROUP_NAME} \
-               --enable-vty-group=${QUAGGA_VTYGROUP} \
-               --with-cflags="${CFLAGS}" \
-               --enable-vtysh \
-               --sysconfdir=/etc/quagga \
-               --enable-exampledir=/etc/quagga/samples \
-               --localstatedir=${QUAGGA_STATEDIR} \
-               --libdir=/usr/lib/quagga \
-               ${myconf} \
-               || die "configure failed"
-       emake || die "make failed"
-}
-
-src_install() {
-       einstall \
-               localstatedir=${D}/${QUAGGA_STATEDIR} \
-               sysconfdir=${D}/etc/quagga \
-               exampledir=${D}/etc/quagga/samples \
-               libdir=${D}/usr/lib/quagga || die "make install failed"
-
-       keepdir /var/run/quagga || die
-
-       local i MY_SERVICES_LIST="zebra ripd ospfd bgpd"
-       use ipv6 && MY_SERVICES_LIST="${MY_SERVICES_LIST} ripngd ospf6d"
-       for i in ${MY_SERVICES_LIST} ; do
-               newinitd ${FILESDIR}/${i}.init ${i} || die "failed to install ${i} init.d script"
-       done
-       newconfd ${FILESDIR}/zebra.conf zebra || die "failed to install zebra conf.d script"
-
-       if use pam; then
-               insinto /etc/pam.d
-               newins ${FILESDIR}/quagga.pam quagga
-       fi
-
-       newenvd ${FILESDIR}/quagga.env 99quagga
-}
-
-pkg_postinst() {
-       # empty dir for pid files for the new priv separation auth
-       #set proper owner/group/perms even if dir already existed
-       install -d -m0770 -o root -g ${QUAGGA_GROUP_NAME} ${ROOT}/etc/quagga
-       install -d -m0755 -o ${QUAGGA_USER_NAME} -g ${QUAGGA_GROUP_NAME} ${ROOT}/var/run/quagga
-
-       einfo "Sample configuration files can be found in /etc/quagga/samples."
-       einfo "You have to create config files in /etc/quagga before"
-       einfo "starting one of the daemons."
-
-       if use ipv6; then
-               echo
-               ewarn "This version of quagga contains a netlink race condition fix that triggered a kernel bug"
-               ewarn "which affects IPv6 users who have a kernel version < 2.6.13-rc6."
-               ewarn "See following links for more info:"
-               ewarn "   http://lists.quagga.net/pipermail/quagga-dev/2005-June/003507.html"
-               ewarn "   http://bugzilla.quagga.net/show_bug.cgi?id=196"
-       fi
-}
index c90f9c2dbe18b49041d85eeb2f90fed4bc96d943..e37f1573c7610f2e7d6bca9f1b8e46e7b0cf1f8c 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.98.4.ebuild,v 1.4 2005/09/14 11:11:08 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/quagga/quagga-0.98.4.ebuild,v 1.5 2005/10/14 05:19:12 mrness Exp $
 
 inherit eutils multilib
 
@@ -11,7 +11,7 @@ SRC_URI="http://www.quagga.net/download/${P}.tar.gz
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~ppc ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~sparc x86"
 IUSE="ipv6 snmp pam tcpmd5 bgpclassless ospfapi realms"
 
 RDEPEND="sys-apps/iproute2
@@ -111,12 +111,18 @@ pkg_postinst() {
        einfo "You have to create config files in /etc/quagga before"
        einfo "starting one of the daemons."
 
+       if use tcpmd5; then
+               echo
+               ewarn "TCP MD5 for BGP needs a patched kernel!"
+               einfo "See http://hasso.linux.ee/quagga/bgp-md5.en.php for more info."
+       fi
+
        if use ipv6; then
                echo
                ewarn "This version of quagga contains a netlink race condition fix that triggered a kernel bug"
                ewarn "which affects IPv6 users who have a kernel version < 2.6.13-rc6."
-               ewarn "See following links for more info:"
-               ewarn "   http://lists.quagga.net/pipermail/quagga-dev/2005-June/003507.html"
-               ewarn "   http://bugzilla.quagga.net/show_bug.cgi?id=196"
+               einfo "See following links for more info:"
+               einfo "   http://lists.quagga.net/pipermail/quagga-dev/2005-June/003507.html"
+               einfo "   http://bugzilla.quagga.net/show_bug.cgi?id=196"
        fi
 }