Bug 20743 - /etc/X11/xkb/base.xml is ignored (wrong documentation)
Summary: /etc/X11/xkb/base.xml is ignored (wrong documentation)
Status: RESOLVED INVALID
Alias: None
Product: xkeyboard-config
Classification: Unclassified
Component: General (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: xkb
QA Contact:
URL:
Whiteboard:
Keywords: NEEDINFO
Depends on:
Blocks:
 
Reported: 2009-03-18 22:40 UTC by Bryce Harrington
Modified: 2009-03-19 07:09 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Bryce Harrington 2009-03-18 22:40:35 UTC
Forwarding this bug from a Ubuntu reporter:
https://bugs.edge.launchpad.net/ubuntu/+source/xkeyboard-config/+bug/297428

[Problem]
It used to be that /etc/X11/xkb/base.xml was used as a config file for keyboard layouts.  However, now this file is ignored and there is no way to do this configuration.  Further, the documentation in xkb-data/README.Debian is outdated and describes the old method.

[Original Report]
In Hardy /etc/X11/xkb/base.xml used to be the configuration file for keyboard layouts shown in gnome-keyboard-properties. This has changed in Intrepid, but /usr/share/doc/xkb-data/README.Debian (in the section "Customised layouts") still recommends to change this file for customised layouts. (xkb-data 1.3-2ubuntu4)

Gnome now completely ignores it (you can rename the file without consequences), instead it uses /usr/share/X11/xkb/rules/evdev.xml. It took me some time to find out, so I'd like the information in the readme updated. My other guess is that the information is correct, but evdev.xml should be a symlink to base.xml, since its pretty much the same (and /usr/share/X11/xkb/rules/evdev.lst should point to /usr/share/X11/xkb/rules/base.lst).


I examined the differences in custom layouts between hardy and intrepid once more and in my opinion there's a regression because intrepid has no real configuration file anymore (evdev.xml is the configuration file, but it will be overwritten with every update).

My test case: I forced an old version of xkb-data both in hardy an intrepid and then installed my custom layout with the symbols file in /usr/share/X11/xkb/symbols and a modified /etc/X11/xkb/base.xml in hardy and a modified /usr/share/X11/xkb/rules/evdev.xml in intrepid. The custom layout worked fine, then I did the update of xkb-data.
1. In hardy everything's fine. The configuration file base.xml is not changed.
2. In intrepid the update overwrites evdev.xml without notification or asking anything. Surprisingly at first glance nothing has changed, because Gnome now uses the symbols file that's stored in gconf-editor under desktop/gnome/peripherals/keyboard/kbd/layouts and that is still my custom symbols file. In gnome-keyboard-properties the layout is now indicated with its file name, not with the description as before. If I remove it and want to add it again, it's lost. (Not tested: KDE, distribution upgrade)

My conclusion: The actual behavior (overwriting evdev.xml) is not good.
Secondly, the Readme is wrong as it names the wrong configuration file, and that the new file is not really a configuration file because it will be overwritten in the update process.
Comment 1 Sergey V. Udaltsov 2009-03-19 01:14:58 UTC
I do not understand the matter of the problem. 
Both evdev.xml and base.xml (for drivers evdev and kbd respectively) are generated during the build from base.xml.in (for a moment, evdev.xml is a copy of base.xml). That is the way process works and will work in foreseable future. What exactly should I fix here? 

While users can modify these files - honestly, they cannot expect them to remain in place during version upgrades (unfortunately XKB configuration scheme is not really modular). But again, this is up to distribution (.deb package) - whether to treat these files as configuration (and keep backup) or usual data file.

README.Debian is responsibility of Debian/Ubuntu people, I have no authority over it.
Comment 2 Daniel Stone 2009-03-19 07:09:42 UTC
On Wed, Mar 18, 2009 at 10:40:35PM -0700, bugzilla-daemon@freedesktop.org wrote:
> It used to be that /etc/X11/xkb/base.xml was used as a config file for keyboard
> layouts.  However, now this file is ignored and there is no way to do this
> configuration.  Further, the documentation in xkb-data/README.Debian is
> outdated and describes the old method.

The documentation bit is clearly not an upstream issue.

> instead it uses /usr/share/X11/xkb/rules/evdev.xml. It took me some time to
> find out, so I'd like the information in the readme updated. My other guess is
> that the information is correct, but evdev.xml should be a symlink to base.xml,
> since its pretty much the same (and /usr/share/X11/xkb/rules/evdev.lst should
> point to /usr/share/X11/xkb/rules/base.lst).

No, they were split for a reason.  If you look, evdev specifies the evdev
keycode set, whereas base specifies the xfree86 keycode set.  You use the
evdev ruleset with the evdev driver, and the base/xorg ruleset with the
kbd driver, or anything that sends AT scancodes.

I'm fairly sure this move was well documented.

> I examined the differences in custom layouts between hardy and intrepid once
> more and in my opinion there's a regression because intrepid has no real
> configuration file anymore (evdev.xml is the configuration file, but it will be
> overwritten with every update).

Not an upstream issue.

> My conclusion: The actual behavior (overwriting evdev.xml) is not good.

As above.

> Secondly, the Readme is wrong as it names the wrong configuration file, and
> that the new file is not really a configuration file because it will be
> overwritten in the update process.

As above.

-> INVALID


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.