Non-exsisting layouts

Bug #93077 reported by Ante Karamatić on 2007-03-17
72
Affects Status Importance Assigned to Milestone
xkeyboard-config
Fix Released
Medium
console-setup (Ubuntu)
High
Colin Watson

Bug Description

Binary package hint: debian-installer

On Alternate install CD, when installer is started, is /usr/share/console-setup-mini/pc105.ekmap.gz. In that file keymaps are defined.

Croatian keymap is defined like 'include bs' (IIRC). 'bs' includes slovenian (si), and that one includes si:us, which doesn't exist. This results in, at least, Croatian, Slovenian and Bosnian layouts being unusable. Once you choose these layouts, you can't type anything - one has to restart and do installation with 'us' keymap.

Including si:us is also wrong, cause croatian, bosnian and slovenian keymaps are qwertz, not qwerty (si:us is qwerty).

This bug is from Edgy till today's Feisty daily.

Emir Beganović (emxba) on 2007-03-17
Changed in debian-installer:
status: Unconfirmed → Confirmed
Ante Karamatić (ivoks) on 2007-03-17
Changed in debian-installer:
importance: Undecided → Medium
Colin Watson (cjwatson) wrote :

Can you still reproduce this with the beta? I notice that si:us does exist in /usr/share/console-setup-mini/pc105.ekmap.gz now.

Ante Karamatić (ivoks) wrote :

I can reproduce it with 20070411. I can reproduce it for hr; didn't try si. It says:

hr::#include az:cyrilic

We use latin letters, not cyrilic :/

Ante Karamatić (ivoks) wrote :

Nope, Slovenian also doesn't work.

Ante Karamatić (ivoks) wrote :

si includes si:us. si:us includes si:alternatequotes. si:alternatequotes includes si:unicode (I guess si is completely broken). si:unicode includes hr. hr includes az:cyrillic. Croats, Slovenians and Bosnians use latin2 letters. None of them use cyrillic. This is the layout:

qwertzuiopšđž
asdfghjklčć
yxcvbnm,.-

QWERTZUIOPŠĐŽ
ASDFGHJKLČĆ
YXCVBNM;:_

1234567890'+
!"#$%&/()=?*

Ante Karamatić (ivoks) wrote :
Download full text (4.2 KiB)

I've downloaded source of console-tools and been playing with this for two days. I can't find what could be wrong.

In console-setup-1.13ubuntu13/Keyboard/ckb/symbols/hr, clearly cs is included. This is true also for ba and si symbols. Looking at cs I can't find what could be wrong. cs(latin) is relevant for these languages. After building, in console-setup-1.13ubuntu13/Keyboard/keymaps all these keymaps ae broken, including cs(basic) which isn't latin.

Both cs(basic) and cs(latin) include cs(level3) and level3(ralt_switch). ralt_switch can't be the wrong one since lots of keymaps include it. So, problem is obviously in cs(level3). This is it, so if you can see anything wrong with it, please tell me:

