[PATCH 1/2] Add kickstart lang --addsupport option

Radek Vykydal rvykydal at redhat.com
Mon Mar 25 09:22:27 UTC 2013


---
 pyanaconda/install.py              |  2 +-
 pyanaconda/kickstart.py            |  4 ++--
 pyanaconda/packaging/yumpayload.py | 20 +++++++++++++++-----
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/pyanaconda/install.py b/pyanaconda/install.py
index 08b3966..cbaefce 100644
--- a/pyanaconda/install.py
+++ b/pyanaconda/install.py
@@ -128,7 +128,7 @@ def doInstall(storage, payload, ksdata, instClass):
     # system is bootable and configurable, and some other packages in order
     # to finish setting up the system.
     packages = storage.packages + ["authconfig", "firewalld"]
-    payload.preInstall(packages=packages, groups=payload.languageGroups(ksdata.lang.lang))
+    payload.preInstall(packages=packages, groups=payload.languageGroups())
     payload.install()
 
     if flags.flags.livecdInstall:
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index 9060c58..bcfcea6 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -576,9 +576,9 @@ class IscsiName(commands.iscsiname.FC6_IscsiName):
         blivet.iscsi.iscsi().initiator = self.iscsiname
         return retval
 
-class Lang(commands.lang.FC3_Lang):
+class Lang(commands.lang.F19_Lang):
     def __init__(self, *args, **kwargs):
-        commands.lang.FC3_Lang.__init__(self, *args, **kwargs)
+        commands.lang.F19_Lang.__init__(self, *args, **kwargs)
         if not self.lang and not flags.automatedInstall:
             self.lang = DEFAULT_LANG
 
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 4fc6177..02217ee 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -235,6 +235,13 @@ class YumPayload(PackagePayload):
 
         self.txID = None
 
+    def _writeLangpacksConfig(self):
+        langs = [self.data.lang.lang] + self.data.lang.addsupport
+        log.debug("configuring langpacks for %s" % langs)
+        with open("/etc/yum/pluginconf.d/langpacks.conf", "a") as f:
+            f.write("# Added by Anaconda\n")
+            f.write("langpack_locales = %s\n" % ", ".join(langs))
+
     def _writeYumConfig(self):
         """ Write out anaconda's main yum configuration file. """
         buf = """
@@ -345,6 +352,7 @@ reposdir=%s
 
         releasever = self._yum.conf.yumvar['releasever']
         self._writeYumConfig()
+        self._writeLangpacksConfig()
         self._resetYum(root=ROOT_PATH, keep_cache=True)
         log.debug("setting releasever to previous value of %s" % releasever)
         self._yum.preconf.releasever = releasever
@@ -1094,16 +1102,18 @@ reposdir=%s
 
         return groups
 
-    def languageGroups(self, lang):
+    def languageGroups(self):
+        langlist = [self.data.lang.lang] + self.data.lang.addsupport
         groups = []
         yum_groups = self._yumGroups
 
         if yum_groups:
             with _yum_lock:
-                langs = expand_langs(lang)
-                groups = map(lambda x: [g.groupid for g in
-                             yum_groups.get_groups() if g.langonly == x],
-                             langs)
+                for lang in langlist:
+                    langs = expand_langs(lang)
+                    groups.extend(map(lambda x: [g.groupid for g in
+                                  yum_groups.get_groups() if g.langonly == x],
+                                  langs))
 
         # the map gives us a list of results, this set call reduces
         # it down to a unique set, then list() makes it back into a list.
-- 
1.7.11.7



More information about the anaconda-patches mailing list