From 87a304976b735e84804b383c54e4ed885546aba9043483a7b97a80ea6c5bfc60 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 12 Nov 2015 12:24:39 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=919 --- ...lang-value-in-etc-sysconfig-language.patch | 55 ++++++++++++------- systemd-mini.changes | 7 +++ systemd-mini.spec | 10 ++++ systemd.changes | 7 +++ systemd.spec | 10 ++++ 5 files changed, 68 insertions(+), 21 deletions(-) diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index 16e2272a..520c7bbe 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -11,42 +11,55 @@ Index: systemd-221/src/core/locale-setup.c =================================================================== --- systemd-221.orig/src/core/locale-setup.c +++ systemd-221/src/core/locale-setup.c -@@ -34,6 +34,11 @@ int locale_setup(char ***environment) { +@@ -34,6 +34,10 @@ int locale_setup(char ***environment) { char **add; char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT -+ char _cleanup_free_ *root_uses_lang; -+ -+ zero(root_uses_lang); ++ char _cleanup_free_ *rc_lang = NULL, *rc_lc_ctype = NULL; ++ char _cleanup_free_ *root_uses_lang = NULL; +#endif if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -80,6 +85,27 @@ int locale_setup(char ***environment) { +@@ -80,6 +85,41 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } +#ifdef HAVE_SYSV_COMPAT -+ if (r <= 0 && -+ (r = parse_env_file("/etc/sysconfig/language", NEWLINE, -+ "ROOT_USES_LANG", &root_uses_lang, -+ "RC_LANG", &variables[VARIABLE_LANG], -+ NULL)) < 0) { -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); ++ r = parse_env_file("/etc/sysconfig/language", NEWLINE, ++ "RC_LANG", &rc_lang, ++ "RC_LC_CTYPE", &rc_lc_ctype, ++ "ROOT_USES_LANG", &root_uses_lang, ++ NULL); + -+ } else { -+ if (!root_uses_lang || (root_uses_lang && !strcaseeq(root_uses_lang,"yes"))) { -+ if (root_uses_lang && strcaseeq(root_uses_lang,"ctype")) -+ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; -+ else -+ free(variables[VARIABLE_LANG]); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); + -+ variables[VARIABLE_LANG]=strdup("POSIX"); ++ /* ++ * Use the values of the interactive locale configuration in /etc/sysconfig/language ++ * as fallback if /etc/locale.conf does not exist and no locale was specified on the ++ * kernel's command line. The special case ROOT_USES_LANG=ctype allows to set LC_CTYPE ++ * even if LANG for root is set to e.g. POSIX. But do this only if no LC_CTYPE has been ++ * set in /etc/locale.conf and on the kernel's command line. ++ */ ++ if (root_uses_lang) { ++ if (strcaseeq(root_uses_lang, "yes") && !variables[VARIABLE_LANG]) { ++ variables[VARIABLE_LANG] = rc_lang; ++ rc_lang = NULL; ++ } ++ if (strcaseeq(root_uses_lang, "ctype") && !variables[VARIABLE_LC_CTYPE]) { ++ if (variables[VARIABLE_LANG]) ++ variables[VARIABLE_LC_CTYPE] = strdup(variables[VARIABLE_LANG]); ++ else if (rc_lc_ctype && *rc_lc_ctype) { ++ variables[VARIABLE_LC_CTYPE] = rc_lc_ctype; ++ rc_lc_ctype = NULL; ++ } else if (rc_lang && *rc_lang) { ++ variables[VARIABLE_LC_CTYPE] = rc_lang; ++ rc_lang = NULL; ++ } ++ } + } -+ } -+ +#endif add = NULL; diff --git a/systemd-mini.changes b/systemd-mini.changes index 25d2cba5..4724b61e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de + +- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch + to handle locale at boot time well (boo#927250) +- Be able to use build service environments several times + ------------------------------------------------------------------- Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index e4c8d278..84245e76 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -658,6 +658,16 @@ cflags () esac set +o noclobber } + +# +# Be sure that fresh build libudev is linked as otherwise no errors are found +# +sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ +systemd_cryptsetup_LDFLAGS = \\\ + $(AM_LDFLAGS) \\\ + -Wl,-rpath-link=$(top_srcdir)/.libs\ + +}' Makefile.am sh autogen.sh export V=e diff --git a/systemd.changes b/systemd.changes index 25d2cba5..4724b61e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de + +- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch + to handle locale at boot time well (boo#927250) +- Be able to use build service environments several times + ------------------------------------------------------------------- Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de diff --git a/systemd.spec b/systemd.spec index 6c43ffee..674e6fc6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -653,6 +653,16 @@ cflags () esac set +o noclobber } + +# +# Be sure that fresh build libudev is linked as otherwise no errors are found +# +sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ +systemd_cryptsetup_LDFLAGS = \\\ + $(AM_LDFLAGS) \\\ + -Wl,-rpath-link=$(top_srcdir)/.libs\ + +}' Makefile.am sh autogen.sh export V=e