Bug 508628

Summary: error activating xkb when using automaticlogin in /etc/gdm/custom.conf
Product: [Fedora] Fedora Reporter: Muayyad Alsadi <alsadi>
Component: xkeyboard-configAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: campbecg, jrb, mcepl, mcepl
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 508661 (view as bug list) Environment:
Last Closed: 2010-02-26 22:34:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 508661    
Attachments:
Description Flags
screenshot of the error none

Description Muayyad Alsadi 2009-06-29 08:46:59 UTC
Description of problem:
since F9 I was getting error activating xkb but it was not reproducible in all cases, for example I used to set my keyboard with system-config-keyboard and keeps gdm on that value and never change it to silence that error message.

today when I was testing autoamtic login using the steps below, I got it again.

Version-Release number of selected component (if applicable):
xkeyboard-config-1.5-5.fc11.noarch
gdm-2.26.1-10.fc11.i586
gnome-applets-2.26.2-1.fc11.i586
nautilus-2.26.3-1.fc11.i586

How reproducible:
always

Steps to Reproduce:
1. system->preferences->hw?->keyboard->add a second layout
2. type (replace alsadi with your login name):
cat <<EOF >>/etc/gdm/custom.conf
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=alsadi
EOF

Additional info:
BTW ls ~/ works but opening home with nautilus does not work

somehow related to the following bugs
https://bugzilla.redhat.com/show_bug.cgi?id=493650
https://bugzilla.redhat.com/show_bug.cgi?id=487583

Comment 1 Muayyad Alsadi 2009-06-29 08:55:09 UTC
Created attachment 349756 [details]
screenshot of the error

Comment 2 Muayyad Alsadi 2009-06-29 08:56:21 UTC
I forget to mention that in gnome-keyboard-properties I use alt+shift to change the layout and use scroll lock led as indicator

Comment 3 Muayyad Alsadi 2009-06-29 09:44:13 UTC
I found it, I FOUND IT, wow!!
I was grepping the source code of control-center and libxklavier and libgnomekbd for long time and wonder where does this message come from.
I noticed some .po files having it in control-center but no .c file contain it.

at last I found it, that obscure message comes from gnome-settings-daemon
plugins/keyboard/gsd-keyboard-xkb.c

Comment 4 Muayyad Alsadi 2009-06-29 16:23:49 UTC
this is not specific to automatic login, it was just a coincidence

I added the following patch, trying to catch the problem

--- libgnomekbd/gkbd-keyboard-config.c~	2009-06-29 16:05:36.669754210 +0300
+++ libgnomekbd/gkbd-keyboard-config.c	2009-06-29 16:08:48.080753691 +0300
@@ -219,6 +219,9 @@
 		xkl_debug (150,
 			   "Loaded Kbd layout (with variant): [%s]\n",
 			   full_layout);
+		FILE *f=fopen("/tmp/KBD-DEBUG","at+");
+		fprintf(f,"layouts [%s]\n", full_layout);
+		fclose(f);
 		gkbd_keyboard_config_layouts_add_full (kbd_config,
 						       full_layout);
 		p++;
@@ -239,6 +242,9 @@
 			group[len] = 0;
 			xkl_debug (150, "Loaded Kbd option: [%s][%s]\n",
 				   group, option);
+			FILE *f=fopen("/tmp/KBD-DEBUG","at+");
+			fprintf(f,"option [%s] \t [%s]\n", group, option);
+			fclose(f);
 			gkbd_keyboard_config_options_add (kbd_config,
 							  group, option);
 		}
