[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