Bug 52104 (suse37104)

Summary: Impossible to enter uppercase accented characters to text console
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Ludek Safar <lsafar>
Component: KernelAssignee: Jiri Bohac <jbohac>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P3 - Medium CC: jbohac, jsuchome, kkaempf, locilka, max, mgk25, mjezek, msvec
Version: Final   
Target Milestone: SUSE Linux 10.1   
Hardware: i386   
OS: Linux   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: This patch (for 2.6 kernels) should enable UTF8 characters via dead-key
Patch for kbd-1.12 to be able to load UTF dead keys into kernel
patch for the kernel that enables unicode composed characters
Patch for the kbd package that correctly translates and loads unicode composed key definitions to the (patched) kernel
patch for the kernel that enables unicode composed characters

Description Ludek Safar 2004-03-26 21:42:36 UTC
Hello, I've done text installation because of bug 51794.
I've chosen czech language for installation
There's a dialog YaST asks for standard user's name, login and password.

It's not possible to enter uppercase accented characters (i.e. cobined from "S"
and caron - like "Š"(. It output nothing and when striking next key it asks if
you are sure to cancel.

After installation running module "users" doesn't help a lot, it behaves pretty
muc the same.

I don't really know if it's even supposed to accept accented characters but it
acts weird...
Comment 1 Ludek Safar 2004-03-26 21:42:36 UTC
<!-- SBZ_reproduce  -->
Install Beta3 from text mode.
Choose czech language
When asked to enter a user name, try to use accented characters (especially
combined ones).
Comment 2 Stefan Hundhammer 2004-03-26 22:21:56 UTC
This is because of bug 48617 that keeps coming and going for years. However 
we do it, somebody will demand we do it the other way round. People complained 
about those characters being written to /etc/passwd in UTF-8, others 
complained when we used the current locale.  
 
The common conclusion was that non-ASCII characters there are simply undefined 
- see "man 5 passwd", so we turned it off. 
Comment 3 Klaus Kämpf 2004-03-26 22:49:23 UTC
<!-- SBZ_reopen -->Reopened by kkaempf@suse.de at Fri Mar 26 15:49:23 2004, took initial reporter lsafar@suse.cz to cc
Comment 4 Klaus Kämpf 2004-03-26 22:49:23 UTC
Hmm, the loginame cannot contain non-ascii characters. 
However, the user name (gecos field in passwd) can be UTF-8 encoded. 
Comment 5 Jiří Suchomel 2004-03-26 23:31:42 UTC
It IS possible to set accentef gecos, I think this is not Ludek's problem.
Comment 6 Ludek Safar 2004-03-26 23:39:34 UTC
Well, the problem is exactly as Klaus said - I'm sorry to not making me clearer
before. 

I understand you can't use non 7bASCII chars in login name. But YaST gets
confused while filling user's real name (geco field) in. Non-composed (single
stroke) chars looks OK, composed ones are causing problem described above.

Comment 7 Jiří Suchomel 2004-03-29 18:27:58 UTC
The problem is with entering the characters, not with proccessing them via
yast2-users module.

As this works fine in Qt, I find it as some YaST ncurses problem.
Comment 8 Gabriele Mohr 2004-03-30 22:44:40 UTC
The problem only occurs with uppercase combined characters? Is it possible to
enter other czech characters correctly?
How can I reproduce the bug? I don't know how to enter an uppercase accented
combined czech character.
Comment 9 Ludek Safar 2004-03-30 23:15:45 UTC
I've just retried - it doesn't accept non ISO8859-1 (not sure) accented
characters in ncurses - it works for á,í combined or not. Doesn't work for ščřž
etc... QT interface is OK.

You don't have to reinstall to repro, just run users module.

If you set keyboard to Czech, then you can use numeric characters, our specials
are mapped there.
Mapping:
       Characters                    Accents
key:   1 2 3 4 5 6 7 8 9 0 ;         = + ~
char:  + ě š č ř ž ý á í é ů         ´ ˇ ˚
Comment 10 Gabriele Mohr 2004-03-31 19:27:59 UTC
Obviously it's not only a ncurses problem.
It is also not possible to type correct czech characters on console nor to enter
them in linuxrc text input fields.


 
Comment 11 Ludek Safar 2004-04-01 21:47:28 UTC
Well, localized console behavior during installation is broken - see Bug 52107.
It's because of lack of unicode support in other than yast consoles.

