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>