Subject: Re: did the "make reinstall" functionality get slightly broken in
To: NetBSD Packages Technical Discussion List <tech-pkg@netbsd.org>
From: Hubert Feyrer <feyrer@rfhs8012.fh-regensburg.de>
List: tech-pkg
Date: 03/02/1999 21:19:01
On Tue, 2 Mar 1999, Greg A. Woods wrote:
> 	make reinstall FORCE_PKG_REGISTER=yes
                       ^^^^^^^^^^^^^^^^^^^^^^
The're 's your problem, as Todd already stated. Use "make deinstall
reinstall" instead (it's even shorter).



> I now see the problem too.  Setting FORCE_PKG_REGISTER only removes the
> package-specific files in the ${PKG_DBDIR}.  It doesn't clean up the
> merged database (i.e. pkgdb.byfile.db) at the same time, but it should.

Setting FORCE_PKG_REGISTER _only_ forces the package to be registered
(again) even if it was already there before - hence the name. 
The usual "install" target will just not care if the files did exist
before and overwrite them, but the pkgdb code in pkg_create is a bit more
cautious, but that's not the only one. If you use some package that tries
to do some @exec/@unexec-replacements in Makefile, you can fail as badly.

Again: Do NOT use FORCE_PKG_REGISTER. Use "make deinstall".

Forcing things with a sledge hammer may fix some things, but it tends to
break more other things - as you see for your case here.


> I don't see an easy way to do that without re-building that part of the
> database from scratch.  Perhaps pkg_delete needs the equivalent of
> "pkg_create -O" to ``fake'' the deletion of the package.

This step would still be needed to be called somewhere -> you're back at
the "make deinstall" here. 

Don't blame the existing code to be lame not to address problems you cause
yourself by not following standard uses. :)


 - Hubert

-- 
Hubert Feyrer <hubert.feyrer@rz.uni-regensburg.de>