[PATCH] Fixup xconf keymap code for text/dirinstall

Brian C. Lane bcl at redhat.com
Thu May 9 15:56:50 UTC 2013


From: "Brian C. Lane" <bcl at redhat.com>

---
 anaconda               |  2 +-
 pyanaconda/keyboard.py | 29 ++++++++++-------------------
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/anaconda b/anaconda
index da12a04..f2a556e 100755
--- a/anaconda
+++ b/anaconda
@@ -899,7 +899,7 @@ if __name__ == "__main__":
         if not ksdata.keyboard.keyboard:
             ksdata.keyboard.keyboard = opts.keymap
 
-    if ksdata.keyboard.keyboard:
+    if ksdata.keyboard.keyboard and can_touch_runtime_system("activate keyboard"):
         keyboard.activate_keyboard(ksdata.keyboard)
 
     # Some post-install parts of anaconda are implemented as kickstart
diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py
index 84a9bac..87ec3d8 100755
--- a/pyanaconda/keyboard.py
+++ b/pyanaconda/keyboard.py
@@ -170,8 +170,12 @@ def write_keyboard_config(keyboard, root, convert=True):
                 errors.append("Cannot create directory xorg.conf.d")
 
             # copy the file to the chroot
-            shutil.copy2(xconf_file_path,
-                         os.path.normpath(root + "/" + xconf_file_path))
+            try:
+                shutil.copy2(xconf_file_path,
+                             os.path.normpath(root + "/" + xconf_file_path))
+            except IOError as ioerr:
+                # The file may not exist (eg. text install) so don't raise
+                pass
 
             # restore the original values
             localed_wrapper.set_layouts(layouts_variants,
@@ -699,9 +703,9 @@ class LocaledWrapper(object):
         if variants:
             variants = variants[0].split(",")
 
-            # if there are more layouts than variants, empty strings should be appended
-            diff = len(layouts) - len(variants)
-            variants.extend(diff * [""])
+        # if there are more layouts than variants, empty strings should be appended
+        diff = len(layouts) - len(variants)
+        variants.extend(diff * [""])
 
         # map can be used with multiple lists and works like zipWith (Haskell)
         return map(_join_layout_variant, layouts, variants)
@@ -757,20 +761,7 @@ class LocaledWrapper(object):
 
         self.set_keymap(keymap, convert=True)
 
-        layouts_str, variants_str = self.layouts_variants
-
-        layouts = layouts_str.split(",")
-        variants = variants_str.split(",")
-
-        # if there are less variants than layouts, empty strings need to be
-        # appended
-        diff = len(layouts) - len(variants)
-        variants = variants + diff * [""]
-
-        layouts_variants = []
-        layouts_variants.extend(map(_join_layout_variant, layouts, variants))
-
-        return ",".join(layouts_variants)
+        return ",".join(self.layouts_variants)
 
     def set_layouts(self, layouts_variants, options=None, convert=False):
         """
-- 
1.8.1.4



More information about the anaconda-patches mailing list