mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-30 23:21:08 +03:00
vconsole-setup: fix vconsole.conf vs. cmdline overriding logic
Skipping the parsing of /etc/vconsole.conf just because some values were
already assigned from the cmdline never made sense. And by the way, commit
f73141d
changed the return values of parse_env_file() - it now gives 0
on success. Which means in current HEAD /etc/vconsole.conf overrides the
cmdline, which is the reverse of what's expected.
We need to parse /etc/vconsole.conf first and then let vconsole.*
overrides from cmdline take effect. The behaviour is documented in
vconsole.conf(5).
https://bugzilla.redhat.com/show_bug.cgi?id=948750
This commit is contained in:
parent
c784c5ce77
commit
2034ec42ec
@ -254,8 +254,18 @@ int main(int argc, char **argv) {
|
||||
|
||||
utf8 = is_locale_utf8();
|
||||
|
||||
r = 0;
|
||||
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
|
||||
"KEYMAP", &vc_keymap,
|
||||
"KEYMAP_TOGGLE", &vc_keymap_toggle,
|
||||
"FONT", &vc_font,
|
||||
"FONT_MAP", &vc_font_map,
|
||||
"FONT_UNIMAP", &vc_font_unimap,
|
||||
NULL);
|
||||
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/vconsole.conf: %s", strerror(-r));
|
||||
|
||||
/* Let the kernel command line override /etc/vconsole.conf */
|
||||
if (detect_container(NULL) <= 0) {
|
||||
r = parse_env_file("/proc/cmdline", WHITESPACE,
|
||||
"vconsole.keymap", &vc_keymap,
|
||||
@ -269,21 +279,6 @@ int main(int argc, char **argv) {
|
||||
log_warning("Failed to read /proc/cmdline: %s", strerror(-r));
|
||||
}
|
||||
|
||||
/* Hmm, nothing set on the kernel cmd line? Then let's
|
||||
* try /etc/vconsole.conf */
|
||||
if (r <= 0) {
|
||||
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
|
||||
"KEYMAP", &vc_keymap,
|
||||
"KEYMAP_TOGGLE", &vc_keymap_toggle,
|
||||
"FONT", &vc_font,
|
||||
"FONT_MAP", &vc_font_map,
|
||||
"FONT_UNIMAP", &vc_font_unimap,
|
||||
NULL);
|
||||
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/vconsole.conf: %s", strerror(-r));
|
||||
}
|
||||
|
||||
if (utf8)
|
||||
enable_utf8(fd);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user