Cannot install some perl modules.

Hello.
I have a strange issue. Yesterday I've updated ports tree with thoughts to install perl Mail-Box modules. But I couldn't do that because strange error occurred:
Code:
# make
===>  p5-Mail-Box-2.097 requires Perl 5.8.0 or later, install lang/perl5.8, lang/perl5.10, lang/perl5.12 or lang/perl5.14 and try again.
*** Error code 1

At that point I used perl5.12.4 and it worked as it should. Other (already installed) modules were also working fine. I decided to update perl from 5.12.4 to 5.14.1:
Code:
env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.14 -f perl-5.12.\*
After that I rebuilt all ports that were dependent on perl.
Code:
portupgrade -fr perl
Mostly of that stuff were updated but not all. Some modules refused to build with the same error as p5-Mail-Box.
I've noticed that ports that refusing to build has something like
Code:
PERL_CONFIGURE= 5.8.1+
in their Makefile. In other hand ports that has
Code:
PERL_CONFIGURE= YES
building and working properly. Changing this variable in Makefiles of problem ports solved this issue and make them built and installed. But I think solving this in such way not a good idea. Is this a bug or something I don't understand something so far? Also couldn't find something useful on the Internet.
I'm using:
Code:
# uname -a
FreeBSD Elf 8.2-RELEASE FreeBSD 8.2-RELEASE #5: Sat May 14 22:56:08 UTC 2011     elf@Elf:/usr/src/sys/amd64/compile/ELFKERN  amd64
Sorry for my poor english and thank you in advance.
 
Code:
find /usr/local/lib/perl5/site_perl/5.12.4 -type f -exec pkg_which {} + | tee -a /tmp/A-perl.dat 
cat /tmp/A-perl.dat | sort | uniq | tee -a /tmp/B-perl.dat 
less /tmp/B-perl.dat
Ports to rebuild? If it was 5.12.3 > 5.12.4 I would recc. the perl-after-upgrade script. Don't know about the other questions... (another version of that script omits the site_perl portion of the path... ... Recently I found a whole slew of superfluous files and directories underneath /perl5/ after the latest upgrade, previous ones were done sort of haphazardly...
 
Using empirical way I've found that my perl version (PERL_VERSION variable?), while making something from ports, recognizing as 0. What instance is in charge of this?
By the way, jb_fvwm2, thank you for your advice. Looks like there is no garbage underneath my /usr/local/lib/perl5/.
 
AlexN said:
Using empirical way I've found that my perl version (PERL_VERSION variable?), while making something from ports, recognizing as 0. What instance is in charge of this?

That variable is set in /etc/make.conf when the perl port is installed.
Code:
# added by use.perl 2011-08-08 14:09:17
PERL_VERSION=5.12.4
 
Yes, I know that. And that's what I have in /etc/make.conf
Code:
# added by use.perl 2011-08-18 20:04:12
PERL_VERSION=5.14.1
But problem persists. Looks like somehow I broke my system. But I cannot understand what exactly is broken.
 
Did as you said. All looks fine.It showed me just few packages not common to perl that seemed not to be installed and it offered me to remove them from /var/db/ports (something like quake2 and so on).

Also if you fell into trouble like this and you need whatever to install some modules and work with them you can try to add to /etc/make.conf
Code:
USE_PERL5= YES
But in this case as I understood you must determine possible version mismatch by yourself.
 
Are any of those perl modules originally installed from packages? You can try to forcibly delete those modules with # pkg_delete -f p5-... and then delete anything related to those modules under /var/db/pkg and /var/db/ports and then reinstall those modules from ports.
 
Back
Top