Date: Thursday, February 9, 2012 @ 14:20:25
  Author: heftig
Revision: 149722

libnl3

Added:
  net-snmp/trunk/libnl32.patch
Modified:
  net-snmp/trunk/PKGBUILD

---------------+
 PKGBUILD      |   15 +++++++---
 libnl32.patch |   80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2012-02-09 18:49:54 UTC (rev 149721)
+++ PKGBUILD    2012-02-09 19:20:25 UTC (rev 149722)
@@ -4,7 +4,7 @@
 
 pkgname=net-snmp
 pkgver=5.7.1
-pkgrel=1
+pkgrel=2
 pkgdesc="A suite of applications used to implement SNMP v1, SNMP v2c and SNMP 
v3 using both IPv4 and IPv6"
 arch=('i686' 'x86_64')
 url="http://www.net-snmp.org/";
@@ -18,14 +18,20 @@
 backup=('etc/conf.d/snmpd')
 options=('!libtool' '!makeflags' '!emptydirs')
 
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.asc}
-        snmpd.confd snmpd.rc)
+        snmpd.confd snmpd.rc libnl32.patch)
 sha1sums=('ddb82ce1112ef0642869d3c8d7c7e585f151849a'
           '2bdc2839ce09d7daa608cd54687fa8beb47ed907'
           'cf811da9e57bbca34d8e2a3c358bb3bfc0c2b33b'
-          '90600c0141eed10d6e3ca3ccc97ad8dda15c2112')
+          '90600c0141eed10d6e3ca3ccc97ad8dda15c2112'
+          '74a9848b95f63378eb1753fc309d2b74de5afb0f')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+
+  # 
http://sourceforge.net/tracker/index.php?func=detail&aid=3250304&group_id=12694&atid=112694
+  patch -Np1 -i "$srcdir/libnl32.patch"
+  autoreconf -f -i
+
   sed -i -e "s:\(install --basedir=\$\$dir\):\1 --root='${pkgdir}':" 
Makefile.in
   PYTHONPROG=/usr/bin/python2 ./configure --prefix=/usr \
     --sysconfdir=/etc \
@@ -38,7 +44,8 @@
     --with-sys-location="Unknown" \
     --with-logfile="/var/log/snmpd.log" \
     --with-mib-modules="host misc/ipfwacc ucd-snmp/diskio tunnel 
ucd-snmp/dlmod" \
-    --with-persistent-directory="/var/net-snmp"
+    --with-persistent-directory="/var/net-snmp" \
+    --disable-static
   make NETSNMP_DONT_CHECK_VERSION=1
 }
 

Added: libnl32.patch
===================================================================
--- libnl32.patch                               (rev 0)
+++ libnl32.patch       2012-02-09 19:20:25 UTC (rev 149722)
@@ -0,0 +1,80 @@
+diff -u -r net-snmp-5.7.1/agent/mibgroup/mibII/tcpTable.c 
net-snmp-5.7.1-libnl32/agent/mibgroup/mibII/tcpTable.c
+--- net-snmp-5.7.1/agent/mibgroup/mibII/tcpTable.c     2011-09-28 
06:53:47.000000000 +0200
++++ net-snmp-5.7.1-libnl32/agent/mibgroup/mibII/tcpTable.c     2012-02-09 
20:02:49.136022132 +0100
+@@ -566,8 +566,9 @@
+ static int
+ tcpTable_load_netlink(void)
+ {
++      int err;
+       /*  TODO: perhaps use permanent nl handle? */
+-      struct nl_handle *nl = nl_handle_alloc();
++      struct nl_sock *nl = nl_socket_alloc();
+ 
+       if (nl == NULL) {
+               DEBUGMSGTL(("mibII/tcpTable", "Failed to allocate netlink 
handle\n"));
+@@ -575,10 +576,10 @@
+               return -1;
+       }
+ 
+-      if (nl_connect(nl, NETLINK_INET_DIAG) < 0) {
+-              DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: 
%s\n", nl_geterror()));
+-              snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", 
nl_geterror());
+-              nl_handle_destroy(nl);
++      if ((err = nl_connect(nl, NETLINK_INET_DIAG)) < 0) {
++              DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: 
%s\n", nl_geterror(err)));
++              snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", 
nl_geterror(err));
++              nl_socket_free(nl);
+               return -1;
+       }
+ 
+@@ -590,10 +591,10 @@
+       struct nl_msg *nm = nlmsg_alloc_simple(TCPDIAG_GETSOCK, 
NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST);
+       nlmsg_append(nm, &req, sizeof(struct inet_diag_req), 0);
+ 
+-      if (nl_send_auto_complete(nl, nm) < 0) {
+-              DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", 
nl_geterror()));
+-              snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", 
nl_geterror());
+-              nl_handle_destroy(nl);
++      if ((err = nl_send_auto_complete(nl, nm)) < 0) {
++              DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", 
nl_geterror(err)));
++              snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", 
nl_geterror(err));
++              nl_socket_free(nl);
+               return -1;
+       }
+       nlmsg_free(nm);
+@@ -604,9 +605,9 @@
+ 
+       while (running) {
+               if ((len = nl_recv(nl, &peer, &buf, NULL)) <= 0) {
+-                      DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", 
nl_geterror()));
+-                      snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", 
nl_geterror());
+-                      nl_handle_destroy(nl);
++                      DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", 
nl_geterror(len)));
++                      snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", 
nl_geterror(len));
++                      nl_socket_free(nl);
+                       return -1;
+               }
+ 
+@@ -655,7 +656,7 @@
+               free(buf);
+       }
+ 
+-      nl_handle_destroy(nl);
++      nl_socket_free(nl);
+ 
+       if (tcp_head) {
+               DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table using 
netlink\n"));
+diff -u -r net-snmp-5.7.1/configure.d/config_os_libs2 
net-snmp-5.7.1-libnl32/configure.d/config_os_libs2
+--- net-snmp-5.7.1/configure.d/config_os_libs2 2011-09-28 06:53:47.000000000 
+0200
++++ net-snmp-5.7.1-libnl32/configure.d/config_os_libs2 2012-02-09 
20:10:44.282165275 +0100
+@@ -224,8 +224,9 @@
+ if test "x$with_nl" != "xno"; then
+     case $target_os in
+     linux*) # Check for libnl (linux)
++      CPPFLAGS="$CPPFLAGS $(pkg-config --cflags-only-I libnl-3.0)"
+       NETSNMP_SEARCH_LIBS(
+-          nl_connect, nl,
++          nl_connect, nl-3,
+           [AC_CHECK_HEADERS(netlink/netlink.h)],,, LMIBLIBS)
+     ;;
+     esac

Reply via email to