[Pkg-xfce-devel] Bug#734391: lightdm: language selection of lightdm seems to be totally fucked up

Klaus Maria Pfeiffer kmp+debian.bugs at kmp.or.at
Mon Jan 6 18:52:17 UTC 2014


Package: lightdm
Version: 1.9.5-1
Severity: normal

Dear Maintainer,

I know, that for that topic there are already some open bugs, but either they
are quiet old, only handling one part of this problem or workaround is not
complete.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679386
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694588
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733261

machine is debian testing/jessie with lightdm of experimental (lightdm 1.9.5-1,
lightdm-gtk-greeter 1.7.0-1 and liblightdm-gobject-1-0 1.9.5-1), but seen same
behaviour in lightdm of testing/jessie.

my setup on locale is the following, default set to none (lets call it testcase
#1). no, neither speak czech nor esperanto, its just for testing purpose.

;===
root at dodahos:~# locale -a
C
cs_CZ.utf8
C.UTF-8
de_AT.utf8
en_US.utf8
eo.utf8
POSIX

root at dodahos:~# cat /etc/default/locale
#  File generated by update-locale
#LANG=en_US.UTF-8
LANGUAGE="en_US:en"
;===

lightdm's dmrc cache and .dmrc file of all users just deleted.

;===
rm -f /var/cache/lightdm/dmrc/* /home/*/.dmrc
;===

initially, lightdm is suggesting me a total wrong locale czech (would have
awaited english due to LANGUAGE set), as you can see in
http://kmp.or.at/~klaus/lightdm_locale/screenshot_lightdm_tc1_0_virgin_czech.png

lets login. languages are mixed up, as you can see in
http://kmp.or.at/~klaus/lightdm_locale/screenshot_lightdm_tc1_1_first_login.png

;===
tux at dodahos:~$ export | grep -i lang
declare -x LANG="cs_CZ.utf8"
declare -x LANGUAGE="en_US:en"

tux at dodahos:~$ cat .dmrc
[Desktop]
Language=cs_CZ.utf8
Session=lightdm-xsession
;===

lets login with user bauersbua, but now with esperanto locale selected. same
here, don't need a screenshot. :-)

;===
bauersbua at dodahos:~$ export | grep -i lang
declare -x LANG="eo.utf8"
declare -x LANGUAGE="en_US:en"

bauersbua at dodahos:~$ cat .dmrc
[Desktop]
Language=eo.utf8
Session=lightdm-xsession
;===

so, lets init 6.

same as before, lightdm is suggesting me the wrong locale czech. I give the
username of bauersbua and language is switched to esperanto. fine. now I delete
username and give tux and language is still esperanto, would have awaited czech
now. see screenshot
http://kmp.or.at/~klaus/lightdm_locale/screenshot_lightdm_tc1_2_wrong_language.png

ok, lets select locale czech and login with tux. same as before. lets logout.
give username bauersbua, ... (same as before as after init 6).

lets sum up this testcase #1:
i system locale set to none
- wrong locale suggested by lightdm
- LANGUAGE not set correct by lightdm
- languages mixed up in xfce
- locale in lightdm looked up in .dmrc for user only first time.



there's a workaround mentioned in http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=679386#107, lets apply and test it as testcase #2.

lightdm's dmrc cache and .dmrc file of all users just deleted, as before.

perfect, fine w/ tux and bauersbua.

;===
tux at dodahos:~$ export | grep -i lang
declare -x LANG="cs_CZ.utf8"
declare -x LANGUAGE="cs_CZ:cs"

tux at dodahos:~$ cat .dmrc
[Desktop]
Language=cs_CZ.utf8
Session=lightdm-xsession
;===

;===
bauersbua at dodahos:~$ export | grep -i lang
declare -x LANG="eo.utf8"
declare -x LANGUAGE="eo:eo"

bauersbua at dodahos:~$ cat .dmrc
[Desktop]
Language=eo.utf8
Session=lightdm-xsession
;===

but, in LANG the string utf8 should be uppercase, according to
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679386#107

who the fuck is overwriting LANG with the wrong value?

even if I create a .xsessionrc to set LANG and LANGUAGE, LANG just gets
overwritten.

;===
tux at dodahos:~$ cat .xsessionrc
export LANG=cs_CZ.UTF-8
export LANGUAGE=cs_CZ:cs:en

tux at dodahos:~$ export | grep -i lang
declare -x LANG="cs_CZ.utf8"
declare -x LANGUAGE="cs_CZ:cs:en"
;===

lets sum up this testcase #2:
i system locale set to none
- wrong locale suggested by lightdm
+ LANGUAGE set correct due to patch out of http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=679386#107
- LANG overwritten even if set in .xsessionrc
+ only one language in xfce
- locale in lightdm looked up in .dmrc for user only first time.



ok, lets set system locale with dpkg-reconfigure locales to en_US.UTF-8.

;===
root at dodahos:~# locale -a
C
cs_CZ.utf8
C.UTF-8
de_AT.utf8
en_US.utf8
eo.utf8
POSIX

root at dodahos:~# cat /etc/default/locale
#  File generated by update-locale
LANG=en_US.UTF-8
LANGUAGE="en_US:en"
;===

lightdm's dmrc cache and .dmrc file of all users just deleted, as before.

this is testcase #3.

perfect, lightdm is suggesting me locale english. lets login tux with czech.
LANG still overwritten.

;===
tux at dodahos:~$ cat .dmrc
[Desktop]
Language=cs_CZ.utf8
Session=lightdm-xsession

tux at dodahos:~$ cat .xsessionrc
export LANG=cs_CZ.UTF-8
export LANGUAGE=cs_CZ:cs:en

tux at dodahos:~$ export | grep -i lang
declare -x LANG="cs_CZ.utf8"
declare -x LANGUAGE="cs_CZ:cs:en"
;===

now tux has .dmrc file, so, would await at next login lightdm is suggesting me
czech. nooo. its suggesting me english. wtf? seems to be lightdm is ignoring
users .dmrc file if LANG is set.

lets sum up this testcase #3:
i system locale set to en_US.UTF-8
+ system locale suggested by lightdm
+ LANGUAGE set correct due to patch out of http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=679386#107
- LANG overwritten even if set in .xsessionrc
+ only one language in xfce
- locale in lightdm never looked up in users .dmrc file due to system locale
set.



lets go for testcase #4 and set back system locale to none, remove patch from
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679386#107 (as initial) and
disable language selector in /etc/lightdm/lightdm-gtk-greeter.conf by setting
show-language-selector=false.

we will do now the language selection by .xsessionrc.

;===
tux at dodahos:~$ cat .xsessionrc
export LANG=de_AT.UTF-8
export LANGUAGE=de_AT:de
;===

tux is now austrian.

lightdm's dmrc cache and .dmrc file of all users just deleted, as before.

perfect!

;===
tux at dodahos:~$ cat .dmrc
[Desktop]
Session=lightdm-xsession

tux at dodahos:~$ export | grep -i lang
declare -x LANG="de_AT.UTF-8"
declare -x LANGUAGE="de_AT:de"
;===

also for bauersbua, who has no .xsessionrc and should be american.

;===
bauersbua at dodahos:~$ cat .dmrc
[Desktop]
Session=lightdm-xsession

bauersbua at dodahos:~$ export | grep -i lang
declare -x LANGUAGE="en_US:en"
;===

so, this seems to be the only workaround for now, just to disable language
selector in lightdm and set LANG and LANGUAGE in users .xsessionrc. don't
forget to rm old .dmrc files and dmrc cache as mentioned above!

lets sum up this testcase #4:
i system locale set to none
i language selector disabled
i no need for any patch
i LANG and LANGUAGE set in users .xsessionrc
- no possibility to select language during login.
+ works as expected



so it really seems to me, that language handling is totally fucked up in
lightdm.

* if system locale is set to none (LANG undef)
  * wrong locale is suggested by lightdm (seems to be the first avail non C
locale)
  * locale in lightdm looked up in users .dmrc only for the first time
* if system locale is set (LANG is set)
  * locale in lightdm never looked up in users .dmrc file
* LANGUAGE is always system default, only solved by patching as mentioned in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679386#107
* LANG gets overwritten when language selector is enabled even if set in
.xsessionrc

gre3tings, Klaus



-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (700, 'testing'), (650, 'stable'), (600, 'unstable'), (500, 'testing-updates'), (500, 'stable-updates'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.12-1-amd64 (SMP w/1 CPU core)
Locale: LANG=de_AT.UTF-8, LC_CTYPE=de_AT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages lightdm depends on:
ii  adduser                                3.113+nmu3
ii  consolekit                             0.4.6-3+b1
ii  dbus                                   1.6.18-2
ii  debconf [debconf-2.0]                  1.5.52
ii  libc6                                  2.17-97
ii  libgcrypt11                            1.5.3-3
ii  libglib2.0-0                           2.36.4-1
ii  libpam0g                               1.1.3-9
ii  libxcb1                                1.9.1-3.1
ii  libxdmcp6                              1:1.1.1-1
ii  lightdm-gtk-greeter [lightdm-greeter]  1.7.0-1

Versions of packages lightdm recommends:
ii  xserver-xorg  1:7.7+5

Versions of packages lightdm suggests:
pn  accountsservice  <none>
ii  upower           0.9.23-2+b1

-- debconf information excluded



More information about the Pkg-xfce-devel mailing list