summaryrefslogtreecommitdiff
path: root/extra/net-snmp
diff options
context:
space:
mode:
Diffstat (limited to 'extra/net-snmp')
-rw-r--r--extra/net-snmp/PKGBUILD17
-rw-r--r--extra/net-snmp/libnl32.patch80
2 files changed, 92 insertions, 5 deletions
diff --git a/extra/net-snmp/PKGBUILD b/extra/net-snmp/PKGBUILD
index 910d86329..256f31f19 100644
--- a/extra/net-snmp/PKGBUILD
+++ b/extra/net-snmp/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 139480 2011-10-02 02:49:38Z eric $
+# $Id: PKGBUILD 150902 2012-02-23 13:55:13Z allan $
# Maintainer:
# Contributor: Dale Blount <dale@archlinux.org>
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 @@ 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)
+ 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 @@ build() {
--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
}
diff --git a/extra/net-snmp/libnl32.patch b/extra/net-snmp/libnl32.patch
new file mode 100644
index 000000000..d93d7ef67
--- /dev/null
+++ b/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