Subject: Re: 3.1_STABLE issues
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Louis Guillaume <lguillaume@berklee.edu>
List: netbsd-users
Date: 11/12/2006 19:41:30
Manuel Bouyer wrote:
> On Sun, Nov 12, 2006 at 02:35:58PM -0500, Louis Guillaume wrote:
>> Manuel Bouyer wrote:
>>
>>> OK, so you didn't upgrade, you've *downgraded* from current to netbsd-3.
>>> postinstall doesn't support downgrade.
>>>
>> No. I think you misunderstood...
>>
>> I `downgraded' last year. So there is some extraneous stuff in the 
>> filesystem. I understand postinstall can't clean up items it does not 
>> know about.
>>
>> But I've been on netbsd-3 since October 2005. And performed several 
>> upgrades and postinstalls with no issue.
>>
>> This problem also happened on another system where I was doing a binary 
>> upgrade.
>>
>> Just look at /etc/mtree/set.base and the list of obsoletes. And I *did* 
>> run etcupdate too, so the mtree files are up-to-date...
> 
> Well, for librairies postinstall makes the list of obsolete files/links
> dynamically, by keeping only the last version of the dynamic librairies
> in each directory. So in your case you downgraded from current to
> netbsd-3, but you still have old (but unused because the symlinks properly
> points to the release versions) current library, with minor numbers
> highter than the ones from the release. So postinstall wants to
> keep the old current ones which are, in fact, the one that are obsolete.
> You have to remove by hands these old libs, postinstall can't deal with that.
> 

Got it! Thanks.

I didn't realize that postinstall was really checking the filesystem for 
  libraries of higher versions than what should be in /etc/mtree.

Could there be some option to postinstall to be strict about the 
versions of the libraries (and other files) in /etc/mtree?

This could ensure the `cleanness' of the system within the desired 
release, and would effectively allow one to downgrade from more current 
branches if desired.

This is how I'm going about cleaning up my system...

maat# find /lib ! -exec grep -q {} /etc/mtree/set.* \; -exec rm {} \; -print
/lib/libevent.so.1
/lib/libtermlib.so.0.6
/lib/libm387.so.0.1
/lib/libm.so.0.3
/lib/libevent.so.1.0
/lib/libtermcap.so.0.6
/lib/libutil.so.7.7

maat# find /usr/lib ! -exec grep -q {} /etc/mtree/set.* \; -exec rm {} 
\; -print
/usr/lib/libcurses.so.5.11
/usr/lib/libcurses.so.5
/usr/lib/security/pam_afslog.so.0
/usr/lib/libform.so.3.1
/usr/lib/libform.so.3
/usr/lib/libmenu.so.4.1
/usr/lib/libmenu.so.4
/usr/lib/libpci.so.0.0
/usr/lib/libpci.so.0
/usr/lib/libbfd.so.6.0
/usr/lib/libbfd.so.6
/usr/lib/libform.so.4
/usr/lib/libform.so.4.0
/usr/lib/libssh.so.0
/usr/lib/libssh.so.0.0
/usr/lib/libevent.so.1.0
/usr/lib/libevent.so.1
/usr/lib/libtermcap.so.0.6
/usr/lib/libtermlib.so.0.6
/usr/lib/libm387.so.0.1
/usr/lib/libm.so.0.3
/usr/lib/libc.so.12.135
/usr/lib/libssh.so.1.1
/usr/lib/libutil.so.7.7
/usr/lib/libpcap.so.1.5