apropos(1) with MANPATH is broken

Steve Kargl sgk at troutmask.apl.washington.edu
Sat Jun 13 22:44:32 UTC 2015


The recent change from historic mandoc to the newer stuff
has broken apropos(1).  From the apropos(1) manpage 


 MANPATH   The standard search path used by man(1) may be changed by
           specifying a path in the MANPATH environment variable.
           Invalid paths, or paths without manual databases, are
           ignored.  Overridden by -M.  If MANPATH begins with a
           colon, it is appended to the default list; if it ends with
           a colon, it is prepended to the default list; or if it
           contains two adjacent colons, the standard search path is
           inserted between the colons.  If none of these conditions
           are met, it overrides the standard search path.


In my .cshrc I have

setenv MANPATH /usr/local/man:/usr/share/man:$HOME/man

% setenv | grep MANP
MANPATH=/usr/local/man:/usr/share/man:/home/kargl/man
% apropos apropos
(Warning: MANPATH environment variable set)
/usr/home/kargl/man/mandoc.db: No such file or directory
apropos, whatis(1) - search manual page databases

Historically, there is no noise.  Neither the warning about
MANPATH being set nor a message about a missing .db file were
printed.  This should at least be hidden behind -v.

% unsetenv MANPATH
% apropos apropos
/usr/home/kargl/man/mandoc.db: No such file or directory
/usr/local/lib/perl5/site_perl/man/mandoc.db: No such file or directory
/usr/local/lib/perl5/5.16/perl/man/mandoc.db: No such file or directory
apropos, whatis(1) - search manual page databases

Unsetting MANPATH seems to not revert to a standard manpath of
/usr/share/man (or maybe /usr/local/man:/usr/share/man).  Also, why is
it suddenly picking up the perl5 directories?  There is no /etc/man.conf
on the system and login.conf does not define manpath.

setenv MANPATH :$HOME/man
% apropos apropos
(Warning: MANPATH environment variable set)
/usr/home/kargl/man/mandoc.db: No such file or directory

MANPATH was not appended to the standard search path.


So, starting the exercise over with MANPATH removed from .cshrc.
Re-login-ing into the system

% setenv | grep MAN

MANPATH is not set as expected.

% apropos apropos
/usr/home/kargl/man/mandoc.db: No such file or directory
/usr/local/lib/perl5/site_perl/man/mandoc.db: No such file or directory
/usr/local/lib/perl5/5.16/perl/man/mandoc.db: No such file or directory
apropos, whatis(1) - search manual page databases

So, some default search path is followed

% setenv MANPATH :$HOME/man
% apropos apropos
(Warning: MANPATH environment variable set)
/usr/home/kargl/man/mandoc.db: No such file or directory
% man apropos
No manual entry for apropos


-- 
Steve


More information about the freebsd-current mailing list