Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1912609 - For languages that need multiple X layouts (e.g. Russian), console layout is set to US not native
Summary: For languages that need multiple X layouts (e.g. Russian), console layout is ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: rawhide
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Anaconda Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F34FinalBlocker
TreeView+ depends on / blocked
 
Reported: 2021-01-04 22:57 UTC by Adam Williamson
Modified: 2021-01-23 01:24 UTC (History)
9 users (show)

Fixed In Version: anaconda-34.19-1.fc34 anaconda-34.19-1.eln108
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-01-21 19:02:13 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Adam Williamson 2021-01-04 22:57:29 UTC
This seems to have been triggered by the fix for https://bugzilla.redhat.com/show_bug.cgi?id=1039185 , see https://bugzilla.redhat.com/show_bug.cgi?id=1039185#c46 . Since anaconda-34.3-1.fc34 landed in Rawhide, containing this commit:
https://github.com/rhinstaller/anaconda/commit/e05cc18294e67099bf87076e4f23fe5f031fecb5
if you do an install in Russian, the console layout configured in `/etc/vconsole.conf` is 'us', not 'ru' as it should be.

For these languages, the native console layout is "internally switched": it has two levels for inputting Latin characters and two levels for inputting Cyrillic characters. This is necessary as there's no convenient mechanism in kbd for switching between two separate console layouts. So we have to use the native layout, not 'us', or else there is no way to input native characters at the console.

I'm not sure yet *why* this change caused this consequence. The code paths are quite complex and ultimately wind up in the libxklavier g-i bindings. The change is clearly only actually intending to touch the X config, but in fact it looks like it winds up affecting the console layout too. My best guess would be that we wind up asking localed to set the console layout after making this change, and if localed sees the X layouts are "us,ru", it will set the console layout to "us", not "ru". Maybe we'll ultimately need to change localed?

Proposing as a Final blocker as a violation of "If a particular keyboard layout has been configured for the system, that keyboard layout must be used: When unlocking encrypted storage volumes during boot (but see footnotes) [and] When logging in at a console" - https://fedoraproject.org/wiki/Fedora_34_Final_Release_Criteria#Keyboard_layout_configuration . To me, this situation constitutes "configuring" the ru layout; we definitely intend, when you install in Russian, that the console layout configured should be ru.

Comment 1 Adam Williamson 2021-01-04 23:18:14 UTC
Ah, the system log does show this:

WARNING org.fedoraproject.Anaconda.Modules.Localization:DEBUG:anaconda.modules.localization.localed:Missing virtual console keymap value us converted from ['us', 'ru'] X layouts

which is logged from:

    if not vc_keymap:
        vc_keymap = localed_wrapper.convert_layouts(x_layouts)
        log.debug("Missing virtual console keymap value %s converted from %s X layouts",
                  vc_keymap, x_layouts)

in pyanaconda.modules.localization.localed.get_missing_keyboard_configuration() .

Comment 2 Sundeep Anand 2021-01-05 10:49:51 UTC
Probably, PR: https://github.com/rhinstaller/anaconda/pull/3064 changes this to:

[user@localhost user]# localectl
 System Locale: LANG=ru_RU.UTF-8
 VC Keymap: ru
 X11 Layout: us,ru
 X11 Variant: ,
 X11 Options: grp:alt_shift_toggle
 
[user@localhost user]# cat /etc/vconsole.conf
 KEYMAP="ru"
 FONT="eurlatgr"

shall that work?

Comment 3 Adam Williamson 2021-01-11 07:06:11 UTC
Yes, it should. Let's mark this as POST. When a new anaconda is built in Rawhide we can see if it's fixed. Thanks.

Comment 4 Sundeep Anand 2021-01-11 08:02:18 UTC
Thank you!

Comment 5 Adam Williamson 2021-01-12 16:57:08 UTC
Unfortunately test still fails in the same way with today's Rawhide, though I thought it should have the fix:
https://openqa.fedoraproject.org/tests/754876#
I'll dig into it a bit and try to figure out what's going on.

Comment 6 Adam Williamson 2021-01-12 17:49:31 UTC
ohh, PR is still open. I thought it had been merged for some reason. So, not a surprise the bug is still there.

Comment 7 Vladimír Slávik 2021-01-19 17:21:23 UTC
PR merged

Comment 8 Fedora Update System 2021-01-21 19:02:13 UTC
FEDORA-2021-05c241c540 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 9 Fedora Update System 2021-01-21 21:56:13 UTC
FEDORA-2021-eaae734297 has been pushed to the Fedora ELN stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Adam Williamson 2021-01-23 01:24:05 UTC
bad news: this still isn't working right. good news: it's not because of this bug any more! it's because of https://bugzilla.redhat.com/show_bug.cgi?id=1919483 , a change in kbd. Someone might suggest "fixing" that problem in anaconda, though, so you might wanna read it.

More bad news: while testing this I noticed that *displaying* Cyrillic characters on the console is also broken, and in fact was broken at least as far back as Fedora 33 Final :( Filed that as https://bugzilla.redhat.com/show_bug.cgi?id=1919486 .


Note You need to log in before you can comment on or make changes to this bug.