Hello community, here is the log from the commit of package kbd for openSUSE:Factory checked in at 2018-04-16 12:43:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kbd (Old) and /work/SRC/openSUSE:Factory/.kbd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kbd" Mon Apr 16 12:43:47 2018 rev:89 rq:595699 version:2.0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/kbd/kbd.changes 2018-03-24 16:10:21.218369233 +0100 +++ /work/SRC/openSUSE:Factory/.kbd.new/kbd.changes 2018-04-16 12:43:48.916406195 +0200 @@ -1,0 +2,6 @@ +Thu Apr 5 17:32:03 CEST 2018 - sbra...@suse.com + +- Disable characters >=U+F000. These do not work properly + (bsc#1085432#c15, kbd-unicode-fxxx.patch). + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kbd-unicode-fxxx.patch ++++++ --- /var/tmp/diff_new_pack.hNLP5k/_old 2018-04-16 12:43:49.884370973 +0200 +++ /var/tmp/diff_new_pack.hNLP5k/_new 2018-04-16 12:43:49.884370973 +0200 @@ -1,34 +1,71 @@ -Partially revert 3f065394 to not fail on ligature fi and other characters with UNICODE code 0xFxxx. +Disable characters >=U+F000. These do not work properly. -Index: kbd-2.0.4/src/libkeymap/analyze.l -=================================================================== ---- kbd-2.0.4.orig/src/libkeymap/analyze.l -+++ kbd-2.0.4/src/libkeymap/analyze.l -@@ -361,11 +361,6 @@ To to|To|TO - } - {Unicode} { - yylval->num = strtol(yytext + 1, NULL, 16); -- if (yylval->num >= 0xf000) { -- ERR(yyextra, _("unicode keysym out of range: %s"), -- yytext); -- return(ERROR); -- } - return(UNUMBER); - } - {Decimal}|{Octal}|{Hex} { -Index: kbd-2.0.4/src/libkeymap/analyze.c +Explanation from Alexey Gladkov: + +The kbd value is unsigned short [1] and take a look how kernel gets +a type [2]. The last bytes are occupied by type. + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/kd.h?id=06dd3dfeea60e2a6457a6aedf97afc8e6d2ba497#n103 +[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/keyboard.h?id=06dd3dfeea60e2a6457a6aedf97afc8e6d2ba497#n45 + +The problem in the kernel. In the kb_value there is no room to store such +values. + +Index: kbd-2.0.4/data/keymaps/i386/qwertz/de_alt_UTF-8.map =================================================================== ---- kbd-2.0.4.orig/src/libkeymap/analyze.c -+++ kbd-2.0.4/src/libkeymap/analyze.c -@@ -1499,11 +1499,6 @@ YY_RULE_SETUP - #line 362 "analyze.l" - { - yylval->num = strtol(yytext + 1, NULL, 16); -- if (yylval->num >= 0xf000) { -- ERR(yyextra, _("unicode keysym out of range: %s"), -- yytext); -- return(ERROR); -- } - return(UNUMBER); - } - YY_BREAK +--- kbd-2.0.4.orig/data/keymaps/i386/qwertz/de_alt_UTF-8.map ++++ kbd-2.0.4/data/keymaps/i386/qwertz/de_alt_UTF-8.map +@@ -160,7 +160,7 @@ shift alt keycode 2 = U+00AC # notsig + shift alt keycode 3 = U+201D # right double quote + shift alt keycode 4 = numbersign + shift alt keycode 5 = sterling +-shift alt keycode 6 = U+FB01 # fi ligature ++#shift alt keycode 6 = U+FB01 # fi ligature + shift alt keycode 7 = dead_circumflex + shift alt keycode 8 = backslash + shift alt keycode 9 = U+02DC # small tilde +@@ -179,7 +179,7 @@ shift alt keycode 23 = Ucircumflex + shift alt keycode 24 = Ooblique + shift alt keycode 25 = U+220F # n-ary product + shift alt keycode 26 = degree +-shift alt keycode 27 = U+F8FF # apple logo ++#shift alt keycode 27 = U+F8FF # apple logo + shift alt keycode 30 = Aring + shift alt keycode 31 = Iacute + shift alt keycode 32 = U+2122 # trade mark +@@ -188,7 +188,7 @@ shift alt keycode 34 = Igrave + shift alt keycode 35 = Oacute + shift alt keycode 36 = U+0131 # dotless i + shift alt keycode 37 = U+02C6 # circumflex accent +-shift alt keycode 38 = U+FB02 # fl ligature ++#shift alt keycode 38 = U+FB02 # fl ligature + shift alt keycode 39 = U+0152 # OE + shift alt keycode 40 = AE + shift alt keycode 41 = U+201C # left double quote +@@ -210,7 +210,7 @@ control shift alt keycode 2 = U+00AC + control shift alt keycode 3 = U+201D # right double quote + control shift alt keycode 4 = numbersign + control shift alt keycode 5 = sterling +-control shift alt keycode 6 = U+FB01 # fi ligature ++#control shift alt keycode 6 = U+FB01 # fi ligature + control shift alt keycode 7 = circumflex + control shift alt keycode 8 = backslash + control shift alt keycode 9 = U+02DC # small tilde +@@ -229,7 +229,7 @@ control shift alt keycode 23 = Ucircumf + control shift alt keycode 24 = Ooblique + control shift alt keycode 25 = U+220F # n-ary product + control shift alt keycode 26 = degree +-control shift alt keycode 27 = U+F8FF # apple logo ++#control shift alt keycode 27 = U+F8FF # apple logo + control shift alt keycode 30 = Aring + control shift alt keycode 31 = Iacute + control shift alt keycode 32 = U+2122 # trade mark +@@ -238,7 +238,7 @@ control shift alt keycode 34 = Igrave + control shift alt keycode 35 = Oacute + control shift alt keycode 36 = U+0131 # dotless i + control shift alt keycode 37 = U+02C6 # circumflex accent +-control shift alt keycode 38 = U+FB02 # fl ligature ++#control shift alt keycode 38 = U+FB02 # fl ligature + control shift alt keycode 39 = U+0152 # OE + control shift alt keycode 40 = AE + control shift alt keycode 41 = U+201C # left double quote