Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 216822 - dev-perl/Devel-Size-Report fails to load it's dependencies.
Summary: dev-perl/Devel-Size-Report fails to load it's dependencies.
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-08 05:50 UTC by Xavian-Anderson Macpherson
Modified: 2008-05-06 11:20 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Xavian-Anderson Macpherson 2008-04-08 05:50:54 UTC
Is it really too much to ask, that Gentoo require every developer to check for perl modules that are required for their packages, prior to compiling the package. It's a complete waste of time, and is an indication of sheer short-sightedness. There is no justification for this current situation. If you can list your dependencies, you should install them as well. Either developers don't know what their dependencies are, or they're just lazy! Forcing the user to do the work the developer should have done themselves.

Another situation where a perl module dependency is required, but not pre-installed by the emerge.

Reproducible: Always

Steps to Reproduce:
1. emerge dev-perl/Devel-Size-Report

Actual Results:  
MakeMaker FATAL: prerequisites not found.
    Array::RefElem not installed

Please install these modules first and rerun 'perl Makefile.PL'.
# Looks like your test died before it could output anything.
 * 
 * ERROR: dev-perl/Devel-Size-Report-0.11 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2452:  Called perl-module_src_compile
 *             environment, line 2177:  Called perl-module_src_prep
 *             environment, line 2230:  Called die
 * The specific snippet of code:
 *               echo "$pm_echovar" | perl Makefile.PL ${myconf} INSTALLMAN3DIR='none' PREFIX=/usr INSTALLDIRS=vendor DESTDIR=${D} || die "Unable to build! (are you using USE=\"build\"?)";
 *  The die message:
 *   Unable to build! (are you using USE="build"?)
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-perl/Devel-Size-Report-0.11/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-perl/Devel-Size-Report-0.11/temp/environment'.
 * 


Expected Results:  
Check the dependencies yourself in your ebuilds.
Comment 1 Xavian-Anderson Macpherson 2008-04-08 05:55:13 UTC
This really is a bunch of donkey dung. The Array::RefElem-1.00 is already installed. So tell me why does this happen. What's at fault here? Because I've had this happen on more than one package.
Comment 2 Jan Kundrát (RETIRED) gentoo-dev 2008-04-09 17:22:33 UTC
Dear Xavian, I hope you realize that calling people lazy and then asking them to fix an issue that you're having is strange at least.
Comment 3 Xavian-Anderson Macpherson 2008-04-09 18:27:15 UTC
(In reply to comment #2)
> Dear Xavian, I hope you realize that calling people lazy and then asking them
> to fix an issue that you're having is strange at least.
> 

I'm sorry. Long time in front of computer, having many problems with perl modules installed by Gentoo not being recognized, even though they're installed. Only when reinstalled using cpan (not g-cpan) are the modules then recognized, and the builds succeed. Mark it up to repeated frustration with the same issue, repeatedly occurring.

Shingoshi
Comment 4 Yuval Yaari (RETIRED) gentoo-dev 2008-04-29 00:50:35 UTC
dev-perl/Array-RefElem is a dependency of dev-perl/Devel-Size-Report.

So it looks like the developers "know their dependencies".
Speaking of "lazy", you didn't attach any logs/emerge --info -- could you please do that?

I think you have a bigger problem than just a dependency problem...
Comment 5 Xavian-Anderson Macpherson 2008-04-29 06:44:21 UTC
I either never made a bug file for this, or I may have deleted it. Since I now have this successfully installed (only after using cpan), I cannot now submit a new bug report with the information that you've requested. This may have been before I wrote a script to create my bug reports automatically. So I'm sorry, but I can't provide the info you desire.

I may have complained about this package, but in fact it is part of a larger recurrent problem. There are many perl modules installed by Gentoo which are NOT subsequently recognized by the system, even though they are already installed. I think what I could have asked for instead, was that EVERY package requiring perl modules, use cpan to (re)install them, to guarantee they are the latest version, and properly recognized.

In either case, I've learned my lesson. The cure is to simply use cpan to load all modules that are requested by any package. I just wish that were the standard practice for all ebuilds.

Shingoshi
Comment 6 Xavian-Anderson Macpherson 2008-05-01 21:31:25 UTC
Here's an example of what I'm writing about. Here's a dependency which is NOT listed in the dependency string for this package. Yet the compile fails on not being able to find it.

Can't locate Tk/MMutil.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
 * 
 * ERROR: dev-perl/Tk-JPEG-Lite-2.01403 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2431:  Called perl-module_src_compile
 *             environment, line 2154:  Called perl-module_src_prep
 *             environment, line 2207:  Called die
 * The specific snippet of code:
 *               echo "$pm_echovar" | perl Makefile.PL ${myconf} INSTALLMAN3DIR='none' PREFIX=/usr INSTALLDIRS=vendor DESTDIR=${D} || die "Unable to build! (are you using USE=\"build\"?)";
 *  The die message:
 *   Unable to build! (are you using USE="build"?)
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-perl/Tk-JPEG-Lite-2.01403/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-perl/Tk-JPEG-Lite-2.01403/temp/environment'.


Tk/MMutil is part of the main Tk module for perl. So it should be there. Yet the system is complaining it can't be found. Please explain that.

The ONLY ONLY ONLY solution to this is to build each perl module directly from cpan, EACH AND EVERY TIME a package is installed. Only after I reinstalled the Tk perl module from cpan, did the build of Tk-JPEG-Lite-2.01403 then succeed.

Shingoshi
Comment 7 Xavian-Anderson Macpherson 2008-05-01 21:58:37 UTC
Here's an example of what I'm writing about. Here's a dependency (perl-Tk) which is listed in the dependency string for this package. Yet the compile fails on not being able to find it.

Can't locate Tk/MMutil.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
 * 
 * ERROR: dev-perl/Tk-JPEG-Lite-2.01403 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2431:  Called perl-module_src_compile
 *             environment, line 2154:  Called perl-module_src_prep
 *             environment, line 2207:  Called die
 * The specific snippet of code:
 *               echo "$pm_echovar" | perl Makefile.PL ${myconf} INSTALLMAN3DIR='none' PREFIX=/usr INSTALLDIRS=vendor DESTDIR=${D} || die "Unable to build! (are you using USE=\"build\"?)";
 *  The die message:
 *   Unable to build! (are you using USE="build"?)
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-perl/Tk-JPEG-Lite-2.01403/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-perl/Tk-JPEG-Lite-2.01403/temp/environment'.


Tk/MMutil is part of the main Tk module for perl. So it should be there. Yet the system is complaining it can't be found. Please explain that.

The ONLY ONLY ONLY solution to this is to build each perl module directly from cpan, EACH AND EVERY TIME a package is installed. Only after I reinstalled the Tk perl module from cpan, did the build of Tk-JPEG-Lite-2.01403 then succeed.

Shingoshi
Comment 8 Torsten Veller (RETIRED) gentoo-dev 2008-05-06 11:20:52 UTC
(In reply to comment #7)
> Here's an example of what I'm writing about. Here's a dependency (perl-Tk)
> which is listed in the dependency string for this package. Yet the compile
> fails on not being able to find it.


> Tk/MMutil is part of the main Tk module for perl. So it should be there. Yet
> the system is complaining it can't be found. Please explain that.

You system is broken.
Where did perl-tk put the missing module? (qlist perl-tk | grep MMutil.pm)

> The ONLY ONLY ONLY solution to this is to build each perl module directly from
> cpan, EACH AND EVERY TIME a package is installed.

This is always the wrong way. Every perl module in the tree must also install all dependencies needed. Now we are human too and make mistakes. But I can't see what we might have done wrong here.

So where does portage install the perl stuff on your system?