On Sun, Feb 22, 2015 at 11:11:04PM -0500, Daniel Richard G. wrote:
> On Fri, 2015 Feb 20 15:00+0100, Agustin Martin wrote:
> >
> > Strange, I could only reproduce this without apt-utils. In a chroot
> 
> Hmm. I'm able to reproduce this fairly easily. Below, when I get the
> debconf dialog, "american" is selected. (The warning is new to me,
> however; I don't believe I've seen that before.)
> 
> This is starting from a minimal Jessie install:
> 
>     # dpkg -l | grep apt-utils
>     ii  apt-utils                     1.0.9.6                     i386        
>  package management related utility programs
> 
>     # echo 
> "dictionaries-common@dictionaries-common/default-wordlist@select@english 
> (Webster's Second International English wordlist)" | tr @ '\t' | 
> debconf-set-selections 
> 
>     # apt-get install miscfiles
>     Reading package lists... Done
>     Building dependency tree       
>     Reading state information... Done
>     The following NEW packages will be installed:
>       miscfiles
>     0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
>     Need to get 1,208 kB of archives.
>     After this operation, 3,069 kB of additional disk space will be used.
>     Get:1 http://apt-cacher.example.com:3142/debian/ jessie/main miscfiles 
> all 1.4.2.dfsg.1-9.1 [1,208 kB]
>     Fetched 1,208 kB in 0s (4,308 kB/s)
>     Preconfiguring packages ...
>     [wordlist,dico_get_default_value]: dictionaries-common warning:
>      debconf question "dictionaries-common/default-wordlist" value did not 
> match that in "/var/cache/dictionaries-common/wordlist-default"
>      Changing debconf value "english (Webster's Second International English 
> wordlist)" to "american (American English)"

Hi, Daniel, 

This last lines show the reason for the problem you have. By the way,
things are working as expected.

Pre-seeding is intended for first installation, when no elements (wordlists,
ispell dictionaries) are previously installed and apt-utils is already
installed (pre-seeding will not work with shared questions otherwise).
However, pre-seeding is not intended to work once dictionaries are installed
and a default value selected. This default value will also be written to 
"/var/cache/dictionaries-common/wordlist-default" (for wordlists) and become
the "true value". If it contains a valid value and different from what
debconf thinks, "true value" will win (I should have put it under /etc, but
changing it now does not worth) and debconf value will be forcibly set to
that "true value".

If you already have some wordlists installed and want to install a new one
and make it the default value you use one of 

  1) Once new wordlist is installed, call `select-default-wordlist' as root
     and select the new value.
  2) Temporarily set a debconf priority threshold lower than high (e.g.
     medium with DEBIAN_PRIORITY ENVAR, see debconf(7)) before installing
     the new wordlist. This will trigger the debconf question on instalation
     of the new wordlist.
  3) Manually change "/var/cache/dictionaries-common/wordlist-default" to
     the new value. Must be sure that the string is exactly one of the valid
     strings, in the same encoding as the original master string identifier.
     *This is discouraged*. Using `select-default-wordlist' is largely
     preferred because 3) is more error prone. Incidentally, this is the
     reason why I put the backup value under /var insted of under /etc, so
     it is used internally in case of debconf database corruption, but
     leaves 1) as the preferred method.

> > dictionaries-common should support this. Also, note that usually it is
> > not other package who does the preseed when used, but some sort of
> > "master" process during the installation.
> 
> That's indeed what I'm doing; a master script runs debconf-set-
> selections first and then "apt-get install" as needed.

The difference is that you already have some wordlists installed.

> Incidentally... is it supported to set a debconf value of just e.g.
> "english" or "american"---that is, minus the descriptive text in
> parentheses? I can't help but feel that only the first word should
> matter, but the debconf choice values including the parentheticals does
> imply otherwise.

Sadly no, that string is used as full identifier. Note that wordlists have
different sizes or variants, so the full name is relevant. Also, this schema
was designed way before debconf supported internationalized choices, with
the parenthesized text supposed to contain the text in dictionary
pseudo-language. This was some sort of poor's man internationalization, but
at that time no better choice was available. And that string is internally
used as master identifier for each wordlist, so changing it will trigger new
debconf questions unless a lot of migration code is written. So, changing it
does not worth the work.

In short, I strongly suggest to use `select-default-wordlist'.

Regards,

-- 
Agustin


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to