diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2007-08-17 01:13:43 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2007-08-17 01:13:43 +0000 |
commit | daa9ddcce214bcecb9be69cf66e432f8b6b68fd6 (patch) | |
tree | 708cb1f46e8ae648b4227cc29ccfa042531e4d25 | |
parent | ppc stable (diff) | |
download | gentoo-2-daa9ddcce214bcecb9be69cf66e432f8b6b68fd6.tar.gz gentoo-2-daa9ddcce214bcecb9be69cf66e432f8b6b68fd6.tar.bz2 gentoo-2-daa9ddcce214bcecb9be69cf66e432f8b6b68fd6.zip |
Bump to new upstream release, also apply patch for fixed clientaddr usage.
(Portage version: 2.1.3.4)
-rw-r--r-- | net-analyzer/net-snmp/ChangeLog | 8 | ||||
-rw-r--r-- | net-analyzer/net-snmp/files/digest-net-snmp-5.4.1 | 3 | ||||
-rw-r--r-- | net-analyzer/net-snmp/files/net-snmp-5.4.1-clientaddr-fix.patch | 63 | ||||
-rw-r--r-- | net-analyzer/net-snmp/net-snmp-5.4.1.ebuild | 175 |
4 files changed, 248 insertions, 1 deletions
diff --git a/net-analyzer/net-snmp/ChangeLog b/net-analyzer/net-snmp/ChangeLog index 23a031eb6814..105c39a2efe4 100644 --- a/net-analyzer/net-snmp/ChangeLog +++ b/net-analyzer/net-snmp/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-analyzer/net-snmp # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/net-snmp/ChangeLog,v 1.151 2007/05/17 20:22:38 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/net-snmp/ChangeLog,v 1.152 2007/08/17 01:13:42 robbat2 Exp $ + +*net-snmp-5.4.1 (17 Aug 2007) + + 17 Aug 2007; Robin H. Johnson <robbat2@gentoo.org> + +files/net-snmp-5.4.1-clientaddr-fix.patch, +net-snmp-5.4.1.ebuild: + Bump to new upstream release, also apply patch for fixed clientaddr usage. 17 May 2007; Raúl Porcel <armin76@gentoo.org> net-snmp-5.4.ebuild: alpha stable wrt #163094 diff --git a/net-analyzer/net-snmp/files/digest-net-snmp-5.4.1 b/net-analyzer/net-snmp/files/digest-net-snmp-5.4.1 new file mode 100644 index 000000000000..34865f92ea1e --- /dev/null +++ b/net-analyzer/net-snmp/files/digest-net-snmp-5.4.1 @@ -0,0 +1,3 @@ +MD5 6c974df7a5a5b1579f72115e6b045bda net-snmp-5.4.1.tar.gz 5122455 +RMD160 3723488dab8d164702a7d55c9c72eeaec07dd50c net-snmp-5.4.1.tar.gz 5122455 +SHA256 0ea976722c993c87dede8eb6348e6feb059e3851bbef2de824bf18ac97cdb565 net-snmp-5.4.1.tar.gz 5122455 diff --git a/net-analyzer/net-snmp/files/net-snmp-5.4.1-clientaddr-fix.patch b/net-analyzer/net-snmp/files/net-snmp-5.4.1-clientaddr-fix.patch new file mode 100644 index 000000000000..116e524f0c85 --- /dev/null +++ b/net-analyzer/net-snmp/files/net-snmp-5.4.1-clientaddr-fix.patch @@ -0,0 +1,63 @@ +Fix clientaddr functionality. + +Previously, the clientaddr option in snmp.conf was parsed, but the actual +clientaddr was used to bind(), yet sendmsg() was still called with 0.0.0.0. + +This patch alters: +- netsnmp_udp_fmtaddr: include both sides of addr_pair for debugging. +- netsnmp_udp_transport: Set addr_pair->local_addr in the remote && client_socket path. +- netsnmp_udp_transport: Print a debugging error on failure to bind() +- netsnmp_udp_transport: Print out the full client open addr_pair data. + +Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> +Status: Merged in upstream r16654 +Tracking-URL: https://sourceforge.net/tracker/?func=detail&atid=312694&aid=1775124&group_id=12694 + +diff -NuwbBar --exclude docs --exclude '*.o' --exclude 'config.*' --exclude perl --exclude '*~' net-snmp-5.4.old/snmplib/snmpUDPDomain.c net-snmp-5.4/snmplib/snmpUDPDomain.c +--- net-snmp-5.4.old/snmplib/snmpUDPDomain.c 2006-09-19 16:42:17.000000000 -0700 ++++ net-snmp-5.4/snmplib/snmpUDPDomain.c 2007-08-15 19:17:27.000000000 -0700 +@@ -100,12 +100,15 @@ netsnmp_udp_fmtaddr(netsnmp_transport *t + struct sockaddr_in *to = NULL; + char tmp[64]; + to = (struct sockaddr_in *) &(addr_pair->remote_addr); ++ /* Using strdup on the output of inet_ntoa is important! */ + if (to == NULL) { +- return strdup("UDP: unknown"); ++ sprintf(tmp, "UDP: [%s]->unknown", ++ strdup(inet_ntoa(addr_pair->local_addr))); ++ } else { ++ sprintf(tmp, "UDP: [%s]->[%s]:%hu", ++ strdup(inet_ntoa(addr_pair->local_addr)), ++ strdup(inet_ntoa(to->sin_addr)), ntohs(to->sin_port)); + } +- +- sprintf(tmp, "UDP: [%s]:%hu", +- inet_ntoa(to->sin_addr), ntohs(to->sin_port)); + return strdup(tmp); + } + } +@@ -670,11 +673,23 @@ netsnmp_udp_transport(struct sockaddr_in + NETSNMP_DS_LIB_CLIENT_ADDR); + if (client_socket) { + struct sockaddr_in client_addr; ++ int ret; + netsnmp_sockaddr_in2(&client_addr, client_socket, NULL); ++ addr_pair.local_addr = client_addr.sin_addr; + client_addr.sin_port = 0; +- bind(t->sock, (struct sockaddr *)&client_addr, ++ ret = bind(t->sock, (struct sockaddr *)&client_addr, + sizeof(struct sockaddr)); ++ if(ret) ++ DEBUGMSGTL(("netsnmp_udp", "failed to bind for clientaddr: %d %s\n", ++ errno,strerror(errno))); ++ /* TODO: should we exit here? */ + } ++ ++ str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair, ++ sizeof(netsnmp_udp_addr_pair)); ++ DEBUGMSGTL(("netsnmp_udp", "client open %s\n", str)); ++ free(str); ++ + /* + * Save the (remote) address in the + * transport-specific data pointer for later use by netsnmp_udp_send. diff --git a/net-analyzer/net-snmp/net-snmp-5.4.1.ebuild b/net-analyzer/net-snmp/net-snmp-5.4.1.ebuild new file mode 100644 index 000000000000..2872dc86469a --- /dev/null +++ b/net-analyzer/net-snmp/net-snmp-5.4.1.ebuild @@ -0,0 +1,175 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/net-snmp/net-snmp-5.4.1.ebuild,v 1.1 2007/08/17 01:13:42 robbat2 Exp $ + +inherit fixheadtails flag-o-matic perl-module + +DESCRIPTION="Software for generating and retrieving SNMP data" +HOMEPAGE="http://net-snmp.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="as-is BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="diskio doc elf ipv6 lm_sensors mfd-rewrites minimal perl rpm selinux smux ssl tcpd X sendmail" + +DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d ) + tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) + rpm? ( + app-arch/rpm + dev-libs/popt + app-arch/bzip2 + >=sys-libs/zlib-1.1.4 + ) + elf? ( dev-libs/elfutils ) + lm_sensors? ( sys-apps/lm_sensors )" + +RDEPEND="${DEPEND} + perl? ( + X? ( dev-perl/perl-tk ) + !minimal? ( dev-perl/TermReadKey ) + ) + selinux? ( sec-policy/selinux-snmpd )" + +DEPEND="${DEPEND} + >=sys-apps/sed-4 + doc? ( app-doc/doxygen )" + +src_unpack() { + unpack ${A} + cd "${S}" + +# The lm_sensors patch has a memory leak +# If you can help, please attach a patch to bug 109785 + +# if use lm_sensors; then +# if use x86 || use amd64; then +# epatch "${FILESDIR}"/${PN}-lm_sensors.patch +# else +# eerror "Unfortunatly you are trying to enable lm_sensors support for an unsupported arch." +# eerror "please check the availability of sys-apps/lm_sensors - if it is available on" +# eerror "your arch, please file a bug about this." +# die "lm_sensors patch error: unsupported arch." +# fi +# fi + + # fix access violation in make check + sed -i -e 's/\(snmpd.*\)-Lf/\1-l/' testing/eval_tools.sh || \ + die "sed eval_tools.sh failed" + # fix path in fixproc + sed -i -e 's|\(database_file =.*\)/local\(.*\)$|\1\2|' local/fixproc || \ + die "sed fixproc failed" + + # Fix usage of clientaddr + EPATCH_OPTS="-p1" epatch "${FILESDIR}"/${PN}-5.4.1-clientaddr-fix.patch + + ht_fix_all +} + +src_compile() { + local mibs + + strip-flags + + # filter for bug #145960 + # as it seems that the option is not enough + filter-ldflags -Wl,--as-needed + + mibs="host ucd-snmp/dlmod" + use smux && mibs="${mibs} smux" + use sendmail && mibs="${mibs} mibII/mta_sendmail" + use lm_sensors && mibs="${mibs} ucd-snmp/lmSensors" + use diskio && mibs="${mibs} ucd-snmp/diskio" + + econf \ + --with-install-prefix="${D}" \ + --with-sys-location="Unknown" \ + --with-sys-contact="root@Unknown" \ + --with-default-snmp-version="3" \ + --with-mib-modules="${mibs}" \ + --with-logfile="/var/log/net-snmpd.log" \ + --with-persistent-directory="/var/lib/net-snmp" \ + --enable-ucd-snmp-compatibility \ + --enable-shared \ + --enable-as-needed \ + $(use_enable mfd-rewrites) \ + $(use_enable perl embedded-perl) \ + $(use_enable ipv6) \ + $(use_enable !ssl internal-md5) \ + $(use_with ssl openssl) \ + $(use_with tcpd libwrap) \ + $(use_with rpm) \ + $(use_with rpm bzip2) \ + $(use_with rpm zlib) \ + $(use_with elf) \ + || die "econf failed" + + emake -j1 || die "emake failed" + + if use perl ; then + emake perlmodules || die "compile perl modules problem" + fi + + if use doc ; then + einfo "Building HTML Documentation" + make docsdox || die "failed to build docs" + fi +} + +src_test() { + cd testing + if ! make test ; then + echo + einfo "Don't be alarmed if a few tests FAIL." + einfo "This could happen for several reasons:" + einfo " - You don't already have a working configuration." + einfo " - Your ethernet interface isn't properly configured." + echo + fi +} + +src_install () { + make DESTDIR="${D}" install || die "make install failed" + + if use perl ; then + make DESTDIR="${D}" perlinstall || die "make perlinstall failed" + fixlocalpod + + use X || rm -f "${D}/usr/bin/tkmib" + else + rm -f "${D}/usr/bin/mib2c" "${D}/usr/bin/tkmib" "${D}/usr/bin/snmpcheck" + fi + + dodoc AGENT.txt ChangeLog FAQ INSTALL NEWS PORTING README* TODO + newdoc EXAMPLE.conf.def EXAMPLE.conf + + use doc && dohtml docs/html/* + + keepdir /etc/snmp /var/lib/net-snmp + + newinitd "${FILESDIR}"/snmpd.rc7 snmpd + newconfd "${FILESDIR}"/snmpd.conf snmpd + + newinitd "${FILESDIR}"/snmptrapd.rc7 snmptrapd + newconfd "${FILESDIR}"/snmptrapd.conf snmptrapd + + # Remove everything, keeping only the snmpd, snmptrapd, MIBs, libs, and includes. + if use minimal; then + elog "USE=minimal is set. Cleaning up excess cruft for a embedded/minimal/server only install." + rm -rf + "${D}"/usr/bin/{encode_keychange,snmp{get,getnext,set,usm,walk,bulkwalk,table,trap,bulkget,translate,status,delta,test,df,vacm,netstat,inform,snmpcheck}} + rm -rf "${D}"/usr/share/snmp/snmpconf-data "${D}"/usr/share/snmp/*.conf + rm -rf "${D}"/usr/bin/{fixproc,traptoemail} "${D}"/usr/bin/snmpc{heck,onf} + find "${D}" -name '*.pl' -exec rm -f '{}' \; + use ipv6 || rm -rf "${D}"/usr/share/snmp/mibs/IPV6* + fi + + # bug 113788, install example config + insinto /etc/snmp + newins "${S}"/EXAMPLE.conf snmpd.conf.example +} + +pkg_postinst() { + elog "An example configuration file has been installed in" + elog "/etc/snmp/snmpd.conf.example." +} |