@@ -480,6 +486,9 @@
 				      GkbdKeyboardConfig *
 				      kbd_config_default)
 {
+	FILE *f=fopen("/tmp/KBD-DEBUG","at+");
+	fprintf(f,"**** gkbd_keyboard_config_load_from_gconf\n");
+	fclose(f);
 	gkbd_keyboard_config_load_params (kbd_config,
 					  GKBD_KEYBOARD_CONFIG_ACTIVE);
 
@@ -518,6 +527,9 @@
 					  XklConfigRec * data)
 {
 	gboolean own_data = data == NULL;
+	FILE *f=fopen("/tmp/KBD-DEBUG","at+");
+	fprintf(f,"**** gkbd_keyboard_config_load_from_x_current\n");
+	fclose(f);
 	if (own_data)
 		data = xkl_config_rec_new ();
 	if (xkl_config_rec_get_from_server (data, kbd_config->engine))
@@ -662,7 +674,9 @@
 {
 	gboolean rv;
 	XklConfigRec *data = xkl_config_rec_new ();
-
+	FILE *f=fopen("/tmp/KBD-DEBUG","at+");
+	fprintf(f,"**** activating\n");
+	fclose(f);
 	gkbd_keyboard_config_copy_to_xkl_config (kbd_config, data);
 	rv = xkl_config_rec_activate (data, kbd_config->engine);
 	g_object_unref (G_OBJECT (data));


and clicked restore defaults, then start adding some layouts
[us,us intl,tr,pk ar,ar]
and I got this

[alsadi@pc1 ~]$ cat /tmp/KBD-DEBUG 
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_x_current
layouts [us]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp_led] 	 [grp_led:scroll]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp] 	 [grp:alt_shift_toggle]
option [altwin] 	 [altwin:super_win]
**** activating
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_x_current
layouts [us	]
layouts [us	alt-intl]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp_led] 	 [grp_led:scroll]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp] 	 [grp:alt_shift_toggle]
option [altwin] 	 [altwin:super_win]
**** activating
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_x_current
layouts [us	]
layouts [us	alt-intl]
layouts [tr	]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp_led] 	 [grp_led:scroll]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp] 	 [grp:alt_shift_toggle]
option [altwin] 	 [altwin:super_win]
**** activating
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_x_current
layouts [us	]
layouts [us	alt-intl]
layouts [tr	]
layouts [pk	ara]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp_led] 	 [grp_led:scroll]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp] 	 [grp:alt_shift_toggle]
option [altwin] 	 [altwin:super_win]
**** activating
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_gconf
**** gkbd_keyboard_config_load_from_x_current
layouts [us	]
layouts [us	alt-intl]
layouts [tr	]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp_led] 	 [grp_led:scroll]
option [terminate] 	 [terminate:ctrl_alt_bksp]
option [grp] 	 [grp:alt_shift_toggle]
option [altwin] 	 [altwin:super_win]
**** activating
**** gkbd_keyboard_config_load_from_gconf


the strange thing is that arabic did not appear in the list of output

I have the following question
why arabic layour in 3 letters not just two ara not ar [as in ISO] ?
why it did not appear in the debug stubs ?
why the error message dıd not appear although when I added ıt but ıt appears on next boot ?

Comment 5 Muayyad Alsadi 2009-06-29 16:24:18 UTC
is this bug related to https://bugzilla.redhat.com/show_bug.cgi?id=487583

Comment 6 Muayyad Alsadi 2009-06-29 21:26:23 UTC
I found why did this appeared when I used automatic login.
it was because gdm do sets a keyboard layout, I found that in the logs made by my patch above. it seems that GDM sets thet layout but ignored the options (which switch the layout)

this is very complex
let's list the component that affect setting the keyboard

rhpl - used by fedora-setup-keyboard at compile time [is the any other usage ?]
xkeyboard-config - the x.org files [it seems that for qwerty for Arabic is not made a default alias or variant, but the default points to invalid variant or something like that]
gdm - to what options ?
fedora-setup-keyboard - uses dbus to tell X, system wide layout
  a. it's no longer in python and thus rhpl.keyboard_models is done at compile time
  b. does it take a signle value of KEYTABLE="ar-qwerty" or does it obey the rest variable in /etc/sysconfig/keyboard LAYOUT, OPTIONS,
