If the perl installation sees that there is a /usr/local/scripts directory it will put all of its scripts (pod2man, etc) there instead of /usr/bin. What's worse is that if that directory is *not* in the PATH other things may break (such as gcc-3.2.1-r6 in my case -- it looks for pod2man). This can be fixed by adding the following to the configure line of the perl ebuild: -Dscriptdir=/usr/bin to force perl to install scripts into that location. This _may_ also be the reason for bug 12413, but I don't know if perl was emerged in that case. As a temporary workaround, to force perl to install scripts into /usr/bin, one can move /usr/local/scripts to some other location; remerge perl; move /usr/local/scripts back.
Thanks for the pointer! Will look into getting this into the ebuild as soon as i can. Mike
Hmmmm....ok, I have to step back and recant a touch. According to the Config.pm from both the currently released and the beta release of perl5.8 I am working on, the installscript var is set to /usr/bin already. Can you confirm this with your installation? Was it a particular app that was going awry? If this is in regards to man pages, I have another bug open regarding that and am working on it (the man1 and man3 paths were not getting set correctly).
For me it was the gcc update that died because it couldn't find pod2man, and that is because pod2man resided in /usr/local/scripts. Here is a simple way to recreate the problem (I did these steps as I wrote this report to verify). First, here is the working installation: zion perl # epm -ql perl | grep pod2man /usr/bin/pod2man /usr/share/man/man1/pod2man.1.gz Next, create the /usr/local/scripts directory, remerge perl and check again: zion perl # mkdir /usr/local/scripts zion perl # emerge perl ... zion perl # epm -ql perl | grep pod2man /usr/local/scripts/pod2man /usr/share/man/man1/pod2man.1.gz Then I tried "fixing" the ebuild, remerge perl and check again: Add "-Dscriptdir='/usr/bin' \" on line 249 of perl-5.8.0-r8.ebuild zion perl # emerge perl ... zion perl # epm -ql perl | grep pod2man /usr/bin/pod2man /usr/share/man/man1/pod2man.1.gz As you can see the scriptdir flag forced perl to install pod2man and friends into correct locations. Now gcc compiles happily. Side note. When twiddling with the perl ebuild I noticed lines 207 and 248 have the following: -Dsiteprefixx='/usr' \ This looks like a typo (two x's). Please forgive me if I'm wrong. I couldn't find 'siteprefixx' anywhere in perl's Configure, however, 'siteprefix' is certainly there. It is very possible that this typo is what is causing perl to misbehave with regards to its publicly accessible scripts. I haven't tried "fixing" this to see if resolves my issue though -- the machine I have access to do these things on is painfully slow. :-)
OK, this bug and bug 13886 look to be the same problem, albeit hidden. There appears to be a typo introduced into the generation of the config.over that is failing the setting of the scripts dir (which is done in the ebuild) as well as the setting of the man page location. Working on it now. Mike
there was a typo in the setting of the config.over file that caused our setting of the scriptdir to get voided. A version of the perl ebuild with the typos corrected has just been released into portage. Please verify and close out if all is good for you (looks good to me and my testers, but would like confirmation from you).
Negative :( just remerged the new perl (-r9) zion perl # epm -q perl perl-5.8.0-r9 zion perl # ls -ld /usr/local/scripts drwxr-xr-x 2 root root 696 Jan 15 21:04 /usr/local/scripts zion perl # epm -ql perl | grep pod2man /usr/local/scripts/pod2man /usr/share/man/man1/pod2man.1.gz
Max, I'm not sure what's going on on your end. gnosis # grep pod2man /var/db/pkg/sys-devel/perl-5.8.0-r9/CONTENTS obj /usr/bin/pod2man 4d3b344a9ed41980f3db000efc2ac557 1042668324 obj /usr/share/man/man1/pod2man.1.gz f529d18b958fa1eab3107c19b99a010f 1042668324 It's installing right over here...
How odd. I just had a friend try it (just to test my sanity) and he experienced the same thing I had. He made a directory "/usr/local/scripts" and emerged perl. His CONTENTS file showed /usr/local/scripts/pod2man. Are you sure you had the /usr/local/scripts directory made? How did you emerge perl? (All we're doing is "emerge perl"). I am at a loss...
I see the difference! (Only took you saying it over and over again for it to be clear).The Configure script for perl was interpreting a scriptsdir despite our settings in the config.over. The -Dscriptdir=/usr/bin has been added to the config flags - that and the config.over should take care of this problem for other users. Also, thanks for the catch on the double x's in the config flags, that has been corrected. Thank you for patience these last few days, Mike
This is now fixed in the ebuild
confirmed working. thank you!