Bug 5180 - Can't use system setxkbmap/XKB libraries on RHEL 5
Summary: Can't use system setxkbmap/XKB libraries on RHEL 5
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: VNC (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.3.0
Assignee: Peter Åstrand
Keywords: ossman_tester, prosaic
Depends on:
Reported: 2014-06-03 15:21 CEST by Karl Mikaelsson
Modified: 2014-10-06 16:16 CEST (History)
0 users

See Also:
Acceptance Criteria:


Description Karl Mikaelsson cendio 2014-06-03 15:21:49 CEST
We've had a couple of reports that setxkbmap/the gnome keyboard utilities fails on RHEL 5, with big fat error messages popping up in the users face. Pierre distilled the issue down to this:

> [cendio@dhcp-253-238 ~]$ setxkbmap -print
> Couldn't find rules file (evdev) 

setxkbmap looks at the _XKB_RULES_NAMES property to determine which rules it is going to use.

> [cendio@dhcp-253-238 ~]$ xprop -root | grep XKB
> _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""

It seems like Xvnc sets rules to evdev by default. This causes problems where the local system doesn't have rules for evdev defined, and RHEL 5 is such a system.

> [cendio@dhcp-253-238 ~]$ ls /usr/share/X11/xkb/rules/
> base      base.xml  sgi  xfree98  xorg      xorg.xml
> base.lst  README    sun  xkb.dtd  xorg.lst

> [cendio@dhcp-253-238 ~]$ ls /opt/thinlinc/share/X11/xkb/rules/
> base             base.lst  evdev             evdev.lst  README   xkb.dtd
> base.extras.xml  base.xml  evdev.extras.xml  evdev.xml  xfree98

If we manually set the rules to base, we can use the system XKB tools again. Until we've found a good solution to this bug, setting this from an early xstartup.d script would seem like the best workaround.

> [cendio@dhcp-253-238 ~]$ setxkbmap -print
> Couldn't find rules file (evdev) 
> [cendio@dhcp-253-238 ~]$ setxkbmap -rules base
> [cendio@dhcp-253-238 ~]$ setxkbmap -print
> xkb_keymap {
>         xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
>         xkb_types     { include "complete"      };
>         xkb_compat    { include "complete"      };
>         xkb_symbols   { include "pc(pc105)+us+inet(pc105)"      };
>         xkb_geometry  { include "pc(pc105)"     };
> };
Comment 2 Peter Åstrand cendio 2014-06-16 10:48:18 CEST
Fixed in 29069. Tester should test on both RHEL5 and other systems, as also with /sessionstart/keyboard_layout both empty and defined.
Comment 3 Pierre Ossman cendio 2014-09-24 13:22:14 CEST
Works well both on RHEL 5 and Fedora 20.

Note You need to log in before you can comment on or make changes to this bug.