[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Revert r56948? (console-setup: fix keymap reduction)

I would like to revert r56948 unless there is something I don't see. As 
far as I can remember this change increases the size of the precompiled 
keymaps by many times.  The precompiled keymaps will be used by udebs on 
the boot media of d-i, so they have to take as little space as possible.

I think r56948 makes only the following improvement: Suppose a keyboard 
layout doesn't define the behaviour of some of the keys on the keyboard. 
For example the US layout doesn't define the behavour of one extra key 
that exists on the Brazilian ABNT2 keyboards.  Then suppose the user has 
attached to the computer a Brazilian keyboard but selects US layout in 
the installer. In this case before r56948 the extra key of the Brazilian 
keyboard with US QWERTY layout generated some more or less random 
symbols.  After r56948 this key has undefined behaviour (for d-i this 
means the key produces no symbols).  The effect is similar when the user 
has Japanese keyboard and non-Japanese layout.  I think r56948 does 
nothing when the keyboard is not Brazilian or Japanese (the US keyboards 
do not have LSGT key that exists on Western European keyboards but 
nevertheless the US layout defines behaviour for this key so r56948 does 
nothing in this case).

The diff between r56948 and r56947 follows.

Index: debian/changelog
--- debian/changelog	(revision 56947)
+++ debian/changelog	(revision 56948)
@@ -14,6 +14,8 @@
   [ Colin Watson ]
   * Fix property counts in Goha and legacy BDF fonts.
+  * Fix keymap reduction not to try to express keymap A in terms of keymap B
+    when B includes keys not mapped by A.
  -- Anton Zinoviev <zinoviev@debian.org>  Sat, 29 Nov 2008 14:50:49 +0200
Index: Keyboard/kbdcompiler
--- Keyboard/kbdcompiler	(revision 56947)
+++ Keyboard/kbdcompiler	(revision 56948)
@@ -139,6 +139,9 @@
 	    if (! defined $kmap2->[$k] || $kmap1->[$k] ne $kmap2->[$k]) {
+	} elsif (defined $kmap2->[$k]) {
+	    # kmap1 not a superset of kmap2, so not eligible for reduction
+	    return 10000000;
     return $result;

Anton Zinoviev

Reply to: