Solved Perl modules fail to compile

Hi everyone,

possibly after upgrading Perl to 5.20, some modules fail to compile like so:

Code:
===>  Cleaning for p5-IPC-ShareLite-0.17_1
===>  License ART10 GPLv1 accepted by the user
===>  p5-IPC-ShareLite-0.17_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by p5-IPC-ShareLite-0.17_1 for building
===>  Extracting for p5-IPC-ShareLite-0.17_1
=> SHA256 Checksum OK for IPC-ShareLite-0.17.tar.gz.
===>  Patching for p5-IPC-ShareLite-0.17_1
===>  p5-IPC-ShareLite-0.17_1 depends on file: /usr/local/bin/perl5.20.2 - found
===>  Configuring for p5-IPC-ShareLite-0.17_1
Can't load '/usr/local/lib/perl5/site_perl/mach/5.20/auto/List/Util/Util.so' for module List::Util: /usr/local/lib/perl5/site_perl/mach/5.20/auto/List/Util/Util.so: Undefined symbol "PL_tainting" at /usr/local/lib/perl5/site_perl/mach/5.20/XSLoader.pm line 68.
 at /usr/local/lib/perl5/site_perl/mach/5.20/List/Util.pm line 22.
Compilation failed in require at /usr/local/lib/perl5/site_perl/mach/5.20/Scalar/Util.pm line 11.
Compilation failed in require at /usr/local/lib/perl5/5.20/File/Temp.pm line 18.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.20/File/Temp.pm line 18.
Compilation failed in require at inc/Devel/CheckLib.pm line 11.
BEGIN failed--compilation aborted at inc/Devel/CheckLib.pm line 11.
Compilation failed in require at ./Makefile.PL line 7.
BEGIN failed--compilation aborted at ./Makefile.PL line 7.
*** Error code 2

Stop.
make: stopped in /usr/ports/devel/p5-IPC-ShareLite

Does anyone have any ideas on how to fix this? I reinstalled Perl - that didn't help.
I'm running 10.2-RELEASE, and the ports tree is up to date.
 
"mach" reminds me on an old error with perl5. (Look at /usr/ports/UPDATING - 20141127)
I would try fetch the whole portstree new
rm /var/db/portsnap/tag
portsnap fetch extract
 
Here's my make.conf:

Code:
PYTHON_VERSION=3.4

I'll try and nuke the ports tree, then report back.
Edit: nope, same thing.

Here's another (different) example of breakage, for a different module:

Code:
===>  Cleaning for p5-Params-Validate-1.21
===>  License ART20 accepted by the user
===>  p5-Params-Validate-1.21 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by p5-Params-Validate-1.21 for building
===>  Extracting for p5-Params-Validate-1.21
=> SHA256 Checksum OK for Params-Validate-1.21.tar.gz.
===>  Patching for p5-Params-Validate-1.21
===>  p5-Params-Validate-1.21 depends on package: p5-Module-Implementation>=0.04 - found
===>  p5-Params-Validate-1.21 depends on package: p5-Module-Build>=0.4206 - found
===>  p5-Params-Validate-1.21 depends on file: /usr/local/bin/perl5.20.2 - found
===>  Configuring for p5-Params-Validate-1.21
Attempt to reload Scalar/Util.pm aborted.
Compilation failed in require at /usr/local/lib/perl5/5.20/File/Temp.pm line 18.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.20/File/Temp.pm line 18.
Compilation failed in require at /usr/local/lib/perl5/5.20/ExtUtils/CBuilder/Base.pm line 10.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.20/ExtUtils/CBuilder/Base.pm line 10.
Compilation failed in require at /usr/local/lib/perl5/5.20/ExtUtils/CBuilder/Platform/Unix.pm line 4.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.20/ExtUtils/CBuilder/Platform/Unix.pm line 4.
Compilation failed in require at (eval 15) line 2.
BEGIN failed--compilation aborted at (eval 15) line 2.
Compilation failed in require at /usr/local/lib/perl5/site_perl/Module/Build/Base.pm line 5288.
*** Error code 255

Does this mean my Perl is horribly broken?
munin is working at least, so there's that...
 
I used exclusively ports to install everything.
These errors pop up when upgrading various Perl modules.
 
Erm, I honestly can't remember if I did that on this box.

In case I didn't, can I just remove Perl and all the modules and reinstall?
 
Erm, I honestly can't remember if I did that on this box.
I think your shell history should tell you if you do this: history|grep portmaster.

If you have not done: You should remove perl5.20. Install perl5.18 (I guess it was the earlier version) and run portmaster -o lang/perl5.20 lang/perl5.18.
 
  • Thanks
Reactions: G4
Ok, I've done that, so 5.20 got reinstalled in the process, but the error persists.

I should probably note that this box has been upgraded in time all the way from 8.something probably, along with all the ports. Following UPDATING made everything work fine, but I guess something broke eventually...

It even had 5.14.2 at one point:

Code:
/usr/local/lib/perl5 # ls
5.14.2  5.20  site_perl
 
5.14.2 5.20 site_perl
Then the way is portmaster -o lang/perl5.20 lang/perl5.14.
upgraded in time all the way from 8.something probably
I am not sure if I read this right. I hope this will not mean, you have upgraded your system in ONE step from version 8.X to 10.2. (you have to do it in two steps. From 8.X to 9.3 and from 9.3 to 10.2). If it is so, now the only way is to install complete 10.2 new.
 
No sorry for not being more explicit, what I meant to was that I upgraded it over time.

Sadly 5.14 is not in ports anymore...
Can this possibly be solved if I clean out all perl-related stuff and reinstall? I only need Perl for munin so nothing else should break.
 
Alright, since perl5.14 is not in ports anymore and didn't feel like using portdowngrade, I removed perl, all the modules, and everything that depended on perl, then reinstalled everything, and the modules compiled fine.

So this thread is solved - thanks for the help :)
 
Back
Top