#761034 debconf-set-selections is ignored

#761034#5
Date:
2014-09-10 07:22:13 UTC
From:
To:
Looking at the output of debconf-get-selections and the
preset values shown by dpkg-reconfigure it seems to me
that sometimes they do not match. Example: If I change
the database for mdadm using

echo -e "mdadm\tmdadm/mail_to\tstring\tmonitoring@example.com" | debconf-set-selections
debconf-get-selections | grep ^mdadm

then I can see the new value in the output of debconf-\
get-selections, but dpkg-reconfigure still uses the old
value.

Seems that there are 2 databases. This is confusing and
unexpected. How can I change the real one for a non-
interactive reconfiguration?

This problem is not restricted to mdadm. exim4-config
doesn't play nice, either. I am sure there are more.


Regards
Harri

#761034#10
Date:
2014-09-10 19:49:35 UTC
From:
To:
Harald Dunkel wrote:

There are not 2 databases.

It's up to individual packages how they deal with debconf settings.
In general, the current configuration of the system is preferred over
what is in the debconf cache when reconfiguring a package. It's often
considered a bug if a package uses some, possibly old value from the
debconf cache and blows away local admin changes to the system.

Debconf preseeding is not really intended to be used with dpkg-reconfigure,
but instead to be done before a package is installed for the first time.

#761034#15
Date:
2014-09-11 07:13:33 UTC
From:
To:
I understand. Maybe I am too blind to see, but this is completely
left out in debconf(1) and others, i.e. the "confusing and unex-
pected" still stands.

Maybe it would help to extend the Debian policy to make sure that
packages do not ignore their own(!) options stored in the debconf
database? Just for using debconf, of course.

debconf-set-selections(1):

"debconf-set-selections can be used to pre-seed the debconf data-
base with answers, or to change answers in the database. Each
question will be marked as seen to prevent debconf from asking the
question interactively.

WARNING
Only use this command to seed debconf values for packages that will
be or are installed. Otherwise you can end up with values in the
database for uninstalled packages that will not go away ..."

No word about "first time install only".

Some real-life packages simply behave differently to what is des-
cribed in the man page, even though they are using debconf. This
doesn't seem right.


Regards
Harri