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

Re: package configuration design



Previously Raul Miller wrote:
> > We want to make a package which does not break older dpkg's ...
> 
> Hmm.. I presume that this means that the lowest-common denominator
> front-end is always available, and it's up to the user to arrange
> for the presence of some other front end?

Correct. The simplest implementation being a simple thing which just
prints/asks the things one at a time. The desing says somewhere (or
should) that multiple questions can be presented in the same time,
but never says that is obligatory.

> > Each variable has associated with it one or more tags
> > (meta-information). These are used to detect if a variable has been
> > changed by the user or not, in much the same manner as md5sums are
> > used to detect changed conffiles.
> 
> I was with you up to here.  This one lost me.

meta-data is actually quite simply. What I hand in mind mostly was a
tag which says if the variable was set by a package or by a user. This
way when a configmodule does DSET and the frontend sees from the metadata
the variable was last set by the user and not by the package, it refuses
to change the variable since it isn't the default already.

> This doesn't seem to be reflected in your i/o language, and I'm having
> a hard time imagining how it would be a good idea.  [Remember that for
> system stability the scripts are supposed to be idempotent -- running
> multiple times with the same parameters should have the same result,
> except for pathological circumstances.]

It's the same idea as the md5sums for conffiles dpkg currently keeps. I just
wanted to be able to think of more meta-data tags in the future, so that's
why I was a bit vague here. I'll add some more text on it in the next version.

> Hmm.. I was thinking that the simplest possible method is using
> that old standby of shell scripts: execute a command and capture
> its output.
 
> If nothing else, I'd think that dedicating stdin/stdout to this
> process would interfere with dpkg being able to install older
> packages which use stdin/stdout differently.

But that's something different: stdin/stdout are only refocused for
the configuration-module. And that already knows that and still has
stderr open for errors. The other scripts run just as before.

> >   CAPB
> >      Asks the frontent for a list of capabilities. The includes
> >      interactiveness!
> 
> This would need a bit more definition.

The idea was to be able to add optional features to the frontend and make
it possible for the configmodule to check for there existance.

> > The frontend has complete responsibility for the layout of the questions,
> > with the exception that the ordering must not be changed.
> 
> I'm also confused by this.  I guess you're implying some kind of implicit
> geometrical left-to-right, top-to-bottom order for interactive use?

Indeed. It's something like html or LaTeX: you specify the function of
something (string input, static text, etc.) and let the frontend decide
how to display that.

> Overall, though, this seems like it's tending in the right direction.

Thanks! Feedback like this is very much appreciated if we ever want to
start with this.

Wichert.

Attachment: pgpkRCLq473G5.pgp
Description: PGP signature


Reply to: