Subject: etc/postinstall obsolete check versus SYS_INCLUDE=symlinks ...
To: None <tech-userlevel@netbsd.org>
From: Luke Mewburn <lukem@netbsd.org>
List: tech-userlevel
Date: 11/26/2002 15:27:37
[cc-ed to tech-toolchain@ because SYS_INCLUDE is arguably a toolchain issue]

I recently added support to etc/postinstall to support checking for
and removing "obsolete" files, as specified in distrib/sets/*/obsolete.*
 
However, Jason disabled that support because it causes problems on 
systems which use SYS_INCLUDE=symlinks (where /usr/include/sys
contains symlinks instead of the actual header files).  (He
currently has at least one system like this).
 
Obviously, I think this is not optimal, because I think that the
obsolete check/fix is useful to users, especially those upgrading
(which is what the purpose of postinstall is...)
 
On discussing this with Jason, there are at least the following 
options:

    a)	Deprecate support for SYS_INCLUDE=symlinks, and always use
	SYS_INCLUDE=copies (which is the default anyway).
	I believe this is Jason's preferred approach, and I'm happy
	to do this as well.
	[Jason; please correct me if I'm misrepresented your position.]
 
    b)	Reenable the support in postinstall for obsolete file checking,
	and people who build using SYS_INCLUDE=symlinks will have to
	use NOPOSTINSTALL=1 for their builds, and avoid using
	"postinstall fix obsolete" manually.
	(Note: SYS_INCLUDE=symlinks only works for DESTDIR=/
	builds anyway)

    c)	Add support into etc/postinstall to determine if make(1)
	has SYS_INCLUDE=symlink and skip the obsolete check in
	that case.

    d)	Do nothing, and don't offer the (IMHO) useful functionality
	of checking for and/or removing obsolete files.
	I don't really consider this as a valid solution...

Comments?

Luke.