| Summary: | perl modules installs in wrong director{y,ies} | ||
|---|---|---|---|
| Product: | Portage Development | Reporter: | Håkan Wessberg <nacka-gentoobugs> |
| Component: | Unclassified | Assignee: | Robert Coie (RETIRED) <rac> |
| Status: | RESOLVED INVALID | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | same solution as in the report, but easier to retrieve as a real patch. | ||
Created attachment 9516 [details, diff]
same solution as in the report, but easier to retrieve as a real patch.
Can you report your Perl version, and ExtUtils-MakeMaker version also? I can't reproduce the problem with 5.8.0 - Digest-MD5 installs properly in /usr/lib/perl5/site_perl/5.8.0/i686-linux/auto/Digest/MD5/MD5.so for me even without your patch. Perl and MakeMaker versions: dev-lang/perl-5.6.1-r10, dev-perl/ExtUtils-MakeMaker-6.05-r4. Digest-MD5 installed without my patch (interresting line from emerge) >>> /usr/lib/perl5/site_perl/5.6.1/i686-linux/auto/Digest/MD5/MD5.so >>> /usr/lib/perl5/site_perl/5.6.1/i686-linux/Digest/MD5.pm >>> /usr/lib/site_perl/ >>> /usr/lib/site_perl/5.6.1/ >>> /usr/lib/5.6.1/ >>> /usr/lib/5.6.1/i686-linux/ >>> /usr/lib/5.6.1/i686-linux/perllocal.pod MD5.so and MD5.pm installs in the right place because INSTALLSITEARCH is set in perl-module.eclass, but INSTALLSITELIB and INSTALLARCHLIB is not and MakeMaker thinks those belongs in /usr/lib. Digest-MD5 with patch: >>> /usr/lib/perl5/site_perl/5.6.1/i686-linux/auto/Digest/MD5/MD5.so >>> /usr/lib/perl5/site_perl/5.6.1/i686-linux/Digest/MD5.pm --- /usr/lib/perl5/site_perl/5.6.1/ --- /usr/lib/perl5/5.6.1/i686-linux/ MD5.so and MD5.pm install correctly as before, but this time INSTALLSITELIB and INSTALLARCHLIB is set to the correct locations in /usr/lib/perl5. Perhaps there is something else going on here, maybe it's my installation that is failing, but I really can't see what that would be. If you want me to investigate more, let me know. I reinstalled MakeMaker (same version), and now things are back to normal. I didn't backup to old MakeMaker, so I have no way to check the difference between them. (Doh!) Sorry for the noise. Close. Presumed caused by bad internal MakeMaker interaction with older Perl ebuilds. |
When emerging perl modules (libwww-perl-5.68, Digest-MD5-2.20-r1 is the ones I've tested) they install in /usr/lib/site_perl, and not /usr/lib/perl5/site_perl where the perl binary looks for them. With this patch things work for me. But I'm not sure if it's the correct solution. == --- perl-module.eclass.orig 2003-03-17 13:36:12.000000000 +0100 +++ perl-module.eclass 2003-03-17 13:37:46.000000000 +0100 @@ -48,6 +48,10 @@ SITE_ARCH=${installsitearch} eval `perl '-V:installarchlib'` ARCH_LIB=${installarchlib} + eval `perl '-V:installsitelib'` + SITE_LIB=${installsitelib} + eval `perl '-V:installprivlib'` + PRIV_LIB=${installprivlib} make \ @@ -69,6 +73,9 @@ INSTALLSITEMAN7DIR=${D}/usr/share/man/man7 \ INSTALLSITEMAN8DIR=${D}/usr/share/man/man8 \ INSTALLSITEARCH=${D}/${SITE_ARCH} \ + INSTALLARCHLIB=${D}/${ARCH_LIB} \ + INSTALLSITELIB=${D}/${SITE_LIB} \ + INSTALLPRIVLIB=${D}/${PRIV_LIB} \ INSTALLSCRIPT=${D}/usr/bin \ ${myinst} \ ${mytargets} || die