diff options
-rw-r--r-- | src/core/hostname-setup.c | 111 | ||||
-rw-r--r-- | src/core/locale-setup.c | 96 | ||||
-rw-r--r-- | src/timedate/timedated.c | 17 | ||||
-rw-r--r-- | src/vconsole/vconsole-setup.c | 135 |
4 files changed, 10 insertions, 349 deletions
diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c index dbd2227e21..7894f8a5f2 100644 --- a/src/core/hostname-setup.c +++ b/src/core/hostname-setup.c @@ -30,14 +30,6 @@ #include "util.h" #include "log.h" -#if defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) -#define FILENAME "/etc/sysconfig/network" -#elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE) -#define FILENAME "/etc/HOSTNAME" -#elif defined(TARGET_GENTOO) -#define FILENAME "/etc/conf.d/hostname" -#endif - static int read_and_strip_hostname(const char *path, char **hn) { char *s; int r; @@ -57,103 +49,23 @@ static int read_and_strip_hostname(const char *path, char **hn) { } *hn = s; - - return 0; -} - -static int read_distro_hostname(char **hn) { - -#if defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) - int r; - _cleanup_fclose_ FILE *f = NULL; - - assert(hn); - - f = fopen(FILENAME, "re"); - if (!f) - return -errno; - - for (;;) { - char line[LINE_MAX]; - char *s, *k; - - if (!fgets(line, sizeof(line), f)) { - if (feof(f)) - break; - - r = -errno; - goto finish; - } - - s = strstrip(line); - - if (!startswith_no_case(s, "HOSTNAME=")) - continue; - - k = strdup(s+9); - if (!k) { - r = -ENOMEM; - goto finish; - } - - hostname_cleanup(k); - - if (isempty(k)) { - free(k); - r = -ENOENT; - goto finish; - } - - *hn = k; - r = 0; - goto finish; - } - - r = -ENOENT; - -finish: - return r; - -#elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE) - return read_and_strip_hostname(FILENAME, hn); -#else - return -ENOENT; -#endif -} - -static int read_hostname(char **hn) { - int r; - - assert(hn); - - /* First, try to load the generic hostname configuration file, - * that we support on all distributions */ - - r = read_and_strip_hostname("/etc/hostname", hn); - if (r < 0) { - if (r == -ENOENT) - return read_distro_hostname(hn); - - return r; - } - return 0; } int hostname_setup(void) { int r; - char *b = NULL; - const char *hn = NULL; + _cleanup_free_ char *b = NULL; + const char *hn; bool enoent = false; - r = read_hostname(&b); + r = read_and_strip_hostname("/etc/hostname", &b); if (r < 0) { - hn = NULL; - if (r == -ENOENT) enoent = true; else log_warning("Failed to read configured hostname: %s", strerror(-r)); + + hn = NULL; } else hn = b; @@ -161,7 +73,7 @@ int hostname_setup(void) { /* Don't override the hostname if it is already set * and not explicitly configured */ if (hostname_is_set()) - goto finish; + return 0; if (enoent) log_info("No hostname configured."); @@ -171,12 +83,9 @@ int hostname_setup(void) { if (sethostname(hn, strlen(hn)) < 0) { log_warning("Failed to set hostname to <%s>: %m", hn); - r = -errno; - } else - log_info("Set hostname to <%s>.", hn); - -finish: - free(b); + return -errno; + } - return r; + log_info("Set hostname to <%s>.", hn); + return 0; } diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c index 8821fc2a2d..48b59bf448 100644 --- a/src/core/locale-setup.c +++ b/src/core/locale-setup.c @@ -74,9 +74,6 @@ int locale_setup(void) { if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -#if defined(TARGET_FEDORA) - "LANG", &variables[VARIABLE_LANG], -#endif "locale.LANG", &variables[VARIABLE_LANG], "locale.LANGUAGE", &variables[VARIABLE_LANGUAGE], "locale.LC_CTYPE", &variables[VARIABLE_LC_CTYPE], @@ -121,99 +118,6 @@ int locale_setup(void) { log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } -#if defined(TARGET_ALTLINUX) - if (r <= 0) { - r = parse_env_file("/etc/sysconfig/i18n", NEWLINE, - "LANG", &variables[VARIABLE_LANG], - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r)); - } - -#elif defined(TARGET_SUSE) - if (r <= 0) { - r = parse_env_file("/etc/sysconfig/language", NEWLINE, - "RC_LANG", &variables[VARIABLE_LANG], - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); - } - -#elif defined(TARGET_DEBIAN) || defined(TARGET_ANGSTROM) - if (r <= 0) { - r = parse_env_file("/etc/default/locale", NEWLINE, - "LANG", &variables[VARIABLE_LANG], - "LC_CTYPE", &variables[VARIABLE_LC_CTYPE], - "LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC], - "LC_TIME", &variables[VARIABLE_LC_TIME], - "LC_COLLATE", &variables[VARIABLE_LC_COLLATE], - "LC_MONETARY", &variables[VARIABLE_LC_MONETARY], - "LC_MESSAGES", &variables[VARIABLE_LC_MESSAGES], - "LC_PAPER", &variables[VARIABLE_LC_PAPER], - "LC_NAME", &variables[VARIABLE_LC_NAME], - "LC_ADDRESS", &variables[VARIABLE_LC_ADDRESS], - "LC_TELEPHONE", &variables[VARIABLE_LC_TELEPHONE], - "LC_MEASUREMENT", &variables[VARIABLE_LC_MEASUREMENT], - "LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION], - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/default/locale: %s", strerror(-r)); - } - -#elif defined(TARGET_GENTOO) - /* Gentoo's openrc expects locale variables in /etc/env.d/ - * These files are later compiled by env-update into shell - * export commands at /etc/profile.env, with variables being - * exported by openrc's runscript (so /etc/init.d/) - */ - if (r <= 0) { - r = parse_env_file("/etc/profile.env", NEWLINE, - "export LANG", &variables[VARIABLE_LANG], - "export LC_CTYPE", &variables[VARIABLE_LC_CTYPE], - "export LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC], - "export LC_TIME", &variables[VARIABLE_LC_TIME], - "export LC_COLLATE", &variables[VARIABLE_LC_COLLATE], - "export LC_MONETARY", &variables[VARIABLE_LC_MONETARY], - "export LC_MESSAGES", &variables[VARIABLE_LC_MESSAGES], - "export LC_PAPER", &variables[VARIABLE_LC_PAPER], - "export LC_NAME", &variables[VARIABLE_LC_NAME], - "export LC_ADDRESS", &variables[VARIABLE_LC_ADDRESS], - "export LC_TELEPHONE", &variables[VARIABLE_LC_TELEPHONE], - "export LC_MEASUREMENT", &variables[VARIABLE_LC_MEASUREMENT], - "export LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION], - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/profile.env: %s", strerror(-r)); - } - -#elif defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) - if (r <= 0) { - r = parse_env_file("/etc/sysconfig/i18n", NEWLINE, - "LANG", &variables[VARIABLE_LANG], - "LC_CTYPE", &variables[VARIABLE_LC_CTYPE], - "LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC], - "LC_TIME", &variables[VARIABLE_LC_TIME], - "LC_COLLATE", &variables[VARIABLE_LC_COLLATE], - "LC_MONETARY", &variables[VARIABLE_LC_MONETARY], - "LC_MESSAGES", &variables[VARIABLE_LC_MESSAGES], - "LC_PAPER", &variables[VARIABLE_LC_PAPER], - "LC_NAME", &variables[VARIABLE_LC_NAME], - "LC_ADDRESS", &variables[VARIABLE_LC_ADDRESS], - "LC_TELEPHONE", &variables[VARIABLE_LC_TELEPHONE], - "LC_MEASUREMENT", &variables[VARIABLE_LC_MEASUREMENT], - "LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION], - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r)); - } - -#endif - if (!variables[VARIABLE_LANG]) { variables[VARIABLE_LANG] = strdup("C"); if (!variables[VARIABLE_LANG]) { diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index 784dadc631..fdb4335464 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -199,19 +199,10 @@ static int write_data_timezone(void) { int r = 0; _cleanup_free_ char *p = NULL; -#ifdef TARGET_DEBIAN - struct stat st; -#endif - if (!tz.zone) { if (unlink("/etc/localtime") < 0 && errno != ENOENT) r = -errno; -#ifdef TARGET_DEBIAN - if (unlink("/etc/timezone") < 0 && errno != ENOENT) - r = -errno; -#endif - return r; } @@ -223,14 +214,6 @@ static int write_data_timezone(void) { if (r < 0) return r; -#ifdef TARGET_DEBIAN - if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { - r = write_one_line_file_atomic("/etc/timezone", tz.zone); - if (r < 0) - return r; - } -#endif - return 0; } diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c index ca208497c3..b9d8681a85 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c @@ -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; |