You're right composed characters don't work in unicode consoles in common. This
is a bigger issue. It looks it should be assigned to someone else, I don't know
who, sorry.
Comment 12 Gabriele Mohr 2004-04-01 22:10:34 UTC
I have just tested with beta4. Seems to work now, I could enter czech characters
in first and second part of the installation. On console it is also possible.
Comment 13 Gabriele Mohr 2004-04-01 22:31:18 UTC
Setting resolution to fixed.
Comment 14 Mike Fabian 2004-04-01 22:37:09 UTC
Maybe it works now because kbd_mode and /etc/init.d/kbd have been fixed
to handle not only the first console correctly but the others as well?
See 

http://bugzilla.suse.de/show_bug.cgi?id=37367

By the way, we *do* accept non-ASCII UTF-8 login names now.
mingetty was changed to allow this.
Comment 15 Ludek Safar 2004-04-07 19:10:43 UTC
<!-- SBZ_reopen -->Reopened by lsafar@suse.cz at Wed Apr  7 13:10:43 2004, took initial reporter kkaempf@suse.de to cc
Comment 16 Ludek Safar 2004-04-07 19:10:43 UTC
Just reproduced on beta7. It behaves quite weirdly right now:

During installation:
- console is broken for non-composed accented characters (i.e. š, mapped on 3),
see  above. Composed ones are OK (!).
- impossible to enter composed accented characters to YaST

Installed system:
- console is broken for composed characters (i.e. Š, which you can't write other
way than ˇ (mapped to +) and S)
- same behaviour in YaST.
Comment 17 Juergen Weigert 2004-04-07 20:25:40 UTC
Is this console problem reproducable without having a czech keyboard? 
Comment 18 Ludek Safar 2004-04-07 22:14:04 UTC
Well, I suppose with any keyboard which combines accented letter from dead keys
and the rest in unicode environment. I don't know how many of these keyboard
mappings we have. 

Maybe there are some on german keyboard as well - how do you write Ü? I suppose
you combine it from ¨ and U. Hopefully. I don't really know and don't have any
german / croatian / other keyboard :-). My LANG is set to cs_CZ.UTF-8.
Comment 19 Gabriele Mohr 2004-04-07 22:27:18 UTC
I have just tested with RC1:
I can type german umlauts on console and enter them into YaST text fields.
The german umlauts are not combined from ¨ and o, a, u.
And I can enter czech characters  ě š č ř ž ý á í é ů in YaST. But I don't know
how to test with combined czech characters.
   
Comment 20 Ludek Safar 2004-04-07 22:53:27 UTC
You're lucky not to have dead umlaut. I can enter ěščř as well (note original
text of the bug, especially the part "especially combined ones"). 

Problem is with these letters in CAPITALS. You can't write them with Shift as
numbers are mapped there. You have to combine them.

There is one key on english keyboard which writes "=", with shift it writes
"+".This is key we have dead "´" and with shift "ˇ". I wrote it twice already in
bug description above.


You can very easily reproduce this bug by these 4 steps (in czech console
environment):
1) enter "sometext"
output:~>sometext
2) hit "=" english key - it produces nothing as it's mapped to dead "´"
output:~>sometext
3) hit "a" key - it should produce á, combined from "´" and "a"
output:~>sometext
!!! here it is broken already- nothing appeared.
4) hit "a" key five times more - it should produce more "a" characters, without
accent
output:~>someaaaaa
!!! it's broken even more, whole command line starts to act madly, deleting
previously entered characters
Comment 21 Mike Fabian 2004-04-08 00:41:13 UTC
* This comment was added by mail.
You can reproduce it like this on a standard German installation.
You don't need YaST2 to reproduce, just try the following on the
commandline of a console:

First verify that it works in non-Unicode mode:

    export LANG=de_DE@euro
    unicode_stop
    loadkeys de-latin1

Then type the dead accent left of the "Backspace" of a German
keyboard followed by an 'a', i.e. '`' followed by 'a'.

You get 'à'. OK, it works in non-Unicode mode.

Now switch back to Unicode again:

    export LANG=de_DE.UTF-8
    unicode_start
    loadkeys de-latin1
    dumpkeys | loadkeys --unicode

And try the same key sequence. It doesn't work anymore :-(
Comment 22 Mike Fabian 2004-04-08 02:02:29 UTC
Apparently this is a kernel problem. See also:

    From: Radovan Garabik (garabik@melkor.dnp.fmph.uniba.sk)
    Date: Mon Oct 08 2001 - 14:53:13 EST
    http://www.ussg.iu.edu/hypermail/linux/kernel/0110.1/0148.html

and followups. 

