Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 524756

Summary: dev-perl/Email-Sender-0.120.2-r1 should depend on dev-perl/MRO-Compat - Can't locate MRO/Compat.pm in @INC
Product: Gentoo Linux Reporter: Paul McDermott <pmcdermott98>
Component: [OLD] DevelopmentAssignee: Gentoo Perl team <perl>
Status: RESOLVED WORKSFORME    
Severity: normal CC: Sergiy.Borodych
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Paul McDermott 2014-10-08 10:22:47 UTC
Running an application using Email::Sender::Simple results in:

Attempt to reload Email/Sender/Simple.pm aborted.

http://stackoverflow.com/questions/2202243/why-does-a-module-compile-by-itself-but-fail-when-used-from-elsewhere

suggests that this error is due to a compilation problem with the module.

perl -c /usr/lib/perl5/vendor_perl/5.16.3/Email/Sender/Simple.pm

results in 

Can't locate MRO/Compat.pm in @INC (@INC contains: /home/paul/lib/perl /home/paul/Trading/lib /home/paul/Trading/lib /home/paul/Betting/lib /home/paul/Betting/betfairfree/lib /etc/perl /usr/local/lib/perl5/5.16.3/i686-linux-thread-multi /usr/local/lib/perl5/5.16.3 /usr/lib/perl5/vendor_perl/5.16.3/i686-linux-thread-multi /usr/lib/perl5/vendor_perl/5.16.3 /usr/local/lib/perl5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.16.3/i686-linux-thread-multi /usr/lib/perl5/5.16.3 .) at /usr/lib/perl5/vendor_perl/5.16.3/i686-linux-thread-multi/Class/MOP.pm line 15.

emerge -av dev-perl/MRO-Compat

resolves.

=> dev-perl/Email-Sender should depend on dev-perl/MRO-Compat...
Comment 1 Sergiy Borodych 2014-10-08 13:18:59 UTC
IMHO Seems like this is not Email::Sender issue.

Look at
> at /usr/lib/perl5/vendor_perl/5.16.3/i686-linux-thread-multi/Class/MOP.pm line 15.

AFAIK Email::Sender use Moo.
And seems like you have Moose also (because Class::MOP comes with it).
And Moo try to load Class::MOP which require MRO::Compact.

So the question:
How was installed all those modules?
Do you have them all?
Comment 2 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-10-08 14:45:44 UTC
Having Class::MOP installed but not MRO::Compat means you've not installed all the dependencies of dev-perl/Moose properly.

dev-perl/Moose provides Class/MOP.pm
dev-perl/Moose depends on MRO/Compat.pm

Therefore, you appear to have a broken perl install and you need to run perl-cleaner.

I have reason to believe you *already* had dev-perl/MRO-Compat installed, however, installed on a previous perl, thus, a re-installation caused it to be installed on your current perl.
Comment 3 Paul McDermott 2014-10-17 23:20:48 UTC
I take your point that the error was actually coming from Class::MOP, not Email::Sender::Simple.

This issue did happen amid the debris of a nightmare migration from perl 5.16 to 5.18, so things could easily have been in the wrong place...

As a mere application user I definitely wish that the perl side of Gentoo could be easier. perl-cleaner is not a panacea, especially when perl itself refuses to install..

Thanks for your comments.
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-10-18 01:14:33 UTC
(In reply to Paul from comment #3)
> I take your point that the error was actually coming from Class::MOP, not
> Email::Sender::Simple.
> 

Indeed.