partial hidden alphanumeric_keys
xkb_symbols "level3" {
  key <TLDE> { [ any,any, notsign, notsign ] };
  key <AE01> { [ any,any, dead_tilde, asciitilde ] };
  key <AE02> { [ any,any, dead_caron, caron ] };
  key <AE03> { [ any,any, dead_circumflex, asciicircum ] };
  key <AE04> { [ any,any, dead_breve, breve ] };
  key <AE05> { [ any,any, dead_abovering, degree ] };
  key <AE06> { [ any,any, dead_ogonek, ogonek ] };
  key <AE07> { [ any,any, dead_grave, grave ] };
  key <AE08> { [ any,any, dead_abovedot, abovedot ] };
  key <AE09> { [ any,any, dead_acute, apostrophe ] };
  key <AE10> { [ any,any, dead_doubleacute, doubleacute ] };
  key <AE11> { [ any,any, dead_diaeresis, diaeresis ] };
  key <AE12> { [ any,any, dead_cedilla, cedilla ] };

  key <AD01> { [ any,any, backslash, Greek_OMEGA ] };
  key <AD02> { [ any,any, bar, Lstroke ] };
  key <AD03> { [ any,any, EuroSign, EuroSign ] };
  key <AD04> { [ any,any, paragraph, registered ] };
  key <AD05> { [ any,any, tslash, Tslash ] };
  key <AD06> { [ any,any, leftarrow, yen ] };
  key <AD07> { [ any,any, downarrow, uparrow ] };
  key <AD08> { [ any,any, rightarrow, idotless ] };
  key <AD09> { [ any,any, oslash, Ooblique ] };
  key <AD10> { [ any,any, thorn, THORN ] };
  key <AD11> { [ any,any, division, dead_abovering ] };
  key <AD12> { [ any,any, multiply, dead_macron ] };

  key <AC01> { [ any,any, ae, AE ] };
  key <AC02> { [ any,any, doublelowquotemark, guillemotright ] };
  key <AC03> { [ any,any, leftdoublequotemark, guillemotleft ] };
  key <AC04> { [ any,any, bracketleft, ordfeminine ] };
  key <AC05> { [ any,any, bracketright, ENG ] };
  key <AC06> { [ any,any, hstroke, Hstroke ] };
  key <AC07> { [ any,any, NoSymbol, NoSymbol ] };
  key <AC08> { [ any,any, lstroke, ampersand ] };
  key <AC09...

Read more...

Ante Karamatić (ivoks) wrote :

OK, so looking at ckbcomp, I foud this:

'any' => 'NoSymbol', # Is this recognised by X ?

and then later:

$line =~ s/NoSymbol/VoidSymbol/g;

That explains VoidSymbol for all letters in console-setup-1.13ubuntu13/Keyboard/keymaps/pc105-[hr|si|ba|cs]*. If I rewrite cs today and provide you a patch, will it get included in Feisty? Cause, we really need this.

Colin Watson (cjwatson) wrote :

Not for Feisty now, but milestoning for shortly afterwards.

Changed in console-setup:
assignee: nobody → kamion
Ante Karamatić (ivoks) wrote :

Gutsy, Tribe-1:

Bug still occurs.

Ante Karamatić (ivoks) wrote :

Alright.

Serbian symbols (Keyboard/ckb/symbols/cs) is total mess and I rather started with plain and new Croatian symbols. After building with this patch, I still get hr::#include ad, but after that almost all keys are redefined, so it should work now. I will wait for this patch to get included and test daily build of gutsy then. If it works well, Bosnian and Slovenian keymap should be redirected to Croatian keymap.

Also, this should get pushed to Debian.

Ante Karamatić (ivoks) wrote :

Bug is still valid in gutsy daily from 9th of Sep.

I can confirm that supplied patch works with custom made image.

Ante Karamatić (ivoks) wrote :

Given fix for Croatian layout is just a partial fix. Much bigger problem is that ckbcomp reads /usr/share/X11/ckb, thus making impossible to fix any bug related to keyboard layout. ckbcomp doesn't read layouts provided with a source.

I'm marking it 'High' cause it impacts all layouts.

Changed in console-setup:
importance: Medium → High
Luka Renko (lure) wrote :

I would just like to point out to other bugs that I think are probably duplicates:
- bug 68843
- bug 69469
- bug 112707

Ante Karamatić (ivoks) wrote :

The bug is in kbd-data package. console-setup ignores keyboard layouts in it's source. It uses layouts from xkb-data.

Ante Karamatić (ivoks) wrote :

This patch fixes Serbian layout and Croatian:US layout. All other layouts are based on Serbian and thus fixed.

console-setup needs rebuild after this patch is applied to kbd-data.

Finally. :D

Colin Watson (cjwatson) wrote :

Milestoning for beta; this has gone on too long.

Colin Watson (cjwatson) wrote :

xkeyboard-config (0.9-4ubuntu2) gutsy; urgency=low

  [ Ante Karamatić ]
  * debian/patches/cs_hr_any.diff: Avoid using the "any" symbol in cs and
    hr, since console-setup doesn't understand it (LP: #93077).

 -- Colin Watson <email address hidden> Mon, 24 Sep 2007 12:44:06 +0100

Changed in xkeyboard-config:
status: Confirmed → Fix Released

Hi,

console-setup doesn't understand the "any" symbol and this used to break the support for Croats, Slovenians and Bosnians layouts in Ubuntu (and probably Debian). (See https://bugs.launchpad.net/bugs/93077 for details.) This was worked around by rewriting cs and hr symbols to not use "any", I'll attach this patch.

It seems it would be easier to simply avoid using "any" as so few keymaps use it.

Thanks!

Created an attachment (id=12721)
avoid using the "any" symbol in cs and hr

First, there is no symbols/cs any more. Also, 'any' is a valid keysym name. I am not excited about copying entire 'us' layout, with all fairness. Would it be possible to fix console-setup tools instead? If they support XKB syntax - they should support it fully, shouldn't they?

Changed in xkeyboard-config:
status: Unknown → Confirmed
Timo Aaltonen (tjaalton) wrote :

Upstream doesn't seem to be willing to accept the patch, so console-setup needs to be fixed.

Changed in xkeyboard-config:
importance: High → Low
milestone: ubuntu-7.10-beta → none
status: Fix Released → Triaged

Yes, this was a workaround we were employing for the time being, and I agree that it was pretty nasty. Upon investigating this in console-setup again today, I found that the fix is in fact remarkably easy:

=== modified file 'Keyboard/ckbcomp'
--- Keyboard/ckbcomp 2008-01-28 17:56:10 +0000
+++ Keyboard/ckbcomp 2008-02-26 14:00:19 +0000
@@ -2703,7 +2703,7 @@
        my $level = 0;
        for my $symbol (@_) {
            if ($symbol !~ /\(/ && $symbol =~ /./
- && ($symbol !~ /^nosymbol$/i
+ && ($symbol !~ /^(?:nosymbol|any)$/i
                    || ! defined $symbols_table{$code}[$group][$level])) {
                $symbols_table{$code}[$group][$level] = $symbol;
            }

Feel free to close this bug; I'll revert the workaround in Ubuntu's xkeyboard-config packages too. Thanks!

> Feel free to close this bug; I'll revert the workaround in Ubuntu's
> xkeyboard-config packages too. Thanks!

You're mostly welcome. Thanks for your help!

Colin Watson (cjwatson) on 2008-02-26
Changed in console-setup:
importance: Low → High
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package console-setup - 1.21ubuntu3

---------------
console-setup (1.21ubuntu3) hardy; urgency=low

  * Set default layout for Vietnam to 'us' (LP: #191451).
  * Treat 'any' as a synonym for 'NoSymbol' in XKB input files (LP: #93077).

 -- Colin Watson <email address hidden> Tue, 26 Feb 2008 14:05:12 +0000

Changed in console-setup:
status: Triaged → Fix Released
Changed in xkeyboard-config:
status: Confirmed → Fix Released
Changed in xkeyboard-config:
importance: Unknown → Medium
Changed in xkeyboard-config:
importance: Medium → Unknown
Changed in xkeyboard-config:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.