Subject: Re: NetBSD master CVS tree commits
To: None <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
From: Objects In Mirror Are Closer Than They Appear <greywolf@defender.VAS.viewlogic.com>
List: current-users
Date: 04/01/1996 11:36:39
I promised myself I'd mostly stay out of this round ("yeah, great, NOW
you abstain -- AFTER you've opened the can of functions returning
pointers to worms!"), but I saw several good ideas flash by here.

1)	Have a single script:  /etc/rc.d/S00rc which would run the
	default stuff, if you don't want the rc.d type stuff...

2)	Have rc and rc.local stay as they are except when packages
	are added, go ahead and add them to /etc/rc.d, and have a
	check for the presence of /etc/rc.d somewhere in rc.local,
	running stuff in /etc/rc.d if it exists...

2) would be all right.  The stout of heart could simply tack on the
contents of the rc.d scripts (in order) to the end of /etc/rc.local
(or put them wherever) and you could then effectively delete the rc.d
stuff (though that does appear to be a bit of a wombat).

Forgive me, please, I'm going to ramble for a bit.

I can see some arguments for having stuff in rc.d; but there again,
optional is good.  netstart (which I _still_ keep referring to as
rc.net) seems to be just a config script, and it doesn't seem to
do much of anything other than to add routes and ifconfig the
interfaces, which is pretty minimal.  I don't see much gained by
putting all that stuff into /etc/rc.d.

Packages, though, appear to be a different story.  They're not
going to change their ways for a few BSD die-hards like myself.
They're going to want to write stuff which installs rc.d scripts,
in such a way as to keep it as orthogonal as possible.  This
makes sense since most of the kommerzial world has migrated to
Missed 'em five R4v<dujour>.  They want pkgadd/pkgrm, rc*.d
[which really link into init.d] and the like.

To accommodate this, we need to support it.  We can kick and
scream about it but, considering the significantly larger user
base of SVR4 at the moment, I doubt we'll change their minds.

In short what we'd end up with is:

	init.d -> rc.d/		init script directory - ADD
[should we link rc.d to rc[234].d?  (switch the sense if the wording confuses
 you)]

	/etc/rc			Main part of the startup - LEAVE ALONE
	/etc/netstart		Network configuration and flags - LEAVE ALONE
	/etc/rc.local		Local configuration - MODIFY SLIGHTLY
[I'd think at first glance that everything AFFECTED by netstart ought
 to go in local -- correct me if this doesn't make sense]

	rc.local would run

	if [ -d /etc/rc.d ]; then
		(cd /etc/rc.d
		 for file in S*; do
		 sh $file start; done); fi

In this way, we'd hold on to some semblence of sanity (rc, netstart,
rc.local) while making it a bit easier to add/delete 3rd party software.
Having thought about this for a while and overriding my urge to say "It's
different.  It's not what I'm used to.  I don't like it." (as I suspect
happens to many of us when confronted with change), I think this might
be a way to, if not please everyone, arrive at a mostly mutually acceptable
solution.

Comments?  I mean, I'm sure some of you will say "what an idiot(ic pro-
posal)!", but still:  Comments?

				--*greywolf;
--
"Do not meddle in the affairs of wizards,
 for you are crunchy and taste good with ketchup."  --unknown;