Subject: Re: more work in rc.d [was Re: rc, rc.shutdown proposed change]
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Todd Whitesel <toddpw@best.com>
List: tech-userlevel
Date: 03/17/2000 01:31:36
> Sanity check time.  As I said above, my monolithic rc file is 473
> lines.  rc.subr *alone* is 483.
> 
> In short, however (un)complicated you may find it, it's a hell of a lot
> more complicated than what we had before.

It also *does* more. A lot more. So it is not unreasonable for it to
be bigger, or more complicated.

I suppose you could make a case that it is now *bloated*. That's something
I can't speak to (I stopped tracking -current to do 1.4.2 release builds).

> You have managed to so completely miss the point of my wanting a
> monolithic script that I wonder if it's even worth attempting to
> explain it again.

This wasn't aimed at me, but it makes me think: Mouse, has it ever occurred
to you that _you_ are also being pretty damn stubborn here?? Other people
obviously want the new functionality, but you don't seem to be giving it
any credit at all. If you're assuming no one needs the new features just
because you don't need them, then that's a local assumption and it instantly
turns much of what you say here into opinions not marked as such.

> Being in a single file, per se, is not what I like about a monolithic
> rc script.  What I like is the comprehensibility and maintainability
> benefits that result.  A few of them are because everything is in a
> single file; many more of them are because everything is simple and
> straightforward (at least as compared to the split-up way).

The reason that it is simple and straightforward is because it only does
one thing: start everything. It does not restart, it does not stop. It
does not manage dependencies nor does it provide for correct insertion
of 3rd party services.

I think rcorder needs official diagnostic options so we can get it to tell
us what the heck it plans to do. It should be possible to get rcorder
to generate a "flat" script that properly represents a classic rc file,
but it would also be able to do this for shutdown as well as startup.

Better, the rc.d stuff should be capable of acting as the build system
for /etc/rc. This would especially be handy for debugging purposes.

At the very least, it sounds like two modes, new-style and monolithic+pkgsrc,
would be needed to satisfy everyone who's piped up so far. Shouldn't be too
hard to get sysinst to set them both up, but of course we'd better document
how to do this (after the section where we tell them how to run MAKEDEV...
now where was that in the manual?).

Todd Whitesel
toddpw @ best.com