Subject: misc/14997: apropos(1) outputs unreadable man pages
To: None <gnats-bugs@gnats.netbsd.org>
From: None <hiramatu@boreas.dti.ne.jp>
List: netbsd-bugs
Date: 12/19/2001 03:21:36
>Number:         14997
>Category:       misc
>Synopsis:       apropos(1) outputs unreadable man pages
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    misc-bug-people
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 18 10:23:02 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Hiramatsu Yoshifumi
>Release:        -current 'Dec 18 JST 2001'
>Organization:
	
>Environment:
	<machine, os, target, libraries (multiple lines)>
NetBSD river.my.domain 1.5Z NetBSD 1.5Z (River) #0: Mon Dec 10 20:46:10 JST 2001     hiramatsu@river.my.domain:/usr/src/sys/arch/i386/compile/River i386
Architecture: i386
Machine: i386
>Description:
On i386 machine, trying to find man with keyword "hpcmips"

% apropos hpcmips
pbsdboot (8) - load and boot NetBSD/hpcmips kernel from Windows CE

but cannot read

% man pbsdboot
man: no entry for pbsdboot in the manual.

This happens because

1. pbsdboot manual is installed in man8/hpcmips
2. makewhatis searches all directory under /usr/share/man, 'pbsdboot'
   entry is added into whatis.db.
3. man does not search subdirectories other than 'i386', so couldn't
   reach pbsdboot manual which resides in 'hpcmips' directory.


Another example

% apropos amiga
amidisplaycc (4) - wscons interface to amiga custom chips drivers
console (4) - amiga console interface
fdc (4) - Amiga custom chip floppy disk controller device
ite (4) - Amiga Internal Terminal Emulator
mount_ados (8) - mount an AmigaDOS file system
ser (4) - Amiga 8520 serial communications interface
% man ser
man: no entry for ser in the manual.

>How-To-Repeat:
	
>Fix:
Modify Makefiles to not always install platform specific manual pages.

For example, to share/man/man4/Makefile 

--- Makefile.orig       Wed Dec 19 02:39:59 2001
+++ Makefile    Wed Dec 19 02:41:12 2001
@@ -103,9 +103,8 @@
 # This is a hack
 MLINKS+=edc.4 i386/ed.4
 
-SUBDIR=        man4.alpha man4.amiga man4.arm26 man4.arm32 man4.atari man4.hp300 \
-       man4.i386 man4.mac68k man4.macppc man4.mvme68k man4.pc532 man4.pmax \
-       man4.sparc man4.sun2 man4.sun3 man4.vax man4.x68k
+SUBDIR=        man4.${MACHINE_ARCH}
 
 .include <bsd.man.mk>
 .include <bsd.subdir.mk>

to usr.sbin/memswitch/Makefile

--- Makefile.orig       Wed Dec 19 02:42:39 2001
+++ Makefile    Wed Dec 19 02:44:24 2001
@@ -3,9 +3,9 @@
 .if ${MACHINE} == "x68k"
 PROG=  memswitch
 SRCS=  memswitch.c properties.c methods.c
-.endif
 
 MAN=   memswitch.8
 MANSUBDIR=     /x68k
+.endif
 
 .include <bsd.prog.mk>


We can modify man command to search other platform directory, but I think
this lead to trouble when several platform have manual in same file name.
>Release-Note:
>Audit-Trail:
>Unformatted: