Bug 882212 - localectl set-x11-keymap: variant settings does not work
Summary: localectl set-x11-keymap: variant settings does not work
Alias: None
Product: Fedora
Classification: Fedora
Component: systemd
Version: 18
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Michal Schmidt
QA Contact: Fedora Extras Quality Assurance
Whiteboard: AcceptedNTH
Depends On:
Blocks: F18Blocker, F18FinalBlocker F18-accepted, F18FinalFreezeExcept 881624
TreeView+ depends on / blocked
Reported: 2012-11-30 12:10 UTC by Jan Vcelak
Modified: 2013-03-04 01:30 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2012-12-23 04:37:07 UTC
Type: Bug

Attachments (Terms of Use)

Description Jan Vcelak 2012-11-30 12:10:52 UTC
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 12:15:15 UTC
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 13:33:29 UTC
Yum is not officially supported upgrade mechanism thus -1 blocker + 1 nth

Comment 3 Tim Flink 2012-11-30 20:32:31 UTC
Are upgrades with FedUp affected by this or is it just yum upgrades?

Comment 5 Jan Vcelak 2012-12-19 11:20:43 UTC
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 16:55:47 UTC
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 18:18:36 UTC
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 12:49:27 UTC
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 15:44:38 UTC
systemd-195-13.fc18 has been submitted as an update for Fedora 18.

Comment 10 Fedora Update System 2012-12-21 01:25:39 UTC
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 09:03:13 UTC
Thank you!

Comment 12 Adam Williamson 2012-12-21 21:11:29 UTC
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 18:14:51 UTC
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-23 04:37:11 UTC
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.

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