Subject: Re: /etc/default ickiness...
To: None <tech-userlevel@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: tech-userlevel
Date: 09/15/2000 14:30:02
[ On Friday, September 15, 2000 at 19:04:32 (+1100), Luke Mewburn wrote: ]
> Subject: Re: /etc/default ickiness... 
>
> I currently *use* RCS for managing my /etc/ config files, and
> in the older scheme, manually upgrading /etc/rc.conf from
> /usr/src/etc/rc.conf was not trivial.

Yup!  Couldn't have said it better myself!

> Using CVS, vendor branches, and CVS merging might help a bit, but that
> can be overkill for many users, although I have considered it, only
> prevented by the lack of time to do it at the moment.

CVS causes far more problems than it solves in this application....

> I've noticed an interesting thing in these discussions about
> modifying the way that NetBSD is configured and managed:
> 
> 	People are quick to jump up and suggest that a tool
> 	``could easily be developed'', but few actually do
> 	the work and write the said tool which results in an
> 	easy to use, maintainable, and flexible tool.
> 
> 	If it was that easy, why hasn't it been done already?
> 	This upgrade problem has annoyed people ever since
> 	we shipped with rc.conf, yet no tool has been provided
> 	so far...
> 
> I've also been involved in supporting this problem in the field
> in other OSes that use a similar rc.conf concept (both natively
> and hacked in by us) for many years.

I can guarantee you that I'll need such a tool before I upgrade some of
my client systems and if that means I have to create it, I certainly will.

I already use a modified version of FreeBSD's old /etc update script on
my (sometimes)-current machine(s) and that works well enough for manual
merges, but it doesn't do the merging itself, nor does it really know
when a merge is necessary -- it only guesses using the RCS keywords,
which of course only works for those files which can contain comments.

Ideally sysinst should be the instigator of the initial steps necessary
to make upgrade merges "easy" -- it should insist upon creating RCS
files, complete with a branch for the "vendor" version, right at the
very beginning, i.e. even before it writes out its own localisation
stuff, so that at the very least a subsequent sysinst upgrade can easily
do the right thing.....

> I don't think there is One True Way for supporting upgrades of
> configuration files, especially given that NetBSD (unlike commercial
> OS releases) has to cope with people upgrading from a release or
> -current.

The ideas I have for a proper merge tool using RCS will be guaranteed to
work in all these circumstances, though I don't know that I'd go so far
as to call them the "One True Way(tm)."  :-)

> We've had to compromise because there isn't One True Way. I think we
> now provide something that is fairly simple (compared to other
> solutions) in terms of maintainability and understandability, and 
> allows the people who are working on future NetBSD releases to improve
> the upgrade mechanism for users on 1.5.

Exactly!  And big "Thank You!" for getting us this far too!

-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>      <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>