Bug 80993 - redhat-config-xfree86 trips on a keyboard
Summary: redhat-config-xfree86 trips on a keyboard
Alias: None
Product: Red Hat Public Beta
Classification: Retired
Component: redhat-config-xfree86
Version: phoebe
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Brent Fox
QA Contact:
Depends On:
Blocks: 79579
TreeView+ depends on / blocked
Reported: 2003-01-03 03:29 UTC by Michal Jaegermann
Modified: 2008-05-01 15:38 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2003-01-15 15:05:43 UTC

Attachments (Terms of Use)

Description Michal Jaegermann 2003-01-03 03:29:16 UTC
Description of problem:

An attempt to use redhat-config-xfree86 results in the following traceback:

Traceback (most recent call last):
  File "/usr/share/redhat-config-xfree86/xconf.py", line 1091, in ?
    xconfig = generate_xconfig(hardware_state)
  File "/usr/share/redhat-config-xfree86/xconf.py", line 837, in generate_xconfig
    get_option(corekb, "XkbRules").val = keyboard["rules"]
  File "/usr/lib/python2.2/site-packages/rhpl/keyboard.py", line 76, in __getitem__
    raise KeyError, "No such keyboard type %s" % (table,)
KeyError: No such keyboard type emacs2

It looks like that this Python code is trying to find a keyboard type
in a wrong place, i.e. /etc/sysconfig/keyboard which holds a configuration
for a _console_ keyboard, or at least is not dealing in a reasonable manner
with keyboard types which do exist.

Comment 1 Brent Fox 2003-01-03 21:12:35 UTC
Can you attach your /etc/sysconfig/keyboard file?

Comment 2 Brent Fox 2003-01-03 21:47:44 UTC
Nevermind, I've worked out a fix.  With redhat-config-xfree86-0.7.0-6, we
default to a US keymap if the keyboard in /etc/sysconfig/keyboard is not in the
list of keyboards that rhpl knows about.  This avoids the traceback and should
at least get X up and running.  If the user doesn't want to use a US keymap,
they can then run redhat-config-keyboard and select another keymap.

Note that to get a keyboard in /etc/sysconfig/keyboard file that is not in
rhpl's keyboard list, the user would have to use a config tool other than
redhat-config-keyboard.  (i.e. emacs2 keyboard is a valid console keymap but
redhat-config-keyboard doesn't offer emacs2 as a choice since there's no X
equivalent keymap)

QA, please verify.

Comment 3 Michal Jaegermann 2003-01-03 23:29:02 UTC
Here is my 'keyboard' file in its full glory


and KEYTABLE may hold any of 121 map names from /lib/kbd/keymaps/i386/.

Frankly I was thinking rather in terms of possible mapping of these names
into something acceptable to xfree86 maybe somewhat less crude than everything
we do not know into "us".  Azerty keyboard "be-latin1", assuming that not
recognized by X, likely does not work very well as "us".  It seems that
for most names a reasonable mapping should be "obvious" and leftovers
could be dumped on "us".  What is your opinion?

Comment 4 Brent Fox 2003-01-07 19:11:48 UTC
I agree that this is not the most elegant solution.  However, I have more
important bugs from Phoebe that need my attention.  At least this solution
avoids the traceback, which was my main concern.

As I said, the user has to have done some manual changes to get a keyboard in
/etc/sysconfig/keyboard that rhpl's keyboard list doesn't know about. 
'be-latin1', by the way, is in rhpl's keyboard list, so that should work just
fine, but you are right in that there are probably other keymaps that wouldn't
be properly handled by this fix.  But again, getting a working XF86Config file
is the important thing and the user can then run redhat-config-keyboard after that.

Comment 5 Jay Turner 2003-01-15 15:05:43 UTC
Fix confirmed with redhat-config-xfree86-0.7.1-3.

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