core: drop support for old per-distro configuration files for console, hostname, locale, timezone
This simplifies the upstream system code quite a bit. If downstream distributions want to maintain compatibility with their old configuration files, they are welcome to do so, but need to maintain this as patches downstream. The burden needs to be on the distributions to maintain differences here. Our suggestion however is to just convert the old configuration files on upgrade, as multiple distributions already do.
This commit is contained in:
@@ -164,12 +164,6 @@ int main(int argc, char **argv) {
|
||||
char *vc_font = NULL;
|
||||
char *vc_font_map = NULL;
|
||||
char *vc_font_unimap = NULL;
|
||||
#ifdef TARGET_GENTOO
|
||||
char *vc_unicode = NULL;
|
||||
#endif
|
||||
#if defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
|
||||
char *vc_keytable = NULL;
|
||||
#endif
|
||||
int fd = -1;
|
||||
bool utf8;
|
||||
int r = EXIT_FAILURE;
|
||||
@@ -230,135 +224,6 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (r <= 0) {
|
||||
#if defined(TARGET_SUSE)
|
||||
r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
|
||||
"KEYTABLE", &vc_keymap,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
|
||||
|
||||
r = parse_env_file("/etc/sysconfig/console", NEWLINE,
|
||||
"CONSOLE_FONT", &vc_font,
|
||||
"CONSOLE_SCREENMAP", &vc_font_map,
|
||||
"CONSOLE_UNICODEMAP", &vc_font_unimap,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r));
|
||||
|
||||
#elif defined(TARGET_ALTLINUX)
|
||||
r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
|
||||
"KEYTABLE", &vc_keymap,
|
||||
NULL)
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
|
||||
|
||||
r = parse_env_file("/etc/sysconfig/consolefont", NEWLINE,
|
||||
"SYSFONT", &vc_font,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/consolefont: %s", strerror(-r));
|
||||
|
||||
#elif defined(TARGET_GENTOO)
|
||||
r = parse_env_file("/etc/rc.conf", NEWLINE,
|
||||
"unicode", &vc_unicode,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/rc.conf: %s", strerror(-r));
|
||||
|
||||
if (vc_unicode) {
|
||||
int rc_unicode;
|
||||
|
||||
rc_unicode = parse_boolean(vc_unicode);
|
||||
if (rc_unicode < 0)
|
||||
log_warning("Unknown value for /etc/rc.conf unicode=%s", vc_unicode);
|
||||
else {
|
||||
if (rc_unicode && !utf8)
|
||||
log_warning("/etc/rc.conf wants unicode, but current locale is not UTF-8 capable!");
|
||||
else if (!rc_unicode && utf8) {
|
||||
log_debug("/etc/rc.conf does not want unicode, leave it on in kernel but does not apply to vconsole.");
|
||||
utf8 = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* /etc/conf.d/consolefont comments and gentoo
|
||||
* documentation mention uppercase, but the actual
|
||||
* contents are lowercase. the existing
|
||||
* /etc/init.d/consolefont tries both
|
||||
*/
|
||||
r = parse_env_file("/etc/conf.d/consolefont", NEWLINE,
|
||||
"CONSOLEFONT", &vc_font,
|
||||
"consolefont", &vc_font,
|
||||
"consoletranslation", &vc_font_map,
|
||||
"CONSOLETRANSLATION", &vc_font_map,
|
||||
"unicodemap", &vc_font_unimap,
|
||||
"UNICODEMAP", &vc_font_unimap,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/conf.d/consolefont: %s", strerror(-r));
|
||||
|
||||
r = parse_env_file("/etc/conf.d/keymaps", NEWLINE,
|
||||
"keymap", &vc_keymap,
|
||||
"KEYMAP", &vc_keymap,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/conf.d/keymaps: %s", strerror(-r));
|
||||
|
||||
#elif defined(TARGET_MANDRIVA) || defined (TARGET_MAGEIA)
|
||||
|
||||
r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
|
||||
"SYSFONT", &vc_font,
|
||||
"SYSFONTACM", &vc_font_map,
|
||||
"UNIMAP", &vc_font_unimap,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
|
||||
|
||||
r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
|
||||
"KEYTABLE", &vc_keytable,
|
||||
"KEYMAP", &vc_keymap,
|
||||
"UNIKEYTABLE", &vc_keymap,
|
||||
"GRP_TOGGLE", &vc_keymap_toggle,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
|
||||
|
||||
if (vc_keytable) {
|
||||
free(vc_keymap);
|
||||
if (utf8) {
|
||||
if (endswith(vc_keytable, ".uni") || strstr(vc_keytable, ".uni."))
|
||||
vc_keymap = strdup(vc_keytable);
|
||||
else {
|
||||
char *s;
|
||||
s = strstr(vc_keytable, ".map");
|
||||
if (s)
|
||||
vc_keytable[s-vc_keytable+1] = '\0';
|
||||
vc_keymap = strappend(vc_keytable, ".uni");
|
||||
}
|
||||
} else
|
||||
vc_keymap = strdup(vc_keytable);
|
||||
|
||||
free(vc_keytable);
|
||||
|
||||
if (!vc_keymap) {
|
||||
log_oom();
|
||||
goto finish;
|
||||
}
|
||||
}
|
||||
|
||||
if (access("/etc/sysconfig/console/default.kmap", F_OK) >= 0) {
|
||||
char *t;
|
||||
|
||||
t = strdup("/etc/sysconfig/console/default.kmap");
|
||||
if (!t) {
|
||||
log_oom();
|
||||
goto finish;
|
||||
}
|
||||
|
||||
free(vc_keymap);
|
||||
vc_keymap = t;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
r = EXIT_FAILURE;
|
||||
|
||||
Reference in New Issue
Block a user