Beispiel #1
0
 def getDefaultKeyboard(self, instPath):
     try:
         return self.localeInfo[self.systemLang][3]
     except KeyError:
         try:
             kbd = keyboard.Keyboard()
             kbd.read(instPath)
             return kbd.get()
         except:
             return self.localeInfo[self._default][3]
Beispiel #2
0
    def __init__(self):
        import desktop, dispatch, firewall, security
        import system_config_keyboard.keyboard as keyboard
        from flags import flags

        self._backend = None
        self._bootloader = None
        self.canReIPL = False
        self.desktop = desktop.Desktop()
        self.dir = None
        self.dispatch = dispatch.Dispatcher(self)
        self.displayMode = None
        self.extraModules = []
        self.firewall = firewall.Firewall()
        self.id = None
        self._instClass = None
        self._instLanguage = None
        self._intf = None
        self.isHeadless = False
        self.keyboard = keyboard.Keyboard()
        self.ksdata = None
        self.mediaDevice = None
        self.methodstr = None
        self._network = None
        self.opts = None
        self._platform = None
        self.proxy = None
        self.proxyUsername = None
        self.proxyPassword = None
        self.reIPLMessage = None
        self.rescue = False
        self.rescue_mount = True
        self.rootParts = None
        self.rootPath = "/mnt/sysimage"
        self.security = security.Security()
        self.simpleFilter = not iutil.isS390()
        self.stage2 = None
        self._storage = None
        self._timezone = None
        self.updateSrc = None
        self.upgrade = flags.cmdline.has_key("preupgrade")
        self.upgradeRoot = None
        self.upgradeSwapInfo = None
        self._users = None
        self.mehConfig = None
        self.clearPartTypeSelection = None      # User's GUI selection
        self.clearPartTypeSystem = None         # System's selection

        # *sigh* we still need to be able to write this out
        self.xdriver = None
Beispiel #3
0
    def __init__(self, anaconda, extraModules, displayMode, backend=None):
        self.displayMode = displayMode

        self.instLanguage = language.Language(self.displayMode)
        self.keyboard = keyboard.Keyboard()
        self.backend = backend
        self.anaconda = anaconda

        self.monitor = None
        self.videocard = None
        self.isHeadless = 0
        self.extraModules = extraModules

        self.simpleFilter = not iutil.isS390()

        self.reset()
Beispiel #4
0
    def init_gtk(self):
        rd, wr = os.pipe()
        pid = os.fork()
        if not pid:
            import gtk
            os.write(wr, '#')

            kbd = keyboard.Keyboard()
            kbd.read()
            kbd.activate()

            gtk.main()
            os._exit(0)

        os.read(rd, 1)
        os.close(rd)
        os.close(wr)
    def __init__(self, parent_class, xml, notebook, ksHandler):
        self.parent_class = parent_class
        self.notebook = notebook
        self.ks = ksHandler
        self.xml = xml
        self.lang_combo = xml.get_widget("lang_combo")
        self.keyboard_combo = xml.get_widget("keyboard_combo")
        self.timezone_combo = xml.get_widget("timezone_combo")
        self.utc_check_button = xml.get_widget("utc_check_button")

        self.root_passwd_entry = xml.get_widget("root_passwd_entry")
        self.root_passwd_confirm_entry = xml.get_widget(
            "root_passwd_confirm_entry")
        self.reboot_checkbutton = xml.get_widget("reboot_checkbutton")
        self.text_install_checkbutton = xml.get_widget(
            "text_install_checkbutton")
        self.ks.bootloader(md5pass="", password="")
        self.encrypt_root_pw_checkbutton = xml.get_widget(
            "encrypt_root_pw_checkbutton")
        self.lang_support_list = xml.get_widget("lang_support_list")
        self.platform_combo = xml.get_widget("platform_combo")

        self.platform_list = [
            _("x86, AMD64, or Intel EM64T"),
            _("Intel Itanium"),
            _("IBM iSeries"),
            _("IBM pSeries"),
            _("IBM zSeries/s390")
        ]
        for i in self.platform_list:
            self.platform_combo.append_text(i)
        self.platform_combo.set_active(0)
        self.platform_combo.connect("changed", self.platformChanged)

        self.langDict = langDict

        # set a default platform
        if not self.ks.platform:
            self.ks.platform = "x86, AMD64, or Intel EM64T"

        #populate language combo
        self.lang_list = self.langDict.keys()
        self.lang_list.sort()
        for i in self.lang_list:
            self.lang_combo.append_text(i)

        #set default to English
        self.lang_combo.set_active(self.lang_list.index('English (USA)'))

        #populate keyboard combo, add keyboards here
        self.keyboard_dict = keyboard_models.KeyboardModels().get_models()
        keys = self.keyboard_dict.keys()
        self.keyboard_list = []

        for item in keys:
            self.keyboard_list.append(self.keyboard_dict[item][0])

        self.keyboard_list.sort()
        for i in self.keyboard_list:
            self.keyboard_combo.append_text(i)

        #set default to English
        kbd = keyboard.Keyboard()
        kbd.read()
        currentKeymap = kbd.get()

        #set keyboard to current keymap
        try:
            self.keyboard_combo.set_active(
                self.keyboard_list.index(self.keyboard_dict[currentKeymap][0]))
        except:
            self.keyboard_combo.set_active(
                self.keyboard_list.index(self.keyboard_dict["us"][0]))

        zt = zonetab.ZoneTab()
        self.timezone_list = [x.tz for x in zt.getEntries()]
        self.timezone_list.sort()

        try:
            select = self.timezone_list.index("America/New_York")
        except:
            select = 0

        for i in self.timezone_list:
            self.timezone_combo.append_text(i)
        self.timezone_combo.set_active(select)
