Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 2299 - perllocal is being overwritten by Perl Module ebuilds
Summary: perllocal is being overwritten by Perl Module ebuilds
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Seemant Kulleen (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-04-30 23:25 UTC by Anthony Porcano
Modified: 2003-02-04 19:42 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 Anthony Porcano 2002-04-30 23:25:23 UTC
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
Comment 1 Karl Trygve Kalleberg (RETIRED) gentoo-dev 2002-05-04 10:05:57 UTC
I don't do perl.
Comment 2 Seemant Kulleen (RETIRED) gentoo-dev 2002-05-04 11:02:08 UTC
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.
Comment 3 Anthony Porcano 2002-05-04 22:40:44 UTC
Glad to help, Gentoo rocks. 

  - Anthony
Comment 4 Seemant Kulleen (RETIRED) gentoo-dev 2002-05-04 22:58:27 UTC
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?
Comment 5 Anthony Porcano 2002-05-05 08:10:57 UTC
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
Comment 6 Seemant Kulleen (RETIRED) gentoo-dev 2002-05-06 18:17:56 UTC
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.
Comment 7 Troy Dack 2002-05-06 18:36:04 UTC
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)
Comment 8 Anthony Porcano 2002-05-07 10:46:07 UTC
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

Comment 9 Anthony Porcano 2002-05-07 10:59:36 UTC
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
Comment 10 Seemant Kulleen (RETIRED) gentoo-dev 2002-05-08 16:55:08 UTC
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.