Bug 882212

Summary: localectl set-x11-keymap: variant settings does not work
Product: [Fedora] Fedora Reporter: Jan Vcelak <jvcelak>
Component: systemdAssignee: Michal Schmidt <mschmidt>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 18CC: awilliam, johannbg, lnykryn, metherid, mschmidt, msekleta, notting, plautrba, robatino, systemd-maint, tflink, tsmetana, vpavlin
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedNTH
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-22 23:37:07 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 752661, 752665, 881624    

Description Jan Vcelak 2012-11-30 07:10:52 EST
Description of problem:

There is an error when 'localectl set-x11-keymap' is invoked with parameters to set an alternative keyboard variant. The keyboard setting is not set and there is a segfault.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. localectl set-x11-keymap cz pc105 qwerty
Actual results:
process 7484: arguments to dbus_message_iter_append_basic() were incorrect, assertion "_dbus_check_is_valid_utf8 (*string_p)" failed in file dbus-message.c line 2598.
This is normally a bug in some application using the D-Bus library.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)

Expected results:
X11 keyboard configuration is set correctly.

Additional info:

It works fine without specifying the layout variant:
localectl set-x11-keymap cz pc105
Comment 1 Jan Vcelak 2012-11-30 07:15:15 EST
Keyboard layout setting process changed between F17 and F18. This becomes critical for people upgrading using yum as I did. (Not sure how the migration to new configuration files is handled with other upgrade methods.)

Therefore proposing as a blocker.
Comment 2 J├│hann B. Gu├░mundsson 2012-11-30 08:33:29 EST
Yum is not officially supported upgrade mechanism thus -1 blocker + 1 nth
Comment 3 Tim Flink 2012-11-30 15:32:31 EST
Are upgrades with FedUp affected by this or is it just yum upgrades?
Comment 5 Jan Vcelak 2012-12-19 06:20:43 EST
I can confirm that the fix is correct.

Here is a scratch build with the patch applied:

Any chance this can be included in final F18?
Comment 6 Tim Flink 2012-12-19 11:55:47 EST
Yeah, this like it would be ok for NTH (able to pull fix past freeze but wouldn't block F18 release) without testing the FedUp case.

Proposing as NTH, if you could get a build submitted soon for testing, that would be great.
Comment 7 Adam Williamson 2012-12-19 13:18:36 EST
Discussed at 2012-12-19 blocker review meeting: http://meetbot.fedoraproject.org/fedora-bugzappers/2012-12-19/f18final-blocker-review-6.2012-12-19-17.02.log.txt . We're not clear on the impact on fedup upgrades, but accepted NTH at least for the yum case.
Comment 8 Jan Vcelak 2012-12-20 07:49:27 EST
Adam, this has no impact at fedup (at the moment), because fedup does not care about keyboard layout. There is an existing bug #881624 for that, I just nominated it as a blocker.
Comment 9 Fedora Update System 2012-12-20 10:44:38 EST
systemd-195-13.fc18 has been submitted as an update for Fedora 18.
Comment 10 Fedora Update System 2012-12-20 20:25:39 EST
Package systemd-195-13.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing systemd-195-13.fc18'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
Comment 11 Jan Vcelak 2012-12-21 04:03:13 EST
Thank you!
Comment 12 Adam Williamson 2012-12-21 16:11:29 EST
Discussed again at 2012-12-21 blocker review meeting: http://meetbot.fedoraproject.org/fedora-bugzappers/2012-12-21/f18final-blocker-review-7.2012-12-21-18.33.log.txt . We were very unclear on how this actually affects upgrades. systemd %post does not call localectl or systemd-localed in any way to perform the config migration: it simply sources /etc/sysconfig/keyboard and dumps what it finds into /etc/vconsole.conf:

# Migrate /etc/sysconfig/keyboard
if [ -e /etc/sysconfig/keyboard -a ! -e /etc/vconsole.conf ]; then
        unset SYSFONT
        unset SYSFONTACM
        unset UNIMAP
        unset KEYMAP
        [ -e /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n >/dev/null 2>&1 || :
        . /etc/sysconfig/keyboard >/dev/null 2>&1 || :
        [ -n "$SYSFONT" ] && echo FONT=$SYSFONT > /etc/vconsole.conf 2>&1 || :
        [ -n "$SYSFONTACM" ] && echo FONT_MAP=$SYSFONTACM >> /etc/vconsole.conf 2>&1 || :
        [ -n "$UNIMAP" ] && echo FONT_UNIMAP=$UNIMAP >> /etc/vconsole.conf 2>&1 || :
        [ -n "$KEYTABLE" ] && echo KEYMAP=$KEYTABLE >> /etc/vconsole.conf 2>&1 || :

The bug report doesn't explain sufficiently how this actually causes problems on upgrade, and we couldn't figure out how ourselves. So we couldn't really accept it as a blocker. However, it's already accepted as NTH, and should be pulled into the next compose and pushed through the freeze, so it ought to go away either way.
Comment 13 Jan Vcelak 2012-12-22 13:14:51 EST
This currently doesn't affect the upgrade.

I updated one of my machines with "yum distro-sync" and my X11 keyboard layout got lost. That's the reason why I care about working 'localectl set-x11-keymap' and why I nominated it as a blocker. It's fine as NTH.

Then I tried the upgrade using Fedup on my laptop. The result was the same, X11 keyboard layout was dropped. I thought this was a problem of Fedup, but obviously this should be handled by systemd, no matter how. So here is a bug for systemd:

And sorry for the confusion, I'm getting lost in what is responsible for what.
Comment 14 Fedora Update System 2012-12-22 23:37:11 EST
systemd-195-13.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.