Re: dh_config_model_upgrade: package upgrade with Config::Model
Le vendredi 4 décembre 2009 19:38:19, Neil Williams a écrit :
> That's a user change, I thought the point of this was that changes *not
> done by users* are causing problems. Different problem.
Currently, debian package will detect correctly if a user (or a script) left
the configuration unmodified and will upgrade the conf with the new file
coming from the package. This is perfectly fine.
As explained by gregoa, problem arise when a package script needs to keep
user's modifications and merge them with configuration data coming from new
Currently the only way to address this is to write ad-hoc code in the postinst
script. This is costly and often hard to maintain.
Another possibility is to perform three-way merge with ucf. This will often
succeed but not always: 3-way merge works at syntactic level and not semantic
level so it can often fails. For instance leaving duplicated config
parameters. and error prone.
Config::Model tries to fix this by performing the merge at semantic level.
> That's not how I understood the purposes of it, although it could be
> used that way, it isn't sufficient justification IMHO.
> If admins make changes, admins should expect to handle the dpkg
This is where we disagree: admins are not the only users of Debian.
Config::Model tries to bring a solution for non-admin users. The kind of users
which are often comfortable on Ubuntu or Windows (yikes) because Ubuntu or
Windows tries to make thing easy for users (whether they succeed or not is
troll food and I will not express an opinion there :-p )
Config::Model tries to address 2 problems:
- configuration upgrade (which should be silent)
- application configuration (with the generated user interfaces)
I agree with you that experienced admins will not see a value in the GUI
("real men don't click") but the GUI will be welcome by casual users. IMHO,
Config::Model provides a way to generate these interfaces while no costing too
much to specify *and* maintain.
> I thought the idea of this was to handle changes not made by users - I
> think we agree that those instances are bugs.
To ease the user's life, Config::Model keeps users changes but also propagate
new data required by application evolutions.
> The postinst doesn't have to parse the conffile, it just has to not
> generate the dpkg result (by generating the conffile instead of
> packaging it) and allow the app to transition from one to the next.
This is not always the case. Hence some upgrade tools were written by Debian
> If the existing file is different to what the package thinks it can
> upgrade, the package should not require dpkg to generate the error and
> the consequent halt of the package installation.
That a possibility which was choosen by RedHat. It's fine for servers, less so
All the best
http://config-model.wiki.sourceforge.net/ -o- http://search.cpan.org/~ddumont/