Bug 32954

Summary: makewhatis doesn't remove entries for nonexistent manpages by default
Product: Base System Reporter: parv_ <parv_>
Component: gnuAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.4-STABLE   
Hardware: Any   
OS: Any   

Description parv_ 2001-12-18 01:20:00 UTC
makewhatis doesn't remove entries for nonexistent manpages by
default.  i issued this command...

# cd /usr/local/man
# makewhatis /usr/local/man

in its manpage, there is no mention of the default behaviour.  -v
option would only "issue more warnings"; -a option would append to
the database w/o checking if old entries are valid.

and that's what puzzles me.  i didn't specify the -a option, yet
just that was happening.  i had to delete the existing whatis
database so that changes in /usr/local/man would reflect.

Fix: 

either document the default -a option (as described above) in
makewhtais(1), or fix the makewhatis.

if manpage is modified, then please also add that to have fresh & clean
whatis db, the current "whatis" needs to (re)moved.
How-To-Repeat: 
- create whatis database in an appropriate directory, say, /usr/local/man.
- move the whatis db to other name. 
- change /usr/local/man's contents by (re)moving man/cat file(s).
- recreate whatis db and comapare w/ the old version.
Comment 1 ru freebsd_committer freebsd_triage 2001-12-18 08:29:05 UTC
On Mon, Dec 17, 2001 at 08:16:42PM -0500, parv_@yahoo.com wrote:
> 
> freebsd version is 4.4-stable as of 2001.10.03.02.12.13
> 
> below are are the dates & version of makewhatis* files...
> 
>   99.08.27.23.36.10 src/gnu/usr.bin/man/makewhatis/makewhatis.local.sh,v 1.7
> 2001.04.25.14.04.13 src/gnu/usr.bin/man/makewhatis/Makefile,v 1.16.2.2
> 2001.08.13.09.05.58 src/gnu/usr.bin/man/makewhatis/makewhatis.perl,v 1.21.2.3
> 2001.08.16.10.14.57 src/gnu/usr.bin/man/makewhatis/makewhatis.1,v 1.14.2.6
> 2001.08.16.10.14.57 src/gnu/usr.bin/man/makewhatis/makewhatis.local.8,v 1.8.2.3
> 
> makewhatis doesn't remove entries for nonexistent manpages by
> default.  i issued this command...
> 
> # cd /usr/local/man
> # makewhatis /usr/local/man
> 
> in its manpage, there is no mention of the default behaviour.  -v
> option would only "issue more warnings"; -a option would append to
> the database w/o checking if old entries are valid.
> 
> and that's what puzzles me.  i didn't specify the -a option, yet
> just that was happening.  i had to delete the existing whatis
> database so that changes in /usr/local/man would reflect.
> 
> 
> >How-To-Repeat:
> 
> - create whatis database in an appropriate directory, say, /usr/local/man.
> - move the whatis db to other name. 
> - change /usr/local/man's contents by (re)moving man/cat file(s).
> - recreate whatis db and comapare w/ the old version.
> 
> >Fix:
> 
> either document the default -a option (as described above) in
> makewhtais(1), or fix the makewhatis.
> 
> if manpage is modified, then please also add that to have fresh & clean
> whatis db, the current "whatis" needs to (re)moved.
> 
Hmm, I have exactly the same versions of files above, and can't
reproduce the problem.  I.e., without -a, makewhatis(1) doesn't
pre-open /usr/local/man/makewhatis, but rather does a search of
all manpages, sorts them, outputs them into makewhatis.tmp, and
then renames makewhatis.tmp to makewhatis.  Can you please show
me the output of the following command:

/usr/bin/makewhatis -v /usr/local/man


Cheers,
-- 
Ruslan Ermilov		Oracle Developer/DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age
Comment 2 ru freebsd_committer freebsd_triage 2001-12-18 16:52:02 UTC
State Changed
From-To: open->closed

Originator was confused by apropos(1) output for non-existing manpage link.
Comment 3 Crist J. Clark 2001-12-18 21:34:20 UTC
On Mon, Dec 17, 2001 at 08:16:42PM -0500, parv_@yahoo.com wrote:
> >Description:
> 
> makewhatis doesn't remove entries for nonexistent manpages by
> default.  i issued this command...
> 
> # cd /usr/local/man
> # makewhatis /usr/local/man
> 
> in its manpage, there is no mention of the default behaviour.  -v
> option would only "issue more warnings"; -a option would append to
> the database w/o checking if old entries are valid.
> 
> and that's what puzzles me.  i didn't specify the -a option, yet
> just that was happening.  i had to delete the existing whatis
> database so that changes in /usr/local/man would reflect.
> 
> 
> >How-To-Repeat:
> 
> - create whatis database in an appropriate directory, say, /usr/local/man.
> - move the whatis db to other name. 
> - change /usr/local/man's contents by (re)moving man/cat file(s).
> - recreate whatis db and comapare w/ the old version.

I can't reproduce this, and I from checking the code I really can't
see how this could happen. Are you sure that you are really removing
the manpage(s) completely from /usr/local/man (i.e. if the page has
multiple links, you'd need to get all of them)?
-- 
"It's always funny until someone gets hurt. Then it's hilarious."

Crist J. Clark                     |     cjclark@alum.mit.edu
                                   |     cjclark@jhu.edu
http://people.freebsd.org/~cjc/    |     cjc@freebsd.org
Comment 4 parv_ 2001-12-19 06:33:59 UTC
in message <20011218133420.B507@gohan.cjclark.org>, 
wrote Crist J. Clark thusly...
>
> On Mon, Dec 17, 2001 at 08:16:42PM -0500, parv_@yahoo.com wrote:
> > >Description:
> > 
> > makewhatis doesn't remove entries for nonexistent manpages by
> > default.  i issued this command...
> > 
> > # cd /usr/local/man
> > # makewhatis /usr/local/man
> > 
> > in its manpage, there is no mention of the default behaviour.  -v
> > option would only "issue more warnings"; -a option would append to
> > the database w/o checking if old entries are valid.
...
> 
> I can't reproduce this, and I from checking the code I really can't
> see how this could happen. Are you sure that you are really removing
> the manpage(s) completely from /usr/local/man (i.e. if the page has
> multiple links, you'd need to get all of them)?

hi crist, you came late to the party.

this pr had already been closed.  it was my own damn fault to
confuse apropos listing w/ makewhatis functioning.  please see
the closing remarks.

http://www.freebsd.org/cgi/query-pr.cgi?pr=32954

 - parv

--