diff options
Diffstat (limited to 'testing/net-snmp')
-rw-r--r-- | testing/net-snmp/PKGBUILD | 60 | ||||
-rw-r--r-- | testing/net-snmp/libnl32.patch | 80 | ||||
-rw-r--r-- | testing/net-snmp/snmpd.confd | 5 | ||||
-rw-r--r-- | testing/net-snmp/snmpd.rc | 39 | ||||
-rw-r--r-- | testing/net-snmp/snmpd.service | 11 |
5 files changed, 195 insertions, 0 deletions
diff --git a/testing/net-snmp/PKGBUILD b/testing/net-snmp/PKGBUILD new file mode 100644 index 000000000..3bcad6c09 --- /dev/null +++ b/testing/net-snmp/PKGBUILD @@ -0,0 +1,60 @@ +# $Id: PKGBUILD 168010 2012-10-05 06:54:12Z eric $ +# Maintainer: +# Contributor: Dale Blount <dale@archlinux.org> + +pkgname=net-snmp +pkgver=5.7.1 +pkgrel=4 +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 snmpd.service libnl32.patch) +sha1sums=('ddb82ce1112ef0642869d3c8d7c7e585f151849a' + '2bdc2839ce09d7daa608cd54687fa8beb47ed907' + 'cf811da9e57bbca34d8e2a3c358bb3bfc0c2b33b' + '90600c0141eed10d6e3ca3ccc97ad8dda15c2112' + 'f59ddc049c1c689f04e68c3c7cd8b8e301df3158' + '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 "${srcdir}/snmpd.service" "${pkgdir}/usr/lib/systemd/system/snmpd.service" + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/testing/net-snmp/libnl32.patch b/testing/net-snmp/libnl32.patch new file mode 100644 index 000000000..d93d7ef67 --- /dev/null +++ b/testing/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/testing/net-snmp/snmpd.confd b/testing/net-snmp/snmpd.confd new file mode 100644 index 000000000..926b09bbf --- /dev/null +++ b/testing/net-snmp/snmpd.confd @@ -0,0 +1,5 @@ +# +# Parameters to be passed to snmpd +# +SNMPD_ARGS="" + diff --git a/testing/net-snmp/snmpd.rc b/testing/net-snmp/snmpd.rc new file mode 100644 index 000000000..b00c09f4f --- /dev/null +++ b/testing/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 diff --git a/testing/net-snmp/snmpd.service b/testing/net-snmp/snmpd.service new file mode 100644 index 000000000..111a8d6a9 --- /dev/null +++ b/testing/net-snmp/snmpd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Simple Network Management Protocol (SNMP) Daemon +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/snmpd +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target |