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:
Lennart Poettering
2013-01-04 23:26:20 +01:00
parent 1328f66ad1
commit 46a2911bf2
4 changed files with 10 additions and 349 deletions
-135
View File
@@ -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;