[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Goals for 1.3?



OK, I'm back...

Bruce Perens:
> 
> From: Winfried Truemper <winni@xpilot.org>
> On Sat, 21 Dec 1996, Marek Michalkiewicz wrote:
> > > Hmm, I feel a little nervous about putting thigs like
> > > 
> > > SULOGIN=`cfgtool --get boot.sulogin`
> > > 
> > > at the very beginning of /etc/init.d/boot.  Why not just:
> > >
> > > . /etc/default/boot
> > 
> > Yes, you're right. :-)
> 
> No, I disagree. We're trying to take a step forward, not back. Sourcing
> lots of shell files means you need to have a tool to generate little shell
> files and a whole tree of little shell files wasting space, and no
> centralized management of configuration data, and no hierarchical
> organization of configuration data. It would be much better to have all
> of this information in one database.

Hmm...

I don't think it is a step back.  This would make it possible to do
all the configuration in little shell files, separate from the init
scripts (which wouln't then need to be configurable).  BTW the idea
is not mine - it is done that way on HP-UX 10:

/sbin/init.d/<package> scripts (similar to our /etc/init.d/<package>)
are not configurable (there is a warning in them that any changes will
be lost by upgrading) but they source /etc/rc.config.d/<package> where
all the configuration settings are (as name=value assignments).  For
example, /etc/rc.config.d/cron controls whether cron should be started
on system boot up (CRON=1 if yes), etc.  Their POSIX shell supports
arrays so they even configure multiple network interfaces this way
(but I don't know if there are plans to add arrays to bash).  There is
a fairly simple program (/usr/sbin/ch_rc) that can be used to modify
all these /etc/rc.config.d/* files (but vi can be used too of course).

These little shell files won't waste that much space - fortunately,
our filesystem is not FAT and uses the space quite efficiently.  You
can always use the wasted space (round up to whole blocks) to add more
comments documenting the settings...

Instead of a centralized database (sounds much like NT registry) we
could have one config file for each package - it looks clean enough
to me and fits very well with our current packaging system.  Just mark
these /etc/rc.config.d/<package> files as conffiles, and move all the
settings there from the init.d scripts.  Can be done gradually, when
the package maintainer has the time to do it - no need to switch to
the new scheme all at once.

> There is a very good reason. We want to be able to administer systems
> remotely, and we want to be able to set up a new system easily given a
> list of settings. The database lends itself to that.

How about a tar archive of the whole /etc/rc.config.d/* direcrotory
or a subset of it?  Just unpack it on all machines and they are all
configured the same.

>         . /etc/defaults/boot
>         . /etc/script-env/boot
> 
> PLEASE do not implement it this way. Do not make it necessary to have
> hundreds of little files to run a Debian system. Do it in one database,

One more little file for each package.  The safe defaults (to use when
the config file is missing) can be hardcoded in the init.d scripts,
there is no need to change them there (just create a config file).

> with a program to hide the format of the database from the rest of the
> system.

Perhaps that program could work like ch_rc on HP-UX?  Sorry I can't give
the man page - the problem is that this HP box is not on the Internet,
so I can't get to it right now.  But I like the idea.

> No, please do not depart from the database plan.

We could always define "database" to be a directory containing config
files, usually one for each package.

Marek


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-REQUEST@lists.debian.org . Trouble? e-mail to Bruce@Pixar.com


Reply to: