Subject: etc/postinstall obsolete check versus SYS_INCLUDE=symlinks ...
To: None <>
From: Luke Mewburn <>
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 

    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...