# spamd broken after perl upgrade



## MarcoB (May 21, 2011)

Hi,

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


```
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


----------



## jb_fvwm2 (May 21, 2011)

```
cd /usr/local/lib/perl5/site_perl/
ls -Gacd */
```
See 5.12 any files remaining? rebuild the ports that put them there?

```
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...


----------



## MarcoB (May 21, 2011)

jb_fvwm2 said:
			
		

> ```
> 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:

```
5.10.0/ 5.10.1/ 5.12.2/ 5.12.3/ 5.14.0/ 5.8.7/  5.8.8/  5.8.9/
```



> ```
> pkg_which ... [file]
> portmaster -d -B -P /var/db/pkg/p5-[portname-number]
> ```
> ...


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


----------



## wblock@ (May 21, 2011)

MarcoB said:
			
		

> I'm getting:
> 
> ```
> 5.10.0/ 5.10.1/ 5.12.2/ 5.12.3/ 5.14.0/ 5.8.7/  5.8.8/  5.8.9/
> ...



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.


----------



## MarcoB (May 21, 2011)

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.


----------



## wblock@ (May 22, 2011)

Maybe spamd needs to be adjusted to work with Perl 5.14.  Odd that all the old Perl directories are still there, though.


----------



## jb_fvwm2 (May 22, 2011)

```
cd 5.10.1
find . -type f | tee -a /tmp/p5-list.file && head -20 /tmp/p5-list.file
```
Any files? 

```
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

```
portmaster -d -B -i -P /var/db/pkg/p5- ### - ###
```
can be done without portmaster, but portmaster *might* be quicker.


----------



## MarcoB (May 22, 2011)

jb_fvwm2 said:
			
		

> ```
> cd 5.10.1
> find . -type f | tee -a /tmp/p5-list.file && head -20 /tmp/p5-list.file
> ```
> Any files?


This gives:

```
./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
```


----------



## wblock@ (May 22, 2011)

Have you been installing perl modules with CPAN instead of ports?


----------



## MarcoB (May 22, 2011)

No, always ports only.
I've just reinstalled all p5- ports, but no luck.


----------



## wblock@ (May 22, 2011)

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`


----------



## MarcoB (May 22, 2011)

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.


----------



## wblock@ (May 22, 2011)

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.


----------

