perl5.8 fixup

Bradley Giesbrecht brad at pixilla.com
Mon Mar 9 19:02:06 PDT 2009


On Mar 9, 2009, at 5:27 PM, Marcus Calhoun-Lopez wrote:

> Eric Hall <opendarwin.org at ...> writes:
>
>>
>> On Mon, Mar 09, 2009 at 02:03:57PM -0700, Bradley Giesbrecht wrote:
>>> I have played around with my perl5.8 port and I have what appears to
>>> me to be a solution to the path collision/registry issue.
>>>
>>> I modified my perl5.8 Portfile like so:
>>>
>>> configure.args-append -D man1dir='/opt/local/share/man/man1' -D
>>> man1direxp='/opt/local/share/man/man1' -D man3dir='/opt/local/share/
>>> man/man3' -D man3direxp='/opt/local/share/man/man3' -D
>>> installman1dir='/opt/local/share/man/man1perl58' -D  
>>> installman3dir='/
>>> opt/local/share/man/man3perl58' -D installsiteman1dir='/opt/local/
>>> share/man/man1perl58' -D installsiteman3dir='/opt/local/share/man/
>>> man3perl58' -D installvendorman1dir='/opt/local/share/man/ 
>>> man1perl58' -
>>> D installvendorman3dir='/opt/local/share/man/man3perl58' -D
>>> siteman1dir='/opt/local/share/man/man1perl58' -D siteman1direxp='/ 
>>> opt/
>>> local/share/man/man1perl58' -D siteman3dir='/opt/local/share/man/
>>> man3perl58' -D siteman3direxp='/opt/local/share/man/man3perl58' -D
>>> vendorman1dir='/opt/local/share/man/man1perl58' -D  
>>> vendorman1direxp='/
>>> opt/local/share/man/man1perl58' -D vendorman3dir='/opt/local/share/ 
>>> man/
>>> man3perl58' -D vendorman3direxp='/opt/local/share/man/man3perl58'
>>>
>>> configure.args-append -D man1ext='1p58' -D man3ext='31p58'
>>>
>>
>> 	Cool.  I've been futzing with it too, with a simpler setup
>> (haven't finished testing, but it looks like only the man1dir,
>> siteman1dir, vendorman1dir are required - and their 3 complements
>> of course).
>>
>
> There is the issue that the user must modify his or her manpath.
> An alternate solution is to rename the manpages.

Not according to my tests. Creating man1perl58 and man3perl58 without  
altering man paths seems to work.

Looking at /etc/manpaths it looks like man must parse this entire  
directory. I may be missing something.
bash-3.2# cat /etc/manpaths
/usr/share/man
/usr/local/share/man


> The ticket originally opened to deal with this problem is
> http://trac.macports.org/ticket/12950
> .
> In it, I posted patches which will reorder @INC.
> I also posted a patch for p5-test-simple to go along with it.
> The module is installed with perl, but p5-test-simple is a newer  
> version.
> It avoids manpage conflicts by renaming the manpages.

I think the perl5.8 compile flags alone will fix the man path  
collisions. The @INC env var looks like a good solution and I favor  
using a /opt/local/etc/profile mechanism with /opt/local/etc/profile.d/ 
perl5.8 and friends.

I think a new port name "profile" could be created to make this easy  
or it could become part of macports. Then perl5.8 could add the /opt/ 
local/etc/profile.d/perl5.8 file.

//Brad



More information about the macports-dev mailing list