Whenever I build a Perl Module using one of the /usr/portage/dev-perl/ ebuild scripts it overwrites my /usr/lib/perl5/5.6.1/i686-linux/perllocal.pod file. Uname from my system: Linux gentoo01.freeweasel.net 2.4.19-gentoo #2 SMP Fri Apr 26 09:47:07 EDT 2002 i686 GenuineIntel Some comments about this were posted here: http://forums.gentoo.org/viewtopic.php?t=1076&highlight= I am able to reproduce this bug by installing modules via CPAN to demonstrate "normal" behaviour(new module info gets appended to perllocal), and then doing an emerge of any* perl module in dev-perl. *I have not tried every single one but any that I have installed overwrote perllocal as described. I have used XML-Simple, XML-Parser, mod_perl, and HTML::Mason to name a few. Hope this help, let me know if I can be of any further asistance. - Anthony Porcano
I don't do perl.
wow, talk about a hidden bug! thanks a bunch for finding this -- I hope it solves a lot of recent problems (dvdrip etc among them, maybe). Seriously, though, cheers for this :) As of right now, the gtk-perl module has been adjusted to not overwrite that file, and instead append to it. I need sleep, so I'll do the rest in a bit.
Glad to help, Gentoo rocks. - Anthony
Anthony, I am right now in the process of overhauling ALL the ebuilds in the dev-perl directory to make sure they behave ok. And I am releasing a new perl ebuild as well to establish the infrastructure for the way the perl modules' .pod files will be handled. So, once these are released, I will make another note in this bug report. Please do me a HUGE favour and test that system out and lemme know how it works for you?
Sure thing, it would be my pleasure. Let me know when you have the changes committed, and I will `emerge rsync` to get the updates and run some tests on my end. Thanks so much for addressing this, - Anthony
Hi Anthony, I believe all of dev-perl has been changed to the new format of ebuilds I designed for it, using danarmak's brilliant eclasses. Now, the pod file will be moved from perllocal.pod to /usr/share/perl/gentoo-pod/<version_perl>/ And then after each module is added or removed, the perllocal.pod file will be generated from the individual pod files in that directory. That is the best scheme I could come up with at the time, but if you have a better idea, critique, etc please let me know. From what I can see, it seems to work, but you be the judge :) Also, someone mentioned that if we had "cpan" in portage, that might ease this task. Not knowing a lick of perl, I assumed "cpan" to be the website, but it is apparently a module. Please think upon that and let me know if/how that can be implemented.
Seemant, See this (http://www.cpan.org/misc/cpan-faq.html#What_is_CPAN) for a bit of a run down on CPAN. Simply put: You install CPAN.pm From there installing of other Perl modules is simply a matter of starting Perl in the "CPAN shell" and install modules that way. CPAN pulls down the source, and dependencies (usually) then it builds and installs as required. eg: from the FAQ perl -MCPAN -e 'install Chocolate::Belgian' will install the module Chocolate::Belgian. One gotcha is that CPAN will try and use Active FTP initially, there is an environment variable to set to make it use Passive, but it always takes me a good 30 minutes of web searching to find it whenever I need to use CPAN :) (note I don't know a lick of perl either, I've just managed to bumble my way through using CPAN and installing a few modules)
Seemant, I just rsync'ed with the cvs server and got your updates. I did a test merge with dev-perl/XML-Simple and noted that my /usr/lib/perl5/5.6.1/i686-linux/perllocal.pod file only contained the new entry for XML-Simple. This was expected since all my prior modules were either installed using the old ebuild scripts, or using cpan. Neither of which copies their respective perllocal.pod's to /usr/share/perl/gentoo-pods/<version_perl>/. Next I did another merge with dev-perl/XML-Writer and noted that my perllocal.pod now contained the info for both XML-Simple and XML-Writer. So it would appear that the new ebuild scripts are working as expected with your updates. First, thanks again for spending some time with this. The inclusion of eclasses for perl module ebuilds is great, not to mention that you cranked all the new ebuilds out pretty darn quick. ;) A few comments though... The current method (since your updates) does not maintain any existing entries in the perllocal.pod file as demonstrated by the initial merge I did. Additionally, the current method only works for modules that are merged. So any entries in perllocal.pod from modules installed manually or using CPAN will be lost the next time I build one using an ebuild script. More on this later...I am exhausted right now and still have my entire "real-world" day ahead of me. :) - Anthony
Seemant, Regarding the addition of the CPAN module to the portage tree... Technically it is already there. It gets built with perl. I would just try to respect any installs done using it or a manual method when merging in a module from the portage tree. And FWIW, CPAN is actually a network. Their website and the command line shell provided by the CPAN module are just the most common ways of accessing it. *onto the real world* - Anthony
Anthony, Yes, you're right about the manually installing thing. In a couple of weeks (after my little sabbatical :), I will have a look and see if it might be possible for the ebuild scripts to use cpan to pull things down. Not sure exactly how that would work without violating the sandbox though. As for installing your own manually, I would suggest making an ebuild script. As you can see from the new ebuilds, they are really really easy to do. So, you then have two courses to take: make one and put it in your own local portage tree, and the other one is to do that _AND_ submit a bug report to me as well, and I'll try and make it part of the official tree if possible. :) good luck.