From 299e917c17619f800f0c21cf43209065b608223f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 24 Feb 2012 23:15:21 +0000 Subject: Fri Feb 24 23:15:21 UTC 2012 --- extra/net-snmp/PKGBUILD | 17 +++++++--- extra/net-snmp/libnl32.patch | 80 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 extra/net-snmp/libnl32.patch (limited to 'extra/net-snmp') 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 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 -- cgit v1.2.3-54-g00ecf