From 497abd5527cf54ac717adc268619f10324732808 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Wed, 15 Aug 2012 10:49:00 -0500
Subject: net-snmp  5.7.1 -new

---
 abs/extra/net-snmp/PKGBUILD      | 58 +++++++++++++++++++++++++++++
 abs/extra/net-snmp/libnl32.patch | 80 ++++++++++++++++++++++++++++++++++++++++
 abs/extra/net-snmp/snmpd.confd   |  5 +++
 abs/extra/net-snmp/snmpd.rc      | 39 ++++++++++++++++++++
 4 files changed, 182 insertions(+)
 create mode 100644 abs/extra/net-snmp/PKGBUILD
 create mode 100644 abs/extra/net-snmp/libnl32.patch
 create mode 100644 abs/extra/net-snmp/snmpd.confd
 create mode 100644 abs/extra/net-snmp/snmpd.rc

diff --git a/abs/extra/net-snmp/PKGBUILD b/abs/extra/net-snmp/PKGBUILD
new file mode 100644
index 0000000..d70068f
--- /dev/null
+++ b/abs/extra/net-snmp/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 160499 2012-06-02 10:26:47Z bluewind $
+# Maintainer: 
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=net-snmp
+pkgver=5.7.1
+pkgrel=3
+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/"
+license=('BSD')
+depends=('openssl' 'libnl' 'pciutils')
+makedepends=('python2-distribute')
+optdepends=('perl-term-readkey: for snmpcheck application' 
+            'perl-tk: for snmpcheck and tkmib applications'
+            'python2: for the python modules')
+provides=('ucd-snmp')
+backup=('etc/conf.d/snmpd')
+options=('!libtool' '!makeflags' '!emptydirs')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.asc}
+        snmpd.confd snmpd.rc libnl32.patch)
+sha1sums=('ddb82ce1112ef0642869d3c8d7c7e585f151849a'
+          '2bdc2839ce09d7daa608cd54687fa8beb47ed907'
+          'cf811da9e57bbca34d8e2a3c358bb3bfc0c2b33b'
+          '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 \
+    --mandir=/usr/share/man \
+    --enable-ucd-snmp-compatibility \
+    --enable-ipv6 \
+    --with-python-modules \
+    --with-default-snmp-version="3" \
+    --with-sys-contact="root@localhost" \
+    --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" \
+    --disable-static
+  make NETSNMP_DONT_CHECK_VERSION=1
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" INSTALL_PREFIX="${pkgdir}" INSTALLDIRS=vendor install
+  install -D -m755 "${srcdir}/snmpd.rc" "${pkgdir}/etc/rc.d/snmpd"
+  install -D -m644 "${srcdir}/snmpd.confd" "${pkgdir}/etc/conf.d/snmpd"
+  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/extra/net-snmp/libnl32.patch b/abs/extra/net-snmp/libnl32.patch
new file mode 100644
index 0000000..d93d7ef
--- /dev/null
+++ b/abs/extra/net-snmp/libnl32.patch
@@ -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
diff --git a/abs/extra/net-snmp/snmpd.confd b/abs/extra/net-snmp/snmpd.confd
new file mode 100644
index 0000000..926b09b
--- /dev/null
+++ b/abs/extra/net-snmp/snmpd.confd
@@ -0,0 +1,5 @@
+#
+# Parameters to be passed to snmpd
+#
+SNMPD_ARGS=""
+
diff --git a/abs/extra/net-snmp/snmpd.rc b/abs/extra/net-snmp/snmpd.rc
new file mode 100644
index 0000000..b00c09f
--- /dev/null
+++ b/abs/extra/net-snmp/snmpd.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/snmpd
+
+PID=`pidof -o %PPID /usr/sbin/snmpd`
+case "$1" in
+  start)
+    stat_busy "Starting Net-SNMP"
+    [ -z "$PID" ] && /usr/sbin/snmpd $SNMPD_ARGS
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      echo $PID > /var/run/snmpd.pid
+      add_daemon snmpd
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping Net-SNMP"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm /var/run/snmpd.pid
+      rm_daemon snmpd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 2
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
+exit 0
-- 
cgit v0.12

