Remove +with_default_names and use a specific path for unprefixed binaries

Ryan Schmidt ryandesign at macports.org
Sun Sep 20 06:07:42 PDT 2009


On Sep 20, 2009, at 07:11, Rainer Müller wrote:

> On 2009-09-20 00:28 , Ryan Schmidt wrote:
>> If your MANPATH is empty (as I believe we recommend), then man will
>> automatically search for things in all the locations specified in  
>> PATH
>> (that is, for every path in PATH, man will look in ../share/man for
>> manpages).
>
> The installer still sets up a non-empty MANPATH. Using an empty  
> MANPATH
> is only recommend on ProblemHotlist as it is the most easy fix, but  
> adds
> additional time to search from bin for man or share/man.

The MacPorts installer package postflight script only modifies the  
MANPATH if it is not empty. If it is empty, no modification is needed;  
the manpages are found automatically by searching ../share/man  
relative to each entry of PATH. Surely the amount of time the computer  
needs to translate the strings in PATH isn't large?

When Leopard was released we discovered it now put things in MANPATH  
by default, to enable path_helper to work. This was a bit annoying  
because it disabled the automatic manpage finding, and it appears that  
Apple learned in Snow Leopard, and MANPATH is no longer modified for  
path_helper if it is empty (according to the manpage for path_helper).


>> Though it's sounding strange for libexec/gnu to be its own prefix.
>> apach2, for example, uses ${prefix}/apache2 as its prefix. Granted
>> that violates the mtree, which I originally objected to in this
>> thread. :/ Guess I don't really know where it should go.
>
> We often talked about apache2 as a bad example of mtree violation  
> and we
> agreed that it is bad and should be changed.

Yes, hence my hesitation.

> But if I remember correctly
> this is the default layout the build system produces.

It's what happens when you use --prefix=${prefix}/${name} anyway,  
which is what the port does. Who knows what would happen if we left it  
at the default --prefix=${prefix}.

> We could even provide a small "gnuify" script in ${prefix}/bin which
> would set up the appropriate PATH and MANPATH. For users it wouldn't
> matter if the GNU binaries with original names are in ${prefix}/gnu or
> ${prefix}/libexec/gnu or whatever, they just call gnuify once (or  
> add it
> to their profile).

We could provide such a script, but if we set MANPATH in it, it would  
have the disadvantage of making MANPATH nonempty again and thus  
disabling the automatic manpage finding feature which the user may  
have been relying on for other manpages. The discussion was between  
having a directory under ${prefix} which would behave like a prefix  
for GNU software -- would contain bin and share directories -- or  
making GNU subdirectories within both the ${prefix}/bin and ${prefix}/ 
share directories; the automatic manpage finding feature wouldn't be  
able to find the manpages given that layout.





More information about the macports-dev mailing list