2008-09-22 15:55:47 |
Gökdeniz Karadağ |
bug |
|
|
added bug |
2008-09-22 15:55:47 |
Gökdeniz Karadağ |
bug |
|
|
added attachment 'console-setup' (console-setup) |
2008-09-22 16:12:40 |
Colin Watson |
console-setup: status |
New |
Confirmed |
|
2008-09-22 16:12:40 |
Colin Watson |
console-setup: importance |
Undecided |
High |
|
2008-09-22 16:12:40 |
Colin Watson |
console-setup: statusexplanation |
|
|
|
2008-09-22 16:33:18 |
Gökdeniz Karadağ |
description |
Binary package hint: console-setup
The default console font was problematic with Turkish language characters (latin5, iso-8859-9)
I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup".
When I log into root account on console, Turkish characters show up correctly, in the font I chose.
But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş".
The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~".
If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME"
When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds.
This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask.
Hardy 8.04.1
cosole setup version: 1.21ubuntu8 |
Binary package hint: console-setup
The default console font was problematic with Turkish language characters (latin5, iso-8859-9)
I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup".
edit: Colin Watson points out that this happens in all non-ascii layouts/encodings
When I log into root account on console, Turkish characters show up correctly, in the font I chose.
But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş".
The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~".
If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME"
When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds.
This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask.
Hardy 8.04.1
cosole setup version: 1.21ubuntu8 |
|
2008-09-22 16:33:18 |
Gökdeniz Karadağ |
title |
Turkish layout problems at "login" line |
non-ascii layout/encoding problems at "login" line |
|
2008-09-22 16:34:16 |
Gökdeniz Karadağ |
description |
Binary package hint: console-setup
The default console font was problematic with Turkish language characters (latin5, iso-8859-9)
I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup".
edit: Colin Watson points out that this happens in all non-ascii layouts/encodings
When I log into root account on console, Turkish characters show up correctly, in the font I chose.
But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş".
The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~".
If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME"
When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds.
This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask.
Hardy 8.04.1
cosole setup version: 1.21ubuntu8 |
Binary package hint: console-setup
The default console font was problematic with Turkish language characters (latin5, iso-8859-9)
I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup".
edit: Colin Watson points out that this happens in all non-ascii layouts/encodings
When I log into root account on console, Turkish characters show up correctly, in the font I chose.
But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş".
The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~".
If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME"
When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds.
This seems like a corner case but I want to help solve this problem, If any more info or testing is needed please ask.
Ubuntu version: Hardy 8.04.1
console-setup version: 1.21ubuntu8 |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: status |
Confirmed |
Triaged |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: title |
Bug #273189 in console-setup (Ubuntu): "non-ascii layout/encoding problems at "login" line" |
Bug #273189 in util-linux (Ubuntu): "non-ascii layout/encoding problems at "login" line" |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: importance |
High |
Wishlist |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: bugtargetname |
console-setup (Ubuntu) |
util-linux (Ubuntu) |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: statusexplanation |
|
OK, I've tracked this down to a combination of a bug in getty, which is shipped by util-linux, and a bug in the way we start getty. Here's the relevant code in get_logname:
if (op->eightbits) {
ascval = c;
} else if (c != (ascval = (c & 0177))) { /* "parity" bit on */
for (bits = 1, mask = 1; mask & 0177; mask <<= 1)
if (mask & ascval)
bits++; /* count "1" bits */
cp->parity |= ((bits & 1) ? 1 : 2);
}
/* Do erase, kill and end-of-line processing. */
switch (ascval) {
case CR:
case NL:
*bp = 0; /* terminate logname */
cp->eol = ascval; /* set end-of-line char */
break;
case BS:
case DEL:
case '#':
cp->erase = ascval; /* set erase character */
if (bp > logname) {
(void) write(1, erase[cp->parity], 3);
bp--;
}
break;
case CTL('U'):
case '@':
cp->kill = ascval; /* set kill character */
while (bp > logname) {
(void) write(1, erase[cp->parity], 3);
bp--;
}
break;
case CTL('D'):
exit(0);
default:
if (!isascii(ascval) || !isprint(ascval)) {
/* ignore garbage characters */ ;
} else if (bp - logname >= sizeof(logname) - 1) {
error(_("%s: input overrun"), op->tty);
} else {
(void) write(1, &c, 1); /* echo the character */
*bp++ = ascval; /* and store it */
}
break;
}
There are two main problems here. Firstly, we aren't running getty in eight-bit-clean mode on the Linux console, and I think we should be. This is the responsibility of system-services; finish-install will then have to be careful to undo this for serial consoles. Outside eight-bit-clean mode, getty interprets the second byte of my test character (the £ sign) as # with the parity bit set, and thus emits an erase sequence (which gets broken because it's using the wrong parity, I think ...).
Secondly, even in eight-bit-clean mode, getty rejects anything that isn't matched by isascii() or isprint(); it's doing this in the C locale so characters such as ğ and ş aren't counted as printable. I'm not sure what the correct resolution for this is, but it would be nice to permit non-ASCII usernames. However, this will likely require fixes elsewhere (for example, the installer rejects usernames that don't match /^[a-z][-a-z0-9]*$/, and I imagine that most software that processes usernames makes no attempt to convert them between encodings), so I'm marking this part of the bug as wishlist. If the first part of this bug is fixed, then at least typing a non-ASCII character won't corrupt the console. |
|
2008-09-25 12:35:48 |
Colin Watson |
console-setup: bugtargetdisplayname |
console-setup (Ubuntu) |
util-linux (Ubuntu) |
|
2008-09-25 12:36:26 |
Colin Watson |
bug |
|
|
assigned to upstart (Ubuntu) |
2008-09-25 12:36:42 |
Colin Watson |
upstart: status |
New |
Triaged |
|
2008-09-25 12:36:42 |
Colin Watson |
upstart: importance |
Undecided |
Medium |
|
2008-09-25 12:36:42 |
Colin Watson |
upstart: statusexplanation |
|
|
|
2008-09-25 12:37:27 |
Colin Watson |
bug |
|
|
assigned to finish-install (Ubuntu) |
2008-09-25 12:37:44 |
Colin Watson |
finish-install: status |
New |
Triaged |
|
2008-09-25 12:37:44 |
Colin Watson |
finish-install: importance |
Undecided |
Medium |
|
2008-09-25 12:37:44 |
Colin Watson |
finish-install: statusexplanation |
|
|
|
2008-09-25 12:54:26 |
Scott James Remnant (Canonical) |
upstart: status |
Triaged |
Incomplete |
|
2008-09-25 13:05:11 |
Launchpad Janitor |
finish-install: status |
Triaged |
Fix Released |
|
2009-06-18 14:27:46 |
Scott James Remnant (Canonical) |
upstart (Ubuntu): status |
Incomplete |
Triaged |
|
2009-06-18 14:32:15 |
Scott James Remnant (Canonical) |
summary |
non-ascii layout/encoding problems at "login" line |
event.d: non-ascii layout/encoding problems at "login" line |
|
2009-06-18 14:32:25 |
Scott James Remnant (Canonical) |
summary |
event.d: non-ascii layout/encoding problems at "login" line |
system-services: non-ascii layout/encoding problems at "login" line |
|
2009-06-18 17:14:35 |
Scott James Remnant (Canonical) |
upstart (Ubuntu): status |
Triaged |
In Progress |
|
2009-06-18 17:30:06 |
Launchpad Janitor |
upstart (Ubuntu): status |
In Progress |
Fix Released |
|
2009-07-03 03:05:20 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/karmic/finish-install |
|
2009-07-14 12:38:10 |
Launchpad Janitor |
branch linked |
|
lp:~ubuntu-core-dev/upstart/ubuntu |
|
2009-12-05 11:57:27 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/upstart |
|
2010-12-25 09:23:30 |
Launchpad Janitor |
branch linked |
|
lp:debian/sid/finish-install |
|
2011-01-01 09:59:34 |
Launchpad Janitor |
branch linked |
|
lp:debian/finish-install |
|
2011-01-06 11:13:34 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/finish-install |
|