def run(self): # Edit the casper.conf # Strangely enough, casper uses the "quiet" flag if the build system is either Debian or Ubuntu if config.VStatus is False: logger.logI(self.tn, _("Editing casper and LSB configuration files")) logger.logV(self.tn, _("Editing casper.conf")) buildsys = "Ubuntu" if configutils.parseBoolean(configutils.getValue(configs[configutils.casperquiet])) is False: buildsys = "" unionfs = configutils.getValue(configs[configutils.unionfs]) if unionfs == "overlayfs" and aptutil.compVersions(aptutil.getPkgVersion(aptutil.getPkg("casper", aptcache)), "1.272", aptutil.lt): logger.logW(self.tn, _("Using DEFAULT instead of overlayfs")) unionfs = "DEFAULT" self.varEditor(tmpsys + "etc/casper.conf", { "USERNAME": configutils.getValue(configs[configutils.username]), "USERFULLNAME": configutils.getValue(configs[configutils.userfullname]), "HOST": configutils.getValue(configs[configutils.host]), "BUILD_SYSTEM": buildsys, "FLAVOUR": configutils.getValue(configs[configutils.flavour]), "UNIONFS": unionfs}) logger.logV(self.tn, _("Editing lsb-release")) self.varEditor(tmpsys + "etc/lsb-release", { "DISTRIB_ID": configutils.getValue(configs[configutils.sysname]), "DISTRIB_RELEASE": configutils.getValue(configs[configutils.version]), "DISTRIB_CODENAME": configutils.getValue(configs[configutils.codename]), "DISTRIB_DESCRIPTION": configutils.getValue(configs[configutils.description])})
def runthread(self): # Edit the casper.conf # Strangely enough, casper uses the "quiet" flag if the build system is either Debian or Ubuntu if config.VStatus is False: logger.logI(self.tn, logger.I, _("Editing casper and LSB configuration files")) logger.logV(self.tn, logger.I, _("Editing casper.conf")) buildsys = "Ubuntu" if configutils.parseBoolean( configutils.getValue( configs[configutils.casperquiet])) is False: buildsys = "" unionfs = configutils.getValue(configs[configutils.unionfs]) if unionfs == "overlayfs" and aptutil.compVersions( aptutil.getPkgVersion(aptutil.getPkg("casper", aptcache)), "1.272", aptutil.lt): logger.logI(self.tn, logger.W, _("Using DEFAULT instead of overlayfs")) unionfs = "DEFAULT" self.varEditor( tmpsys + "etc/casper.conf", { "USERNAME": configutils.getValue(configs[configutils.username]), "USERFULLNAME": configutils.getValue(configs[configutils.userfullname]), "HOST": configutils.getValue(configs[configutils.host]), "BUILD_SYSTEM": buildsys, "FLAVOUR": configutils.getValue(configs[configutils.flavour]), "UNIONFS": unionfs }) logger.logI(self.tn, logger.I, _("Applying permissions to casper scripts")) # Make sure the casper scripts work cbs = "/usr/share/initramfs-tools/scripts/casper-bottom/" for i in fsutil.listdir(cbs): fsutil.chmod(i, 0o755, self.tn) logger.logV(self.tn, logger.I, _("Editing lsb-release")) self.varEditor( tmpsys + "etc/lsb-release", { "DISTRIB_ID": configutils.getValue(configs[configutils.sysname]), "DISTRIB_RELEASE": configutils.getValue(configs[configutils.sysversion]), "DISTRIB_CODENAME": configutils.getValue(configs[configutils.codename]), "DISTRIB_DESCRIPTION": configutils.getValue(configs[configutils.description]) })
def run(self): logger.logV(self.tn, logger.I, "Setting up Ubiquity") if os.getenv("KDE_FULL_SESSION") != None: aptutil.instPkg(aptutil.getPkg("ubiquity-frontend-kde", aptcache), self.depcache) aptutil.remPkg(aptutil.getPkg("ubiquity-frontend-gtk", aptcache), self.depcache, True) else: aptutil.remPkg(aptutil.getPkg("ubiquity-frontend-kde", aptcache), self.depcache, True) aptutil.instPkg(aptutil.getPkg("ubiquity-frontend-gtk", aptcache), self.depcache) if configutils.parseBoolean(config[configutils.popcon]): logger.logV(self.tn, logger.I, "Setting up Popularity Contest") aptutil.instPkg(aptutil.getPkg("popularity-contest"), self.depcache) else: aptutil.remPkg(aptutil.getPkg("popularity-contest"), self.depcache, True) aptutil.commitChanges(self.depcache, self.ap, self.ip)
def run(self): if configutils.parseBoolean(configutils.getValue(configs[configutils.enablewubi])) is True: logger.logV(self.tn, _("Generating the windows autorun.inf")) files = open(isotreel + "autorun.inf", "w") files.write("[autorun]\n") files.write("open=wubi.exe\n") files.write("icon=wubi.exe,0\n") files.write("label=Install " + configutils.getValue(configs[configutils.sysname]) + "\n") files.write("\n") files.write("[Content]\n") files.write("MusicFiles=false\n") files.write("PictureFiles=false\n") files.write("VideoFiles=false\n") files.close()
def runthread(self): if configutils.parseBoolean(configutils.getValue(configs[configutils.enablewubi])) is True: logger.logV(self.tn, logger.I, _("Generating the windows autorun.inf")) files = open(isotreel + "autorun.inf", "w") files.write("[autorun]\n") files.write("open=wubi.exe\n") files.write("icon=wubi.exe,0\n") files.write("label=Install " + configutils.getValue(configs[configutils.sysname]) + "\n") files.write("\n") files.write("[Content]\n") files.write("MusicFiles=false\n") files.write("PictureFiles=false\n") files.write("VideoFiles=false\n") files.close()
def runthread(self): # If the user-setup-apply file does not exist, and there is an alternative, we'll copy it over logger.logI(self.tn, logger.I, _("Setting up the installer")) if os.path.isfile("/usr/lib/ubiquity/user-setup/user-setup-apply.orig") and not os.path.isfile( "/usr/lib/ubiquity/user-setup/user-setup-apply" ): shutil.copy2( "/usr/lib/ubiquity/user-setup/user-setup-apply.orig", "/usr/lib/ubiquity/user-setup/user-setup-apply" ) if True or configutils.parseBoolean(configutils.getValue(configs[configutils.aptlistchange])): if not os.path.exists("/usr/share/ubiquity/apt-setup.relinux-backup"): os.rename("/usr/share/ubiquity/apt-setup", "/usr/share/ubiquity/apt-setup.relinux-backup") aptsetup = open("/usr/share/ubiquity/apt-setup", "w") aptsetup.write("#!/bin/sh\n") aptsetup.write("exit\n") aptsetup.close()
def run(self): # If the user-setup-apply file does not exist, and there is an alternative, we'll copy it over logger.logI(self.tn, _("Setting up the installer")) if os.path.isfile("/usr/lib/ubiquity/user-setup/user-setup-apply.orig") and not os.path.isfile("/usr/lib/ubiquity/user-setup/user-setup-apply"): shutil.copy2("/usr/lib/ubiquity/user-setup/user-setup-apply.orig", "/usr/lib/ubiquity/user-setup/user-setup-apply") if configutils.parseBoolean(configutils.getValue(configs[configutils.aptlistchange])) is True: fsutil.makedir(tmpsys + "usr/share/ubiquity/") aptsetup = open(tmpsys + "usr/share/ubiquity/apt-setup", "w") aptsetup.write("#!/bin/sh\n") aptsetup.write("exit\n") aptsetup.close() else: fsutil.makedir(tmpsys + "usr/lib/ubiquity/apt-setup/generators/") cdrom = open(tmpsys + "usr/lib/ubiquity/apt-setup/generators/40cdrom", "w") cdrom.write("#!/bin/sh\n") cdrom.write("exit\n") cdrom.close()
def runthread(self): # If the user-setup-apply file does not exist, and there is an alternative, we'll copy it over logger.logI(self.tn, logger.I, _("Setting up the installer")) if (os.path.isfile( "/usr/lib/ubiquity/user-setup/user-setup-apply.orig") and not os.path.isfile( "/usr/lib/ubiquity/user-setup/user-setup-apply")): shutil.copy2("/usr/lib/ubiquity/user-setup/user-setup-apply.orig", "/usr/lib/ubiquity/user-setup/user-setup-apply") if (True or configutils.parseBoolean( configutils.getValue(configs[configutils.aptlistchange]))): if not os.path.exists( "/usr/share/ubiquity/apt-setup.relinux-backup"): os.rename("/usr/share/ubiquity/apt-setup", "/usr/share/ubiquity/apt-setup.relinux-backup") aptsetup = open("/usr/share/ubiquity/apt-setup", "w") aptsetup.write("#!/bin/sh\n") aptsetup.write("exit\n") aptsetup.close()
def runthread(self): # Edit the casper.conf # Strangely enough, casper uses the "quiet" flag if the build system is either Debian or Ubuntu if config.VStatus is False: logger.logI(self.tn, logger.I, _("Editing casper and LSB configuration files")) logger.logV(self.tn, logger.I, _("Editing casper.conf")) buildsys = "Ubuntu" if configutils.parseBoolean(configutils.getValue(configs[configutils.casperquiet])) is False: buildsys = "" unionfs = configutils.getValue(configs[configutils.unionfs]) if unionfs == "overlayfs" and aptutil.compVersions( aptutil.getPkgVersion(aptutil.getPkg("casper", aptcache)), "1.272", aptutil.lt ): logger.logI(self.tn, logger.W, _("Using DEFAULT instead of overlayfs")) unionfs = "DEFAULT" self.varEditor( tmpsys + "etc/casper.conf", { "USERNAME": configutils.getValue(configs[configutils.username]), "USERFULLNAME": configutils.getValue(configs[configutils.userfullname]), "HOST": configutils.getValue(configs[configutils.host]), "BUILD_SYSTEM": buildsys, "FLAVOUR": configutils.getValue(configs[configutils.flavour]), "UNIONFS": unionfs, }, ) logger.logI(self.tn, logger.I, _("Applying permissions to casper scripts")) # Make sure the casper scripts work cbs = "/usr/share/initramfs-tools/scripts/casper-bottom/" for i in fsutil.listdir(cbs): fsutil.chmod(i, 0o755, self.tn) logger.logV(self.tn, logger.I, _("Editing lsb-release")) self.varEditor( tmpsys + "etc/lsb-release", { "DISTRIB_ID": configutils.getValue(configs[configutils.sysname]), "DISTRIB_RELEASE": configutils.getValue(configs[configutils.sysversion]), "DISTRIB_CODENAME": configutils.getValue(configs[configutils.codename]), "DISTRIB_DESCRIPTION": configutils.getValue(configs[configutils.description]), }, )
def fillConfiguration(self, configs, widget): # TODO: Clean this mess, or at least comment it l = chr(108) v = chr(118) for i in configs.keys(): # If the section is not in the notebook, add it if not i in self.configTab.notebook1.__dict__: self.configTab.notebook1.__dict__[i] = QtGui.QWidget() self.configTab.notebook1.__dict__[ i].vlayout = QtGui.QVBoxLayout( self.configTab.notebook1.__dict__[i]) self.configTab.notebook1.__dict__[i].nbook = QtGui.QTabWidget( self.configTab.notebook1.__dict__[i]) self.configTab.notebook1.__dict__[i].vlayout.addWidget( self.configTab.notebook1.__dict__[i].nbook) self.configTab.notebook1.addTab( self.configTab.notebook1.__dict__[i], i) for x in configs[i].keys(): c = configutils.getValueP(configs[i][x], configutils.category) n = configutils.getValueP(configs[i][x], configutils.name) t = configutils.getValueP(configs[i][x], configutils.types) v_ = configutils.getValue(configs[i][x]) c_ = configutils.getChoices(t) var = (i, x) # If the category is not in the section's notebook, add it if not c in self.configTab.notebook1.__dict__[i].nbook.__dict__: fw = QtGui.QWidget( self.configTab.notebook1.__dict__[i].nbook) vb = QtGui.QVBoxLayout(fw) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c] = QtGui.QScrollArea(fw) vb.addWidget( self.configTab.notebook1.__dict__[i].nbook.__dict__[c]) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].setWidgetResizable(False) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayout = QtGui.QFormLayout() self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayout.setSizeConstraint( QtGui.QLayout.SetFixedSize) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayout.setFieldGrowthPolicy( QtGui.QFormLayout.AllNonFixedFieldsGrow) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayout.setLabelAlignment(QtCore.Qt.AlignLeft) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayoutC = QtGui.QWidget() self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayoutC.setLayout( self.configTab.notebook1.__dict__[i].nbook. __dict__[c].flayout) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].setWidget(self.configTab.notebook1.__dict__[i]. nbook.__dict__[c].flayoutC) self.configTab.notebook1.__dict__[i].nbook.addTab(fw, c) # Add the label self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n] = {} self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][l] = QtGui.QLabel() self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][l].setText(n) # Add the value if t == configutils.yesno: self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v] = ConfigWidget( QtGui.QCheckBox(), var) if configutils.parseBoolean(v_): self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v].widget.setChecked(True) elif c_ is not None and len(c_) > 0: self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v] = ConfigWidget( QtGui.QComboBox(), var) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v].widget.clear() c__ = 0 for y in c_: self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v].widget.addItem(y) if y == v_: self.configTab.notebook1.__dict__[ i].nbook.__dict__[c].__dict__[n][ v].widget.setCurrentIndex(c__) c__ += 1 else: self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v] = ConfigWidget( QtGui.QLineEdit(), var) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v].widget.setText(v_) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].__dict__[n][v].widget.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding)) self.configTab.notebook1.__dict__[i].nbook.__dict__[ c].flayout.addRow( self.configTab.notebook1.__dict__[i].nbook.__dict__[c]. __dict__[n][l], self.configTab.notebook1.__dict__[i]. nbook.__dict__[c].__dict__[n][v].widget)
def fillConfiguration(self, configs): c = 0 for i in configs.keys(): cur = Frame(self.page1) ids = self.page1.add_tab() self.page1.add_page_body(ids, i, cur) #self.page1.add(cur) #self.page1.tab(c, text=i) #curr = Tkinter.Frame(cur.interior) #curr.pack(side="top", fill="both", expand=1) secs = Notebook(cur) secs.pack(side="top", fill="both", expand=1) c1 = 0 subtabs = {} for x in configs[i]: curr = None category = configutils.getValueP(configs[i][x], configutils.category) found = False for y in subtabs.keys(): if y == category: found = True curr = subtabs[category].interior if found is False: ids = secs.add_tab() frame = VerticalScrolledFrame(secs.page(ids), background=bg, borderwidth=0, highlightthickness=0) subtabs[category] = frame secs.add_page_body(ids, category, subtabs[category]) #secs.tab(subtabs[category], text=category) curr = subtabs[category].interior l = Label(curr, text=configutils.getValueP(configs[i][x], configutils.name)) l.grid(row=c1, sticky=Tkinter.W) types = configutils.getValueP(configs[i][x], configutils.types) value = configutils.getValueP(configs[i][x], configutils.value) choices = configutils.getChoices(types) multiple = configutils.getMultipleValues(value) if types == configutils.yesno: #v = Tkinter.IntVar() #r = ttk.Radiobutton(curr, text="Yes", variable=v, value=1) #r.grid(row=c1, column=1) #r2 = ttk.Radiobutton(curr, text="No", variable=v, value=2) #r2.grid(row=c1, column=2) r = YesNo(curr) r.grid(row=c1, column=1) r.set(configutils.parseBoolean(value)) elif choices is not None and len(choices) > 0: cb = Choice(curr, choices) cb.grid(row=c1, column=1) cb.cb.set(value) elif types == configutils.filename: e = FileSelector(curr) e.grid(row=c1, column=1) e.entry.delete(0, "end") e.entry.insert(0, value) elif types == configutils.multiple: e = Multiple(curr) e.grid(row=c1, column=1) e.set(multiple) else: e = Entry(curr) e.grid(row=c1, column=1) e.delete(0, "end") e.insert(0, value) c1 = c1 + 1 c = c + 1
def fillConfiguration(self, configs, widget): # TODO: Clean this mess, or at least comment it l = chr(108) v = chr(118) for i in configs.keys(): # If the section is not in the notebook, add it if not i in self.configTab.notebook1.__dict__: self.configTab.notebook1.__dict__[i] = QtGui.QWidget() self.configTab.notebook1.__dict__[i].vlayout = QtGui.QVBoxLayout( self.configTab.notebook1.__dict__[i]) self.configTab.notebook1.__dict__[i].nbook = QtGui.QTabWidget( self.configTab.notebook1.__dict__[i]) self.configTab.notebook1.__dict__[i].vlayout.addWidget( self.configTab.notebook1.__dict__[i].nbook) self.configTab.notebook1.addTab(self.configTab.notebook1.__dict__[i], i) for x in configs[i].keys(): c = configutils.getValueP(configs[i][x], configutils.category) n = configutils.getValueP(configs[i][x], configutils.name) t = configutils.getValueP(configs[i][x], configutils.types) v_ = configutils.getValue(configs[i][x]) c_ = configutils.getChoices(t) var = (i, x) # If the category is not in the section's notebook, add it if not c in self.configTab.notebook1.__dict__[i].nbook.__dict__: fw = QtGui.QWidget(self.configTab.notebook1.__dict__[i].nbook) vb = QtGui.QVBoxLayout(fw) self.configTab.notebook1.__dict__[i].nbook.__dict__[c] = QtGui.QScrollArea(fw) vb.addWidget(self.configTab.notebook1.__dict__[i].nbook.__dict__[c]) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].setWidgetResizable(False) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout = QtGui.QFormLayout() self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout.setSizeConstraint( QtGui.QLayout.SetFixedSize) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout.setFieldGrowthPolicy( QtGui.QFormLayout.AllNonFixedFieldsGrow) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout.setLabelAlignment( QtCore.Qt.AlignLeft) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayoutC = QtGui.QWidget() self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayoutC.setLayout( self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].setWidget( self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayoutC) self.configTab.notebook1.__dict__[i].nbook.addTab( fw, c) # Add the label self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n] = {} self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][l] = QtGui.QLabel() self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][l].setText(n) # Add the value if t == configutils.yesno: self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v] = ConfigWidget(QtGui.QCheckBox(), var) if configutils.parseBoolean(v_): self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.setChecked(True) elif c_ is not None and len(c_) > 0: self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v] = ConfigWidget(QtGui.QComboBox(), var) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.clear() c__ = 0 for y in c_: self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.addItem(y) if y == v_: self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.setCurrentIndex(c__) c__ += 1 else: self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v] = ConfigWidget(QtGui.QLineEdit(), var) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.setText(v_) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding)) self.configTab.notebook1.__dict__[i].nbook.__dict__[c].flayout.addRow( self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][l], self.configTab.notebook1.__dict__[i].nbook.__dict__[c].__dict__[n][v].widget)
def fillConfiguration(self, configs): c = 0 for i in configs.keys(): ids = self.page1.add_tab() cur = Frame(self.page1.page(ids)) self.page1.add_page_body(ids, i, cur) #self.page1.add(cur) #self.page1.tab(c, text=i) #curr = Tkinter.Frame(cur.interior) #curr.pack(side="top", fill="both", expand=1) secs = Notebook(cur) secs.pack(side = "top", fill = "both", expand = 1) c1 = 0 subtabs = {} for x in configs[i]: curr = None category = configutils.getValueP(configs[i][x], configutils.category) found = False for y in subtabs.keys(): if y == category: found = True curr = subtabs[category].interior if found is False: ids = secs.add_tab() frame = VerticalScrolledFrame(secs.page(ids), background = bg, borderwidth = 0, highlightthickness = 0) subtabs[category] = frame secs.add_page_body(ids, category, subtabs[category]) #secs.tab(subtabs[category], text=category) curr = subtabs[category].interior l = Label(curr, text = configutils.getValueP(configs[i][x], configutils.name)) l.grid(row = c1, sticky = Tkinter.W) types = configutils.getValueP(configs[i][x], configutils.types) value = configutils.getValueP(configs[i][x], configutils.value) choices = configutils.getChoices(types) multiple = configutils.getMultipleValues(value) if types == configutils.yesno: #v = Tkinter.IntVar() #r = ttk.Radiobutton(curr, text="Yes", variable=v, value=1) #r.grid(row=c1, column=1) #r2 = ttk.Radiobutton(curr, text="No", variable=v, value=2) #r2.grid(row=c1, column=2) r = YesNo(curr, savevar = (i, x), savefunc = self.savefunc) r.grid(row = c1, column = 1) r.set(configutils.parseBoolean(value)) elif choices is not None and len(choices) > 0: cb = Choice(curr, choices, savevar = (i, x), savefunc = self.savefunc) cb.grid(row = c1, column = 1) cb.cb.set(value) elif types == configutils.filename: e = FileSelector(curr, savevar = (i, x), savefunc = self.savefunc) e.grid(row = c1, column = 1) e.set(value) elif types == configutils.multiple: e = Multiple(curr, savevar = (i, x), savefunc = self.savefunc) e.grid(row = c1, column = 1) e.set(multiple) else: e = Entry(curr, savevar = (i, x), savefunc = self.savefunc) e.grid(row = c1, column = 1) e.set(value) c1 = c1 + 1 c = c + 1
def run(self): if configutils.parseBoolean(configutils.getValue(configs[configutils.memtest])): logger.logV(self.tn, _("Copying memtest to the ISO tree")) copyFile("/boot/memtest86+.bin", isotreel + "isolinux/memtest")
def runthread(self): if configutils.parseBoolean(configutils.getValue(configs[configutils.memtest])): logger.logV(self.tn, logger.I, _("Copying memtest to the ISO tree")) copyFile("/boot/memtest86+.bin", isotreel + "isolinux/memtest", self.tn)