Looks like it still has not been fixed properly.
Comment 23 Michal Svec 2004-04-08 19:31:06 UTC
Still present in 9.1-final. The prompt is completely broken after
an attempt to use dead chars.
Comment 24 Mike Fabian 2004-04-16 21:09:08 UTC
*** Bug 52379 has been marked as a duplicate of this bug. ***
Comment 25 Michal Svec 2004-04-22 21:50:39 UTC
Any news?
Comment 26 Vojtech Pavlik 2004-05-03 18:40:24 UTC
Created attachment 18921 [details]
This patch (for 2.6 kernels) should enable UTF8 characters via dead-key

This patch (for 2.6 kernels) should enable UTF8 characters via dead-key.
Is that enough for you?
Comment 27 Michal Svec 2004-05-03 22:16:34 UTC
It depends if it's functional :-)
Could you provide an RPM for testing?
Comment 28 Vojtech Pavlik 2004-05-10 20:14:01 UTC
You can find it in my Export directory.
Comment 29 Ludek Safar 2004-05-12 22:51:50 UTC
Well, I have to say, it's not working for us. It does not compose characters at
all (local output is `a and ^s instead of á and š), terminal connected from ssh
does not work as well (no output from composed chars, broken prompt).

test@hedgehog:~> cat /etc/SuSE-release 
SuSE Linux 9.1 (i586)
test@hedgehog:~> uname -a
Linux hedgehog 2.6.5-10-default #1 Mon May 10 12:06:21 UTC 2004 i686 athlon i386
GNU/Linux
Comment 30 Vojtech Pavlik 2004-05-13 02:03:24 UTC
Well, it needs updated loadkeys that can upload unicode compose tables.

And regarding ssh terminals, that's a different matter altogether.
Comment 31 Ludek Safar 2004-05-13 15:22:33 UTC
I see. Sorry I didn't know that. What else do we need apart of updated kernel to
test it then?
I expected loadkeys shipped with unicode enabled SL9.1 (kbd-1.12-26 package)
beeing able of whatever desired functionality, uploading unicode compose tables
included.

And regarding the ssh terminals :-) - I'm glad it's not connected but it's
broken and that is what matters. Broken functionality should be either fixed or
disabled as whole. Is it worth to file another bug?

Comment 32 Stanislav Brabec 2004-05-13 21:17:44 UTC
I have discussed this problem with Radovan Garabik in 2002. I have tested his
patch and it works. But he says, that his simple patch makes kernel binary
incompatible.
Comment 33 Vojtech Pavlik 2004-05-14 20:24:42 UTC
The patch attached above implements the functionality Radovan's patch did,
however it keeps binary compatibility and thus loadkeys needs to be patched
to use the new Unicode IOCTL variants.
Comment 34 Vojtech Pavlik 2004-05-29 22:57:05 UTC
Created attachment 20465 [details]
Patch for kbd-1.12 to be able to load UTF dead keys into kernel
Comment 35 Vojtech Pavlik 2004-05-29 22:58:00 UTC
Both patches sent to Andries Brouwer, maintainer of kbd, and the kernel
patch to LKML for approval.
Comment 36 Vojtech Pavlik 2004-06-02 20:04:36 UTC
Juergen, can you please prepare a test RPM with the above patch,
so that he can test whether entering accented UTF8 chars via
dead-key works with it?
Comment 37 Juergen Weigert 2004-06-15 20:42:09 UTC
find the latest rpm in ~jw/Export/kbd/kbd-1.12-28.i586.rpm 
 
sorry for the delay! 
Comment 38 Vojtech Pavlik 2004-09-30 21:59:42 UTC
Ok, we now have a kernel patch and updated kbd. Can you test it?
Comment 39 Michal Svec 2004-09-30 22:55:31 UTC
Should it be functional on 9.2-beta5?
Comment 40 Vojtech Pavlik 2004-09-30 23:11:08 UTC
Probably not, the patch wasn't applied, as far as I know.
Comment 41 Juergen Weigert 2004-09-30 23:39:55 UTC
Please reassign to me, if the patch is effective. 
Comment 42 Lukas Ocilka 2004-10-01 21:52:52 UTC
I'm just in second stage of the installation. Czech installation.

Small czech characters (ě š č ř ž ý á í é ů ú) entered on the /Alt+F2 screen/
using /one key/ on keyboard doesn't work (they are printed as two-character
strings).

Small characters entered using the dead keys (ˇ and ´) works. Also big
characters entered using dead keys plus SHIFT also works. Also with CapsLock.

Testing in textual YaST (second installation) stopped it was impossible to enter
any character in the yast even to do anything else. So I killed y2base and the
system booted to the "login:" dialog.

After login:
Small czech characters entered withoud dead keys works. Small characters using
dead keys doesn't work (are not printed at all). Big characters using dead keys
doesn't work either (also are not printed at all).
Comment 43 Lukas Ocilka 2004-10-01 21:56:14 UTC
Sorry for spamming (added into Cc:).
Comment 44 Vojtech Pavlik 2004-10-05 16:41:40 UTC
Can you please check with the attached patch and updated kbd?
Comment 45 Jiri Bohac 2004-11-09 23:46:46 UTC
Created attachment 25923 [details]
patch for the kernel that enables unicode composed characters
Comment 46 Jiri Bohac 2004-11-09 23:48:00 UTC
Created attachment 25924 [details]
Patch for the kbd package that correctly translates and loads unicode composed key definitions to the (patched) kernel
Comment 47 Jiri Bohac 2004-11-09 23:49:51 UTC
Above, you can find new versions of the patches mentioned before. I modified the
kernel patch to apply to a recent SUSE kernel and fixed a bug in the patch. I
also have a new version of the kbd patch, that applies to kbd-1.12. The previous 
versions could not work.

I tested with the czech keyboard (cz) in both unicode and non-unicode modes, and
it seems to work well for both composed and uncomposed diacritical characters.

LANG=cs_CZ
unicode_stop
loadkeys cz
-> input works

LANG=cs_CZ
unicode_start
loadkeys -u cz
-> input works

Comment 48 Jiri Bohac 2004-11-10 00:12:16 UTC
Created attachment 25926 [details]
patch for the kernel that enables unicode composed characters

in #17924 one bug was not fixed for s390, fixed now ... #17924 worked well on
i386 (none of the above had been tested on a s390 anyway)
Comment 49 Jiri Bohac 2004-11-10 00:23:09 UTC
oops ... #48 (attachment id=17926) is a new version of the kernel patch
(originally id=17923) ... NOT the kbd patch. Sorry for confusion.
Comment 50 Jiri Bohac 2004-12-09 21:13:58 UTC
So... has anyone tried the the patches out so far? 
(patches id 17926 and 17924)
Do they fix the problem for you?
Comment 51 Ludek Safar 2004-12-14 21:30:00 UTC
I'm not sure who is the question mentioned for, but I'm original submitter, so 
it looks like it's me (no one else is responding though :-)) 
To be honest, I'm not able to test kernel and kbd patches - it's quite an 
overhead for anyone (not mentioning I'm personally probably not technically 
capable of such an task :-) ). 
 
If the patch meets sanity quickchecks, would it be possible to make RPMs out 
of patched vesions for wider ability of testing? It would help a lot. 
 
Thanks 
Comment 52 Ludek Safar 2005-07-15 09:05:36 UTC
With a perspective of year and half it looks like this bug is not as critical as
I thought :-)

The bug is still present in last-updated SUSE LINUX Professional 9.3. It's
impossible to enter composed czech chatecters to yast users module nor to console.
Comment 53 Michael Gross 2005-10-04 12:40:27 UTC
Hello!

Due to the proposal from Andreas Jaeger, this bug will be closed as WONTFIX,
because there was no change to this bug for more than 2 months by now which
indicates a very low activity. 

If this bug is of relevance for the current release or should be kept open due
to another (not obvious reason), please reopen it ans state a reason for your
decision.

Please also check if the status-information for this bug is correct at all
correct if you reopen it. Generally the product-version should be elevated to
the current release in this case. Sorry if this causes you any inconvenience.

Kind regards,
the BNC-Screening-Team
Comment 54 Ludek Safar 2005-10-04 15:28:48 UTC
Good. I just thought that we have a "needinfo" state for cases when asignee
needs an action from reporter. Inactivity in bugzilla could mean someone is
trying to fix the problem (which is apparently not the case). I don't think that
this is the right way of bug-triaging.

However, the bug is still present in SUSE LINUX 10 Final. Text console is not
able to write composed characters. I've updated bug attributes (hope it is what
I've been asked for), and status as well of course (back to open).
Comment 55 Ludek Safar 2005-10-04 15:29:50 UTC
Reopen
Comment 56 Jiří Suchomel 2006-02-23 16:45:42 UTC
Jiri, did you submit the patch already?
Comment 57 Jiri Bohac 2006-02-23 17:42:31 UTC
No. I know of another patch that might as well fix this and would not require kbd to be modified. I will test it and build a test kernel/kbd rpm next week.
Comment 58 Jiri Bohac 2006-02-28 19:35:39 UTC
I submited a patch to the kernel CVS. It works well on an installed system. I'll check if it works during installation as soon as the new kernel appears in our install mirror.
Comment 59 Jiri Bohac 2006-03-14 19:10:11 UTC
Fixed in 10.1 beta 7; thanks for the patience!