emerge-ing irssi all versions on my system Kernel 2.6.3-gentoo-r1 portage-2.0.50-r6 Installs install Irssi.pm and other perl related components to wrong directories. Similar to bug : 30029 _____________________________________________________________________________ make[2]: Leaving directory `/var/tmp/portage/irssi-0.8.9/work/irssi-0.8.9' make[1]: Leaving directory `/var/tmp/portage/irssi-0.8.9/work/irssi-0.8.9' >>> Completed installing into /var/tmp/portage/irssi-0.8.9/image/ >>> /var/tmp/portage/irssi-0.8.9/image/usr/lib/perl5/vendor_perl/5.8.2/i686-linux/Irssi.pm >>> /var/tmp/portage/irssi-0.8.9/image/usr/lib/perl5/vendor_perl/5.8.2/i686-linux/Irssi/ >>> /var/tmp/portage/irssi-0.8.9/image/usr/lib/perl5/vendor_perl/5.8.2/i686-linux/Irssi/Irc.pm >>> /var/tmp/portage/irssi-0.8.9/image/usr/lib/perl5/vendor_perl/5.8.2/i686-linux/Irssi/UI.pm >>> /var/tmp/portage/irssi-0.8.9/image/usr/lib/perl5/vendor_perl/5.8.2/i686-linux/Irssi/TextUI.pm -------------------------------------------------------------------------------- It looks like its installing the perl stuff into the image dir var/tmp/portage/[...] rather than /usr/lib/perl/vendor_perl/[...] Full output can be seen at http://www.ukka.kicks-ass.net/files/irssi-emerge.txt or ill attach it to the bug if i can figure out how :) Reproducible: Always Steps to Reproduce: 1.emerge irssi 2. 3. Actual Results: install completes but does not install perl components
Created attachment 29429 [details] full emerge output
i can confirm that with both irssi and irssi-cvs ebuilds
Created attachment 29826 [details, diff] patch to put perl modules in the right directory
i attached a patch that simply removes the following lines: ------ if use perl; then cd ${S}/src/perl/common; perl-module_src_prep cd ${S}/src/perl/irc; perl-module_src_prep cd ${S}/src/perl/textui; perl-module_src_prep cd ${S}/src/perl/ui; perl-module_src_prep cd ${S} fi ------ worked for me, but since i am not working with ebuils so often i can't tell if this doesn't have some other impacts, someone should check is
Michael's patch worked for me.
Won't that patch cause Irssi.pm and friends not to actually be installed, and thus prevent perl support actually working?
It gets installed. net-irc/irssi-0.8.9 * CONTENTS: [...] /usr/lib/perl5 /usr/lib/perl5/5.8.2 /usr/lib/perl5/5.8.2/i686-linux /usr/lib/perl5/5.8.2/i686-linux/auto /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irssi.bs /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irssi.so /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/.packlist /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irc /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irc/Irc.bs /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irc/Irc.so /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/Irc/.packlist /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/UI /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/UI/UI.bs /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/UI/UI.so /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/UI/.packlist /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/TextUI /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/TextUI/TextUI.bs /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/TextUI/TextUI.so /usr/lib/perl5/5.8.2/i686-linux/auto/Irssi/TextUI/.packlist /usr/lib/perl5/5.8.2/i686-linux/Irssi.pm /usr/lib/perl5/5.8.2/i686-linux/perllocal.pod /usr/lib/perl5/5.8.2/i686-linux/Irssi /usr/lib/perl5/5.8.2/i686-linux/Irssi/Irc.pm /usr/lib/perl5/5.8.2/i686-linux/Irssi/UI.pm /usr/lib/perl5/5.8.2/i686-linux/Irssi/TextUI.pm [...] I have a couple of Perl scripts that load correctly when irssi starts and seem to run fine.
That patch is unacceptable. Perl modules installed by ebuilds must go into vendor directories, not into core Perl directories. Can affected people report their MakeMaker versions?
I've got ExtUtils::MakeMaker version 6.17.
Just checked and i dont have ExtUtils-MakeMaker installed at all.
Had ExtUtils::MakeMaker 6.20, emerged 6.21 and still no go.
after studying the perl-module_src_prep function i recognized, that it is important (at least for me) to have the MMSIXELEVEN variable set, and for other people, who do not have 6.11 of makemaker to have it not set (just a guess). i saw that the perlinfo() function has some routines to recognize the correct values for some variables, including MMSIXELEVEN (checking for mm >= 6.11). so one simple solution (at least for me) was to just run perlinfo in the ebuild before the first perl-module_src_prep call, since i am not very familiar with writing ebuilds i can't tell if it should be called from the ebuild or from some other location, but once called (somewhere) it solved the problem and installed the perl modules to the right place (vendor_perl)
Thank you for that last comment, Michael, because it put me on the right track. Two changes have been made to the perl-module eclass, either of which should solve this issue. Please try again with revision >= 1.60 of the perl-module eclass.
The new eclass puts irssi's Perl modules in vendor_perl for me. Thank you.
the updates to the eclass file have fixed the problem for me as well. Thanks Rac and all others who put time into this. Your work is appreciated.
Thanks for reporting back success. Closing.