Bug#411903: Debian MRTG missing required libraries for logging

Niko Tyni ntyni at debian.org
Thu Aug 7 18:25:49 UTC 2008


On Thu, Aug 07, 2008 at 12:19:48PM -0500, Adam Majer wrote:
> I'm cc'ing perl maintainers list. Maybe they'll have an idea why this
> bug even appears.

(The debian-perl list would be a better choice for the next time)

> if (eval {require Socket6;} &&
>     eval {require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) {

> > 2008-08-07 15:29:10 -- Can't locate IO/Socket/INET6.pm in @INC (@INC
> > contains: /usr/bin/../lib/mrtg2 /usr/bin /etc/perl
> > /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5
> > /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8
> > /usr/local/lib/site_perl .) at line 138.

I think it's invoking a $SIG{__DIE__} handler from the mrtg script.

The SNMP_Session module shipped in the mrtg source package (but not used
in the Debian binary package) has this relevant modification wrt. the
one in libsnmp-session-perl/1.08-1:

--- /usr/share/perl5/SNMP_Session.pm	2005-12-10 23:29:09.000000000 +0200
+++ lib/mrtg2/SNMP_Session.pm	2006-09-06 16:42:50.000000000 +0300
@@ -135,8 +135,8 @@
     $ipv6_addr_len = undef;
     $SNMP_Session::ipv6available = 0;
 
-    if (eval {require Socket6;} &&
-	eval {require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) {
+    if (eval {local $SIG{__DIE__};require Socket6;} &&
+	eval {local $SIG{__DIE__};require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) {
 	import Socket6;
 	$ipv6_addr_len = length(pack_sockaddr_in6(161, inet_pton(AF_INET6(), "::1")));
 	$SNMP_Session::ipv6available = 1;

This was apparently integrated into libsnmp-session-perl upstream at
some point after Etch, since the current sid version (1.12-1) has it.

The options for fixing this for Etch would be to either install and
use the modified SNMP_Session.pm, or just bite the bullet and depend
on libio-socket-inet6-perl.

Cheers,
-- 
Niko Tyni   ntyni at debian.org



More information about the pkg-perl-maintainers mailing list