perl5.8 fixup

Bradley Giesbrecht brad at pixilla.com
Fri Mar 13 10:25:05 PDT 2009


On Mar 13, 2009, at 9:41 AM, Eric Hall wrote:

> On Fri, Mar 13, 2009 at 09:22:41AM -0700, Bradley Giesbrecht wrote:
>>>> /usr/share/man/man3/CGI.3pm.gz is found before /opt/local/share/
>>>> perl5.8/man/man3p/CGI.3pm even when MANPATH looks like this:
>>>>
>>>> /opt/local/share/man:/usr/share/man:/usr/X11/man:/usr/local/share/ 
>>>> man
>>>>
>>>> I'm not saying I like this solution but changing the Portfile to  
>>>> add
>>>> perl5.8/man:
>>>>  -D man1dir='${prefix}/share/perl5.8/man/man1' \
>>>>  -D man3dir='${prefix}/share/perl5.8/man/man3' \
>>>>  -D siteman1dir='${prefix}/share/man/man1' \
>>>>  -D siteman3dir='${prefix}/share/man/man3' \
>>>>  -D vendorman1dir='${prefix}/share/man/man1' \
>>>>  -D vendorman3dir='${prefix}/share/man/man3'
>>>>
>>>> and making my MANPATH look like:
>>>>
>>>> /opt/local/share/man:/opt/local/share/perl5.8/man:/opt/local/man:/
>>>> usr/
>>>> share/man:/usr/X11/man:/usr/local/share/man
>>>>
>>>> causes perl5.8 module man pages to be found before apple installed
>>>> man
>>>> pages.
>>>
>>> 	I really don't like changing MANPATH, its auto-generated
>>> (for the most part) and I think that's a Good Thing(tm).  Forcing
>>> people to set a MANPATH will result in breakage.
>>
>> Aren't we already adding macports /opt/local/share/man to MANPATH?
>
> 	No, /opt/local/share/man gets auto-added to the search paths
> for man when /opt/local/bin is in one's PATH.

I see.

As a normal (non-sudo) user I wasn't seeing /opt/local/share/man  
without adding the path to MANPATH.

sudo manpath does indeed add /opt/local/share/man

> 	So far as the search order goes, the system-installed /etc/man.conf
> has:
>
> 	MANSECT		1:1p:8:2:3:3p:4:5:6:7:9:0p:tcl:n:l:p:o
>
> 	which means that man will search section 1, then section 1p,
> then section 8, then section 2, then section 3, then section 3p, and  
> so on.
> The reason you're seeing the system-installed perl (base/core) man  
> pages
> is that man searches all the paths for each section, then moves on to
> the next section.
> 	Again, I agree it'd be better to get the MP installed man pages
> first if possible without doing things like setting MANPATH.  I feel  
> that
> picking up the "wrong" man pages is an acceptable (if undesired)  
> consequence
> of getting p5-* installs to work without -f.
> 	Looking at man a bit more, you could do a couple of things to change
> this behavior.  You could set a MANSECT environment variable, and  
> put 3p
> in front of 3.  Getting crazy with that idea, you could do (for sh/ 
> bash/etc.):
>
> 	MANSECT=`egrep '^MANSECT' /etc/man.conf | sed -E 's/:3:3p:/:3p:3:/'`
> 	export MANSECT
>
> or for csh/tcsh:
>
> 	setenv MANSECT `egrep '^MANSECT' /etc/man.conf | sed -E 's/:3:3p:/: 
> 3p:3:/'`
>
> 	This would set the MANSECT variable to what is /etc/man.conf
> except for re-ordering 3 and 3p.
>
> 	As well, I don't use the man pages for perl modules much, I find
> that perldoc MODULE_NAME is generally much better documentation.   
> Perhaps
> this is true for most people, I don't know.

Neither do I. I don't program in perl but I do use the work of others  
and am only just pushing for the best solution since it's somewhat of  
a pain to change a package like perl and p5's.

Thank you taking the time to explain your solution and the tradeoffs.

Since you and I seem to be the only people left on this thread I am  
endorsing your thoughtful solution and would love to see it committed  
soon.

+1


//Brad


More information about the macports-dev mailing list