Bug#658020: console-setup: Upon installation console-setup sets CODESET to "Lat15", but it should be "guess"
First, I am sorry for my delayed responce on this bug report.
On Mon, Jan 30, 2012 at 09:03:11PM +0100, Nathan Cutler wrote:
> Package: console-setup
> Version: 1.75
> Severity: normal
>
> Dear Maintainer,
>
> * What led up to the situation?
>
> Background info:
> I have had the following in /etc/X11/xorg.conf for months, if not years:
>
> option "XkbRules" "xorg"
> option "XkbModel" "pc105"
> option "XkbLayout" "us,cz(qwerty)"
> option "XKbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll"
>
> Now I just did this:
>
> # apt-get purge keyboard-configuration
> # apt-get install keyboard-configuration
>
> Afterwards, the first thing I noticed was that the settings from
> /etc/X11/xorg.conf
> did not get transferred into /etc/default/keyboard.
I tried to reproduce this and obtained the following in /etc/default/keyboard:
XKBLAYOUT="us,cz"
XKBVARIANT="qwerty"
So the setting for XKBLAYOUT is transferred but the value of XKBVARIANT
is not correct. This will be fixed in version 1.76 of the package.
> But that's not directly relevant to this bug. I filled in those
> settings by hand.
>
> Then I did:
>
> # invoke-rc.d console-setup restart
>
> and found that some of the Czech characters did not display correctly.
> This was due to CODESET being set to "Lat15" in
> /etc/default/console-setup.
The file /etc/default/console-setup is not handled by the package
keyboard-configuration. Purging of keyboard-configuration has no effect
on it.
> When I changed this to "guess" and restarted console-setup again, the
> characters displayed correctly.
>
> So, the question is: why isn't CODESET set to "guess" by default? From my
> vantage point, it's a bug, because "guess" guesses the desired encoding using
> the system command "locale" (which works well in my case).
Actually "guess" guesses the desired set of symbols using only the
encoding of the system locale. In your case the encoding is UTF-8 in
which case 'guess' is equivalent to CODESET=Uni2 which covers most Latin
languages, some Cyrillic languages and also Greek.
The reason CODESET is not 'guess' by default is that the guesing does
not always work reliably. For example you might need Georgian or
Armenian letters and they are not included in Uni2. Thats why during
the configuration, the package tries to find more specific value for
CODESET that is based not only on the encoding of the locale but also on
the language and/or the country.
In your case you were not lucky because your locale was en_US.UTF-8 and
it doesn't tell that you need Czech symbols.
Anton Zinoviev
Reply to: