Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2010 14:47:12 -0700
From:      Gordon Tetlow <gordon@freebsd.org>
To:        freebsd-current@freebsd.org
Subject:   Re: CFR: Replace man/manpath/whatis/apropos with a shell script
Message-ID:  <AANLkTikw3J5Hbrz0gjpBaB=8UrfNKgJm069i8enNXU14@mail.gmail.com>
In-Reply-To: <AANLkTi=d1RqZhkJJ94DioZkBq3Pq5vrj0kxBSgdW%2BUUo@mail.gmail.com>
References:  <AANLkTi=d1RqZhkJJ94DioZkBq3Pq5vrj0kxBSgdW%2BUUo@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Aug 18, 2010 at 12:11 AM, Gordon Tetlow <gordon@tetlows.org> wrote:

> All,
>
> I sat down and rewrote the man tools from a relatively old codebase to a
> single shell script. My original motivation was to allow multiple
> configuration files so port installations did not have to mess with
> /etc/manpath.config (like perl for example) when needing to manipulate the
> manpath. After looking at the existing code, I figured I could rewrite it as
> a shell script relatively easily.
>
> Script (install as /usr/bin/man, /usr/bin/manpath, /usr/bin/apropos,
> /usr/bin/whatis)
> http://people.freebsd.org/~gordon/man.sh<http://people.freebsd.org/%7Egordon/man.sh>;
>
> Features of the new code:
>
> 1. BSD licensed (old code is GPL).
> 2. Imports configuration from /usr/local/etc/man.d/*.conf and /etc/man.conf
> (purposefully changed the manpath.config file since it is a different
> syntax).
> 3. Allows ports to override the toolset used to display the manpage based
> on language. This was done to try to merge the functionality of the
> japanese/man port into the base system as much as possible.
>
> I've tried to make this mirror the functionality, directory search order,
> and arguments as the current base implementation.
>
> This brings me to my next point. I need some testers willing to try this
> out. It would be particularly great if I could get some foreign language
> testers with localized manpage installations. If something doesn't work the
> way you expect, please contact me and I can help debug it (using man -ddd
> <whatever> will generally give me the debug information I need).
>
> Thanks,
> Gordon
>

I did some additional testing with the japanese/man-doc port and found the
following was necessary:

1. Install my script as /usr/bin/man
2. Install japanese/man-doc
3. Create a /usr/local/etc/man.d/ja-man-doc.conf with the following
contents:

EQN_JA /usr/local/bin/geqn
COL_JA /bin/cat
NROFF_JA /usr/local/bin/groff -S -Wall -mtty-char -man -Tnippon
-dlang=ja_JP.eucJP
PIC_JA /usr/local/bin/gpic
TBL_JA /usr/local/bin/gtbl
TROFF_JA /usr/local/bin/groff -man -dlang=ja_JP.eucJP
MANLOCALE ja_JP.eucJP

4. Create a symlink from /usr/share/man/ja.eucJP -> /usr/local/man/ja
5. Set LC_CTYPE=ja_JP.eucJP
6. man ls

When all is said and done, 3 should be handled by the man-doc port while 4
is a problem.

The current base system man uses the following search order for localized
manpages (which I have emulated):

Look in
/usr/share/man/<lang>.<enc>
/usr/share/man/
...
/usr/local/man/</lang>.<enc>
/usr/local/man/
...

Without step 4 from above, if you were to attempt to get a localized manpage
for ls(1) that resides in /usr/local/man/<lang>.<enc>, you would never see
it because the english language manpage in /usr/share/man would be found
first. The japanese man port gets around this by installing their own man
implementation (jman) forcing /usr/local/man/ja before /usr/share/man in
the search order. I'm interested in feedback about whether the search order
should change or if I should leave it as is.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikw3J5Hbrz0gjpBaB=8UrfNKgJm069i8enNXU14>