Beispiel #6
0
    def __init__(self, parent_class, xml, notebook, ksHandler):
        self.parent_class = parent_class
        self.notebook = notebook
        self.ks = ksHandler
        self.xml = xml
        self.lang_combo = xml.get_widget("lang_combo")
        self.keyboard_combo = xml.get_widget("keyboard_combo")
        self.timezone_combo = xml.get_widget("timezone_combo")
        self.utc_check_button = xml.get_widget("utc_check_button")

        self.root_passwd_entry = xml.get_widget("root_passwd_entry")
        self.root_passwd_confirm_entry = xml.get_widget(
            "root_passwd_confirm_entry")
        self.reboot_checkbutton = xml.get_widget("reboot_checkbutton")
        self.text_install_checkbutton = xml.get_widget(
            "text_install_checkbutton")
        self.ks.bootloader(md5pass="", password="")
        self.encrypt_root_pw_checkbutton = xml.get_widget(
            "encrypt_root_pw_checkbutton")
        self.lang_support_list = xml.get_widget("lang_support_list")
        self.platform_combo = xml.get_widget("platform_combo")

        self.platform_list = [
            _("x86, AMD64, or Intel EM64T"),
            _("Intel Itanium"),
            _("IBM iSeries"),
            _("IBM pSeries"),
            _("IBM zSeries/s390")
        ]
        for i in self.platform_list:
            self.platform_combo.append_text(i)
        self.platform_combo.set_active(0)
        self.platform_combo.connect("changed", self.platformChanged)

        self.langDict = langDict

        # set a default platform
        if not self.ks.platform:
            self.ks.platform = "x86, AMD64, or Intel EM64T"

        #populate language combo
        self.lang_list = self.langDict.keys()
        self.lang_list.sort()
        for i in self.lang_list:
            self.lang_combo.append_text(i)

        #set default to English
        self.lang_combo.set_active(self.lang_list.index('English (USA)'))

        #populate keyboard combo, add keyboards here
        self.keyboard_dict = keyboard_models.KeyboardModels().get_models()
        keys = self.keyboard_dict.keys()
        self.keyboard_list = []

        for item in keys:
            self.keyboard_list.append(self.keyboard_dict[item][0])

        self.keyboard_list.sort()
        for i in self.keyboard_list:
            self.keyboard_combo.append_text(i)

        #set default to English
        kbd = keyboard.Keyboard()
        kbd.read()
        currentKeymap = kbd.get()

        #set keyboard to current keymap
        try:
            self.keyboard_combo.set_active(
                self.keyboard_list.index(self.keyboard_dict[currentKeymap][0]))
        except:
            self.keyboard_combo.set_active(
                self.keyboard_list.index(self.keyboard_dict["us"][0]))

        # For the timezones, use common_timezones plus some of the Etc/ zones in all_timezones
        # We want Etc/UTC, Etc/GMT, and Etc/GMT(+|-)x *except* the repeat GMT zones, like GMT0,
        # GMT+0, GMT-0.
        # Note that the pytz lists are lazy lists that don't actually do anything until iterated over.
        etc_zones = [
            t for t in pytz.all_timezones if t.startswith('Etc/') and (
                t == "Etc/UTC" or t == "Etc/GMT" or t.startswith("Etc/GMT-")
                or t.startswith("Etc/GMT+"))
        ]
        etc_zones_filtered = filter(
            lambda t: t != "Etc/GMT-0" and t != "Etc/GMT+0", etc_zones)
        self.timezone_list = etc_zones_filtered + [
            t for t in pytz.common_timezones
        ]
        self.timezone_list.sort()

        try:
            select = self.timezone_list.index("America/New_York")
        except:
            select = 0

        for i in self.timezone_list:
            self.timezone_combo.append_text(i)
        self.timezone_combo.set_active(select)
    def start(self):
        os.environ["DISPLAY"] = ":9"

        # set up the lang variable according to what's set in i18n
        with open("/etc/sysconfig/i18n", "r") as f:
            data = f.read()
        for line in shlex.split(data):
            key, value = line.split("=")
            if key == "LANG":
                os.environ[key] = value
                break

        try:
            args = [":9", "-ac", "-nolisten", "tcp", "vt6", "-br"]
            noOutput = os.open("/dev/null", os.O_RDWR)

            def sigchld_handler(num, frame):
                raise OSError

            def sigusr1_handler(num, frame):
                pass

            def preexec_fn():
                signal.signal(signal.SIGUSR1, signal.SIG_IGN)

            old_sigusr1 = signal.signal(signal.SIGUSR1, sigusr1_handler)
            old_sigchld = signal.signal(signal.SIGCHLD, sigchld_handler)
            self.x = subprocess.Popen(["/usr/bin/Xorg"] + args,
                                      stdout=noOutput,
                                      stderr=noOutput,
                                      preexec_fn=preexec_fn)
            signal.pause()
            signal.signal(signal.SIGUSR1, old_sigusr1)
            signal.signal(signal.SIGCHLD, old_sigchld)

        except OSError:
            logging.error("X server failed to start")
            raise RuntimeError, "X server failed to start"
        except:
            import traceback
            (ty, value, tb) = sys.exc_info()
            lst = traceback.format_exception(ty, value, tb)
            text = string.joinfields(lst, "")
            print text

            logging.error("X server failed to start")
            raise RuntimeError, "X server failed to start"

        logging.info("X server started successfully.")

        # Init GTK to connect to the X server, then write a token on a pipe to
        # tell our parent process that we're ready to start metacity.
        (rd, wr) = os.pipe()
        pid = os.fork()
        if not pid:
            import gtk
            os.write(wr, "#")

            # Set up the keyboard.
            import system_config_keyboard.keyboard as keyboard
            kbd = keyboard.Keyboard()
            kbd.read()
            kbd.activate()

            # Block until the X server is killed.
            gtk.main()
            os._exit(0)

        # Block on read of token
        os.read(rd, 1)
        os.close(rd)
        os.close(wr)

        self._wm_pid = self._startWindowManager()
        self._mergeXresources()
Beispiel #8
0
 def apply(self, kskeyboard):
     k = keyboard.Keyboard()
     if kskeyboard.keyboard:
         k.set(kskeyboard.keyboard)
     k.write(self.instroot)
Beispiel #9
0
 def getKeyboard(self):
     kbd = keyboard.Keyboard()
     kbd.read()
     self.ks.keyboard(keyboard=kbd.get())