[rhel7 1/2] Make sure LANG is always set to something
David Shea
dshea at redhat.com
Thu Jun 4 21:21:28 UTC 2015
Kickstart and command line language settings were not being copied to
the environment, which caused issues later on. Copy user-specified lang
data to LANG, and make sure that LANG is always set to something usable.
(cherry picked from commit 98b2a5bb8b6ace16659826ad2763e79b77fcc1eb)
Resolves: rhbz#1198642
---
anaconda | 40 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/anaconda b/anaconda
index 49c4575..ba9a5c9 100755
--- a/anaconda
+++ b/anaconda
@@ -1113,30 +1113,28 @@ if __name__ == "__main__":
if "LANG" not in os.environ:
localization.load_firmware_language(ksdata.lang)
- # check if the LANG environmental variable is set
- env_lang = os.environ.get("LANG")
- if env_lang is not None:
- # parse it using langtable
- env_langs = localization.get_language_locales(env_lang)
- # if parsed LANG is the same as our default language - ignore it;
- # otherwise use it as valid language candidate
- if env_langs and env_langs[0] != constants.DEFAULT_LANG:
- env_lang = env_langs[0] # the first language is the best match
- else:
- env_lang = None
+ # If command line options or kickstart set LANG, override the environment
+ if opts.lang:
+ os.environ["LANG"] = opts.lang # pylint: disable=environment-modify
+ elif ksdata.lang.lang:
+ os.environ["LANG"] = ksdata.lang.lang # pylint: disable=environment-modify
- requested_lang = opts.lang or ksdata.lang.lang or env_lang
+ # Make sure LANG is set to something
+ if "LANG" not in os.environ:
+ os.environ["LANG"] = constants.DEFAULT_LANG # pylint: disable=environment-modify
- if requested_lang:
- locales = localization.get_language_locales(requested_lang)
- if locales:
- localization.setup_locale(locales[0], ksdata.lang)
- ksdata.lang.seen = True
- else:
- log.error("Invalid locale '%s' given on command line or in kickstart", requested_lang)
+ # parse it using langtable and update the environment
+ # If langtable returns no locales, fall back to the default
+ env_langs = localization.get_language_locales(os.environ["LANG"])
+ if env_langs:
+ # the first language is the best match
+ os.environ["LANG"] = env_langs[0] # pylint: disable=environment-modify
else:
- # no kickstart or bootoption - use default
- localization.setup_locale(constants.DEFAULT_LANG, ksdata.lang)
+ log.error("Invalid locale '%s' given on command line or in kickstart", os.environ["LANG"])
+ os.environ["LANG"] = constants.DEFAULT_LANG # pylint: disable=environment-modify
+
+ localization.setup_locale(os.environ["LANG"], ksdata.lang)
+ ksdata.lang.seen = True
import blivet
blivet.enable_installer_mode()
--
2.1.0
More information about the anaconda-patches
mailing list