From 3d21005462dcd92580e1d20f227e51280ff4c9c4 Mon Sep 17 00:00:00 2001
From: Live System User <liveuser(a)localhost.localdomain>
Date: Thu, 8 Aug 2013 20:07:40 +0200
Subject: [PATCH] honor keyboard settings
---
imgcreate/keyboard_old.py | 95 +++++++++++++++++++++++++++++++++++++++++++++++
imgcreate/kickstart.py | 10 +++--
2 files changed, 101 insertions(+), 4 deletions(-)
create mode 100644 imgcreate/keyboard_old.py
diff --git a/imgcreate/keyboard_old.py b/imgcreate/keyboard_old.py
new file mode 100644
index 0000000..da10b35
--- /dev/null
+++ b/imgcreate/keyboard_old.py
@@ -0,0 +1,95 @@
+#
+# keyboard.py - keyboard backend data object
+#
+# Brent Fox <bfox(a)redhat.com>
+# Mike Fulbright <msf(a)redhat.com>
+# Jeremy Katz <katzj(a)redhat.com>
+# Lubomir Rintel <lkundrak(a)v3.sk>
+#
+# Copyright 2002 Red Hat, Inc.
+# Copyright 2009 Lubomir Rintel
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# This file was adjusted for livecd-tools.f19
+
+import dbus
+import string
+import os
+import system_config_keyboard.keyboard_models as keyboard_models
+
+class Keyboard_old():
+ def __init__(self):
+ self._mods = keyboard_models.KeyboardModels()
+
+ self.type = "PC"
+ self.beenset = 0
+ self.config = []
+
+ # default to us
+ self.set("us")
+
+ try:
+ bus = dbus.SystemBus()
+ hal =
dbus.Interface(bus.get_object("org.freedesktop.Hal","/org/freedesktop/Hal/Manager"),"org.freedesktop.Hal.Manager")
+ kbs = hal.FindDeviceByCapability("input.keyboard")
+ if len(kbs) == 0:
+ self.type = "Serial"
+ else:
+ self._var ("KEYBOARDTYPE", "pc")
+ kb = dbus.Interface(bus.get_object("org.freedesktop.Hal",
kbs[0]), 'org.freedesktop.Hal.Device')
+ if kb.GetPropertyString("info.product").startswith("Sun
Type"):
+ self.type == "Sun"
+ self._var ("KEYBOARDTYPE", "sun")
+ except:
+ pass
+
+ def _get_models(self):
+ return self._mods.get_models()
+ modelDict = property(_get_models)
+
+ def _var (self, name, value = None):
+ found = 0
+ for line in self.config:
+ if line[1] == name:
+ found = 1
+ break
+ if not found:
+ line = [None, None, None]
+ # get or set?
+ if not value:
+ return line[2]
+ line[1:3] = (name, value)
+ line[0] = '{0}="{1}"\n'.format (name, value)
+ if not found:
+ self.config.append (line)
+
+ def set(self, keytable):
+ if self.type != "Serial":
+ kb = self.modelDict[keytable]
+ self._var ("KEYTABLE", keytable)
+ self._var ("MODEL", kb[2])
+ self._var ("LAYOUT", kb[1])
+ self._var ("VARIANT", kb[3])
+ self._var ("OPTIONS", kb[4])
+
+ def write(self, instPath = "/"):
+ file = open(instPath + "/etc/sysconfig/keyboard", "w")
+ for line in self.config:
+ file.write (line[0]);
+ try:
+ os.unlink(instPath + "/etc/sysconfig/console/default.kmap")
+ except:
+ pass
diff --git a/imgcreate/kickstart.py b/imgcreate/kickstart.py
index 1059801..db71a1c 100644
--- a/imgcreate/kickstart.py
+++ b/imgcreate/kickstart.py
@@ -25,10 +25,7 @@ import logging
import urlgrabber
import selinux
-try:
- import system_config_keyboard.keyboard as keyboard
-except ImportError:
- import rhpl.keyboard as keyboard
+import keyboard_old as keyboard
import pykickstart.commands as kscommands
import pykickstart.constants as ksconstants
@@ -153,6 +150,11 @@ class KeyboardConfig(KickstartConfig):
f.write('FONT="%s"\n' % DEFAULT_VC_FONT)
except IOError as e:
logging.error("Cannot write vconsole configuration file: %s" % e)
+
+ k = keyboard.Keyboard_old()
+ if kskeyboard.keyboard:
+ k.set(kskeyboard.keyboard)
+ k.write(self.instroot)
class TimezoneConfig(KickstartConfig):
"""A class to apply a kickstart timezone configuration to a
system."""
--
1.8.3.1
--
--joshua