VARIANT
gnome-settings-daemon - which activates the layout based on gconf /desktop/gnome/peripherals/keyboard/kbd
control-center - contains gnome-keyboard-properties
libgnomekbd - the library that talks to libxklavier and converts to gconf
libxklavier - the back end library used by gnome related apps
xorg-x11-xkb-utils - contains setxkbmap - the man page says that it takes only one single variant not a list of variants
xorg-x11-utils - contains xprop which is used like this xprop -root | grep XKB

during the many experiments I was doing and inspecting all those tools
I got this

[alsadi@pc1 ~]$ gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd
layouts = [us\,ara]
 options = []
 model = 

it happened which this config

[alsadi@pc1 ~]$ cat /etc/sysconfig/keyboard
KEYBOARDTYPE="pc"
KEYTABLE="ar-qwerty"
LAYOUT="ara,us"
MODEL="pc105"
OPTIONS="grp_led:scroll,terminate:ctrl_alt_bksp,grp:alt_shift_toggle,altwin:super_win"
VARIANT="qwerty,"

making things easier to test
1. update the man page of setxkbmap to say that it takes a comma separated list of variants [if this is the case] or fix it to be so then update the man page.
2. check if Arabic layout works without setting a variant eg.
  layouts = [us	,ara	qwerty,tr]
should work as
  layouts = [us	,ara,tr]
3. gconf layouts entry in gnome takes a comma separated of tab separated layout variant couples. and this is broken somewhere when system wide conf contains more than one variant as it escaped the comma
4. to test if system-wide config works without the gdm/gnome interference install xfce and set it as default desktop then use automatic login to skip gdm
because when I tried typical gdm with xfce, layout switching did not work and xprop -root | grep XKB reports that the options where empty but the layouts where there. 

_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "evdev", "us", ",qwerty", "terminate:ctrl_alt_bksp,grp_led:scroll,terminate:ctrl_alt_bksp,grp:alt_shift_toggle,altwin:super_win"
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "us,ara", "", ""

when I set it to automatic login, layouts xfce worked fine with right options

Comment 8 Matěj Cepl 2009-11-05 18:33:21 UTC
Since this bugzilla report was filed, there have been several major updates in various components of the Xorg system, which may have resolved this issue. Users who have experienced this problem are encouraged to upgrade their system to the latest version of their packages. For packages from updates-testing repository you can use command

yum upgrade --enablerepo='*-updates-testing'

Alternatively, you can also try to test whether this bug is reproducible with the upcoming Fedora 12 distribution by downloading LiveMedia of F12 Beta available at http://alt.fedoraproject.org/pub/alt/nightly-composes/ . By using that you get all the latest packages without need to install anything on your computer. For more information on using LiveMedia take a look at https://fedoraproject.org/wiki/FedoraLiveCD .

Please, if you experience this problem on the up-to-date system, let us now in the comment for this bug, or whether the upgraded system works for you.

If you won't be able to reply in one month, I will have to close this bug as INSUFFICIENT_DATA. Thank you.

[This is a bulk message for all open Fedora Rawhide Xorg-related bugs. I'm adding myself to the CC list for each bug, so I'll see any comments you make after this and do my best to make sure every issue gets proper attention.]

Comment 9 Chris Campbell 2009-12-06 15:37:13 UTC
Muayyad, is this still an issue for you with an updated system?

-- 
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers

Comment 10 Matěj Cepl 2010-02-26 12:21:12 UTC
Could you please reply to the previous question? If you won't reply in one month, I will have to close this bug as INSUFFICIENT_DATA. Thank you.

[Note please, that this is machine generated comment for large amount of bugs; due to some technical issues, it is possible we've missed some of the responses -- it is happens, please, just a make a comment about that; that we will see. Thank you]

Comment 11 Muayyad Alsadi 2010-02-26 14:29:27 UTC
I'm using patched gdm, so I can't give feedback.

I'll wait for F13 alpha and file a new bug or reopen this

Comment 12 Chris Campbell 2010-02-26 22:34:46 UTC

-- 
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers