spamd broken after perl upgrade

Hi,

After the upgrade of Perl to 5.14, and reinstallation of all dependent ports, spamassassin (spamd) doesn't work anymore. It exits with:

Code:
Starting spamd.
Subroutine IO::Socket::INET6::sockaddr_in6 redefined at /usr/local/lib/perl5/5.14.0/Exporter.pm line 67.
 at /usr/local/lib/perl5/site_perl/5.14.0/IO/Socket/INET6.pm line 21

Anyone an idea what's happening?

Thanks & regards,
Marco
 
Code:
cd /usr/local/lib/perl5/site_perl/
ls -Gacd */
See 5.12 any files remaining? rebuild the ports that put them there?
Code:
pkg_which ... [file]
portmaster -d -B -P /var/db/pkg/p5-[portname-number]
That last command may error out though, easy but lengthy to fix and
complete. One just needs pen and paper to follow along...
 
jb_fvwm2 said:
Code:
cd /usr/local/lib/perl5/site_perl/
ls -Gacd */
See 5.12 any files remaining? rebuild the ports that put them there?
I'm getting:
Code:
5.10.0/ 5.10.1/ 5.12.2/ 5.12.3/ 5.14.0/ 5.8.7/  5.8.8/  5.8.9/
Code:
pkg_which ... [file]
portmaster -d -B -P /var/db/pkg/p5-[portname-number]
That last command may error out though, easy but lengthy to fix and
complete. One just needs pen and paper to follow along...
I don't use portmaster but portupgrade. What does it do?
 
MarcoB said:
I'm getting:
Code:
5.10.0/ 5.10.1/ 5.12.2/ 5.12.3/ 5.14.0/ 5.8.7/  5.8.8/  5.8.9/

I don't use portmaster but portupgrade. What does it do?

Essentially the same thing as
# portupgrade -P -f p5-\*

or the simpler version shown in /usr/ports/UPDATING:
# portmaster -r perl-

That last one doesn't try to use packages.
 
I've already reinstalled all ports (that took 3 days) depending on perl, including all p5- ports. I really don't want to do that again.
 
Maybe spamd needs to be adjusted to work with Perl 5.14. Odd that all the old Perl directories are still there, though.
 
Code:
cd 5.10.1
find . -type f | tee -a /tmp/p5-list.file && head -20 /tmp/p5-list.file
Any files?
Code:
pkg_which [file]
I just finished something similar with 5.10.1 > 5.12, took a while but I am experienced with making it take a lot less time than it could.
the
Code:
portmaster -d -B -i -P /var/db/pkg/p5- ### - ###
can be done without portmaster, but portmaster *might* be quicker.
 
jb_fvwm2 said:
Code:
cd 5.10.1
find . -type f | tee -a /tmp/p5-list.file && head -20 /tmp/p5-list.file
Any files?
This gives:
Code:
./mach/auto/NetSNMP/ASN/ASN.so
./mach/auto/NetSNMP/ASN/ASN.bs
./mach/auto/NetSNMP/ASN/autosplit.ix
./mach/auto/NetSNMP/OID/OID.so
./mach/auto/NetSNMP/OID/OID.bs
./mach/auto/NetSNMP/OID/autosplit.ix
./mach/auto/NetSNMP/TrapReceiver/TrapReceiver.so
./mach/auto/NetSNMP/TrapReceiver/TrapReceiver.bs
./mach/auto/NetSNMP/TrapReceiver/autosplit.ix
./mach/auto/NetSNMP/agent/default_store/default_store.so
./mach/auto/NetSNMP/agent/default_store/default_store.bs
./mach/auto/NetSNMP/agent/default_store/autosplit.ix
./mach/auto/NetSNMP/agent/agent.so
./mach/auto/NetSNMP/agent/agent.bs
./mach/auto/NetSNMP/agent/autosplit.ix
./mach/auto/NetSNMP/default_store/default_store.so
./mach/auto/NetSNMP/default_store/default_store.bs
./mach/auto/NetSNMP/default_store/autosplit.ix
./mach/auto/SNMP/SNMP.so
./mach/auto/SNMP/SNMP.bs
./mach/auto/SNMP/autosplit.ix
./mach/auto/Compress/Zlib/.packlist
./mach/auto/IO/Compress/Base/.packlist
./mach/auto/IO/Compress/Bzip2/.packlist
./mach/auto/Razor2/Preproc/deHTMLxs/deHTMLxs.so
./mach/auto/Razor2/Preproc/deHTMLxs/deHTMLxs.bs
./mach/auto/Razor2/Preproc/deHTMLxs/autosplit.ix
./mach/auto/Razor2/Syslog/autosplit.ix
./mach/auto/razor-agents/.packlist
./mach/auto/Bundle/NetSNMP/.packlist
./mach/auto/mime-construct/.packlist
./mach/Bundle/Makefile.subs.pl
./mach/Razor2/Client/Core.pm
./mach/Razor2/Client/Version.pm
./mach/Razor2/Client/Config.pm
./mach/Razor2/Client/Agent.pm
./mach/Razor2/Client/Engine.pm
./mach/Razor2/Engine/VR8.pm
./mach/Razor2/Preproc/deBase64.pm
./mach/Razor2/Preproc/deHTML_comment.pm
./mach/Razor2/Preproc/deQP.pm
./mach/Razor2/Preproc/deNewline.pm
./mach/Razor2/Preproc/enBase64.pm
./mach/Razor2/Preproc/Manager.pm
./mach/Razor2/Preproc/deHTML.pm
./mach/Razor2/Preproc/deHTMLxs.pm
./mach/Razor2/Signature/Whiplash.pm
./mach/Razor2/Signature/Ephemeral.pm
./mach/Razor2/Logger.pm
./mach/Razor2/String.pm
./mach/Razor2/Errorhandler.pm
./mach/Razor2/Syslog.pm
./mach/NetSNMP/agent/netsnmp_request_infoPtr.pm
./mach/NetSNMP/agent/Support.pm
./mach/NetSNMP/agent/default_store.pm
./mach/NetSNMP/default_store.pm
./mach/NetSNMP/ASN.pm
./mach/NetSNMP/OID.pm
./mach/NetSNMP/agent.pm
./mach/NetSNMP/TrapReceiver.pm
./mach/SNMP.pm
./auto/Compress/Zlib/autosplit.ix
./mach/auto/NetSNMP/ASN/ASN.so
./mach/auto/NetSNMP/ASN/ASN.bs
./mach/auto/NetSNMP/ASN/autosplit.ix
./mach/auto/NetSNMP/OID/OID.so
./mach/auto/NetSNMP/OID/OID.bs
./mach/auto/NetSNMP/OID/autosplit.ix
./mach/auto/NetSNMP/TrapReceiver/TrapReceiver.so
./mach/auto/NetSNMP/TrapReceiver/TrapReceiver.bs
./mach/auto/NetSNMP/TrapReceiver/autosplit.ix
./mach/auto/NetSNMP/agent/default_store/default_store.so
./mach/auto/NetSNMP/agent/default_store/default_store.bs
./mach/auto/NetSNMP/agent/default_store/autosplit.ix
./mach/auto/NetSNMP/agent/agent.so
./mach/auto/NetSNMP/agent/agent.bs
./mach/auto/NetSNMP/agent/autosplit.ix
./mach/auto/NetSNMP/default_store/default_store.so
./mach/auto/NetSNMP/default_store/default_store.bs
./mach/auto/NetSNMP/default_store/autosplit.ix
./mach/auto/SNMP/SNMP.so
./mach/auto/SNMP/SNMP.bs
 
Use pkg_info -W on one of those old module files to see if they are part of a still-installed port. If so, deinstall that port, then reinstall it.
% pkg_info -W /usr/local/lib/perl5/5.10.1/mach/auto/Razor2/Syslog/autosplit.ix
 
Well I've tried this with a lot of files in these old perl directories, but it returned with nothing or "file not found".
It seems that I'm not the only one btw. There is a thread on the freebsd-ports mailinglist about net/sendemail with the same error message.
 
If those files aren't part of an installed port, and weren't installed manually with cpan(1), then they shouldn't be there. Things will probably break if you just mv the other directories somewhere else, but then they're broken now.

The sendemail thread mentioned that configuring the port without IPv6 fixed it. Of course, Perl 5.14 is new and not yet the default version in ports, so going back to 5.12 might be the easiest thing for now.
 
Back
Top