Exemplo n.º 1
0
    def __init__(self, *args):
        QtGui.QWidget.__init__(self, None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False
Exemplo n.º 2
0
    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix)

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False
Exemplo n.º 3
0
    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        self.timerProgress = QTimer(self)

        QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix)
        QObject.connect(self.timerProgress, SIGNAL("timeout()"),self.slotUpdateprogress)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False
Exemplo n.º 4
0
class Widget(QtGui.QWidget, ScreenWidget):
    title = _('Installing system...')
    desc = _('Installing takes approximately 20 minutes depending on your hardware...')
    icon = "iconInstall"
    help = _('''
<font size="+2">Installation started</font>

<font size="+1">

<p>
Pardus is now being installed on your hard disk. 
</p>

<p>
The duration of this operation depends on the 
capability and power of your system. Meanwhile,
you can enjoy some visual elements showing 
the distinctive properties of Pardus, your 
new operating system.
</p>

<p>
Have fun!
</p>
</font>
''')

    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False

    def shown(self):
        # Disable mouse handler
        ctx.mainScreen.dontAskCmbAgain = True
        ctx.mainScreen.themeShortCut.setEnabled(False)

        # Thread object
        global currentObject
        currentObject = self

        # start installer thread
        ctx.debugger.log("PkgInstaller is creating...")
        self.pkg_installer = PkgInstaller()
        ctx.debugger.log("Calling PkgInstaller.start...")
        self.pkg_installer.start()
        ctx.yali.info.updateAndShow(_("Packages are being installed.."))

        ctx.mainScreen.disableNext()
        ctx.mainScreen.disableBack()

        # start 30 seconds
        self.timer.start(1000 * 30)

    def customEvent(self, qevent):

        # EventPisi
        if qevent.eventType() == EventPisi:
            p, event = qevent.data()

            if event == pisi.ui.installing:
                self.ui.info.setText(_("Installing: <b>%s</b><br>%s") % (p.name, p.summary))
                ctx.debugger.log("Pisi : %s installing" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)
            elif event == pisi.ui.configuring:
                self.ui.info.setText(_("Configuring package: <b>%s</b>") % p.name)
                ctx.debugger.log("Pisi : %s configuring" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)

        # EventSetProgress
        elif qevent.eventType() == EventSetProgress:
            total = qevent.data()
            self.ui.progress.setMaximum(total)

        # EventPackageInstallFinished
        elif qevent.eventType() == EventPackageInstallFinished:
            self.packageInstallFinished()

        # EventError
        elif qevent.eventType() == EventError:
            err = qevent.data()
            self.installError(err)

        # EventRetry
        elif qevent.eventType() == EventRetry:
            package = qevent.data()
            self.timer.stop()
            ctx.yali.retryAnswer = EjectAndRetryDialog(_("Warning"),
                                                       _("Package install failed : <b>%s</b>") % package,
                                                       _("Do you want to retry ?"))

            self.timer.start(1000 * 30)
            ctx.yali.waitCondition.wakeAll()

        # EventAllFinished
        elif qevent.eventType() == EventAllFinished:
            self.finished()

    def slotChangePix(self):
        slide = self.iter_pics.next()
        self.ui.pix.setPixmap(slide["pic"])
        # FIXME: Don't show slide descriptions for now
        #self.ui.desc.setText(slide["desc"])

    def packageInstallFinished(self):

        ctx.yali.fillFstab()

        # Configure Pending...
        # run baselayout's postinstall first

        ctx.yali.info.updateAndShow(_("Creating baselayout for your system!"))
        yali4.postinstall.initbaselayout()

        # postscripts depend on 03locale...
        yali4.localeutils.writeLocaleFromCmdline()

        #Write InitramfsConf
        yali4.postinstall.writeInitramfsConf()

        # run dbus in chroot
        yali4.sysutils.chrootDbus()

        ctx.yali.info.updateMessage(_("Configuring packages.."))

        # start configurator thread
        self.pkg_configurator = PkgConfigurator()
        self.pkg_configurator.start()

    def execute(self):
        # stop slide show
        self.timer.stop()
        return True

    def finished(self):
        if self.hasErrors:
            return
        ctx.yali.info.hide()
        # trigger next screen. will activate execute()
        ctx.mainScreen.slotNext()

    def installError(self, e):
        import yali4
        import yali4.gui.runner

        self.hasErrors = True
        err_str = _('''An error during the installation of packages occured.

This is possibly a broken Pardus CD or CD-ROM drive.

Error:
%s
''') % str(e)

        yali4.gui.runner.showException(yali4.exception_fatal, err_str)
Exemplo n.º 5
0
class Widget(QtGui.QWidget, ScreenWidget):
    title = _('Installing system...')
    desc = _(
        'Installing takes approximately 20 minutes depending on your hardware...'
    )
    icon = "iconInstall"
    help = _('''
<font size="+2">Installation started</font>

<font size="+1">

<p>
Pardus is now being installed on your hard disk. 
</p>

<p>
The duration of this operation depends on the 
capability and power of your system. Meanwhile,
you can enjoy some visual elements showing 
the distinctive properties of Pardus, your 
new operating system.
</p>

<p>
Have fun!
</p>
</font>
''')

    def __init__(self, *args):
        QtGui.QWidget.__init__(self, None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False

    def shown(self):
        # Disable mouse handler
        ctx.mainScreen.dontAskCmbAgain = True
        ctx.mainScreen.themeShortCut.setEnabled(False)

        # Thread object
        global currentObject
        currentObject = self

        # start installer thread
        ctx.debugger.log("PkgInstaller is creating...")
        self.pkg_installer = PkgInstaller()
        ctx.debugger.log("Calling PkgInstaller.start...")
        self.pkg_installer.start()
        ctx.yali.info.updateAndShow(_("Packages are being installed.."))

        ctx.mainScreen.disableNext()
        ctx.mainScreen.disableBack()

        # start 30 seconds
        self.timer.start(1000 * 30)

    def customEvent(self, qevent):

        # EventPisi
        if qevent.eventType() == EventPisi:
            p, event = qevent.data()

            if event == pisi.ui.installing:
                self.ui.info.setText(
                    _("Installing: <b>%s</b><br>%s") % (p.name, p.summary))
                ctx.debugger.log("Pisi : %s installing" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)
            elif event == pisi.ui.configuring:
                self.ui.info.setText(
                    _("Configuring package: <b>%s</b>") % p.name)
                ctx.debugger.log("Pisi : %s configuring" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)

        # EventSetProgress
        elif qevent.eventType() == EventSetProgress:
            total = qevent.data()
            self.ui.progress.setMaximum(total)

        # EventPackageInstallFinished
        elif qevent.eventType() == EventPackageInstallFinished:
            self.packageInstallFinished()

        # EventError
        elif qevent.eventType() == EventError:
            err = qevent.data()
            self.installError(err)

        # EventRetry
        elif qevent.eventType() == EventRetry:
            package = qevent.data()
            self.timer.stop()
            ctx.yali.retryAnswer = EjectAndRetryDialog(
                _("Warning"),
                _("Package install failed : <b>%s</b>") % package,
                _("Do you want to retry ?"))

            self.timer.start(1000 * 30)
            ctx.yali.waitCondition.wakeAll()

        # EventAllFinished
        elif qevent.eventType() == EventAllFinished:
            self.finished()

    def slotChangePix(self):
        slide = self.iter_pics.next()
        self.ui.pix.setPixmap(slide["pic"])
        self.ui.desc.setText(slide["desc"])

    def packageInstallFinished(self):

        ctx.yali.fillFstab()

        # Configure Pending...
        # run baselayout's postinstall first

        ctx.yali.info.updateAndShow(_("Creating baselayout for your system!"))
        yali4.postinstall.initbaselayout()

        # postscripts depend on 03locale...
        yali4.localeutils.writeLocaleFromCmdline()

        #Write InitramfsConf
        yali4.postinstall.writeInitramfsConf()

        # run dbus in chroot
        yali4.sysutils.chrootDbus()

        ctx.yali.info.updateMessage(_("Configuring packages.."))

        # start configurator thread
        self.pkg_configurator = PkgConfigurator()
        self.pkg_configurator.start()

    def execute(self):
        # stop slide show
        self.timer.stop()
        return True

    def finished(self):
        if self.hasErrors:
            return
        ctx.yali.info.hide()
        # trigger next screen. will activate execute()
        ctx.mainScreen.slotNext()

    def installError(self, e):
        import yali4
        import yali4.gui.runner

        self.hasErrors = True
        err_str = _('''An error during the installation of packages occured.

This is possibly a broken Pardus CD or CD-ROM drive.

Error:
%s
''') % str(e)

        yali4.gui.runner.showException(yali4.exception_fatal, err_str)
Exemplo n.º 6
0
class Widget(QtGui.QWidget, ScreenWidget):
    title = _('Installing system..')
    desc = _('Installing approximately 30 minutes depending on hardware..')
    icon = "iconInstall"
    help = _('''
<font size="+2">Installation started</font>

<font size="+1">

<p>
Pardus is now being installed on your hard disk. 
</p>

<p>
The duration of this operation depends on the 
capability and power of your system. Meanwhile,
you can enjoy some visual elements showing 
the distinctive properties of Pardus, your 
new operating system.
</p>

<p>
Have fun!
</p>
</font>
''')

    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix)

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False

    def shown(self):
        # start installer thread
        ctx.debugger.log("PkgInstaller is creating...")
        self.pkg_installer = PkgInstaller(self)
        ctx.debugger.log("Calling PkgInstaller.start...")
        self.pkg_installer.start()

        ctx.mainScreen.disableNext()
        ctx.mainScreen.disableBack()

        # start 30 seconds
        self.timer.start(1000 * 30)

    def customEvent(self, qevent):

        # EventPisi
        if qevent.eventType() == EventPisi:
            p, event = qevent.data()

            if event == pisi.ui.installing:
                self.ui.info.setText(_("Installing: %s<br>%s") % (p.name, p.summary))
                ctx.debugger.log("customEvent :: %s installed" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)
            elif event == pisi.ui.configuring:
                self.ui.info.setText(_("Configuring package: %s") % p.name)
                ctx.debugger.log("customEvent :: %s configured" % p.name)
                self.cur += 1
                self.ui.progress.setValue(self.cur)

        # EventSetProgress
        elif qevent.eventType() == EventSetProgress:
            total = qevent.data()
            self.ui.progress.setMaximum(total)

        # EventPackageInstallFinished
        elif qevent.eventType() == EventPackageInstallFinished:
            self.packageInstallFinished()

        # EventError
        elif qevent.eventType() == EventError:
            err = qevent.data()
            self.installError(err)

        # EventAllFinished
        elif qevent.eventType() == EventAllFinished:
            self.finished()

    def slotChangePix(self):
        self.ui.pix.setPixmap(self.iter_pics.next())

    def packageInstallFinished(self):

        yali4.pisiiface.finalize()
        self.cur = 0

        # fill fstab
        fstab = yali4.fstab.Fstab()
        for req in ctx.partrequests:
            req_type = req.requestType()
            if req_type == request.mountRequestType:
                p = req.partition()
                pt = req.partitionType()

                path = "LABEL=%s" % pt.filesystem.getLabel(p)
                fs = pt.filesystem._name
                mountpoint = pt.mountpoint
                # TODO: consider merging mountoptions in filesystem.py
                opts = ",".join([pt.filesystem.mountOptions(), pt.mountoptions])

                e = yali4.fstab.FstabEntry(path, mountpoint, fs, opts)
                fstab.insert(e)
            elif req_type == request.swapFileRequestType:
                path = "/" + ctx.consts.swap_file_name
                mountpoint = "none"
                fs = "swap"
                opts = "sw"
                e = yali4.fstab.FstabEntry(path, mountpoint, fs, opts)
                fstab.insert(e)

        fstab.close()

        # Configure Pending...

        # run baselayout's postinstall first
        yali4.postinstall.initbaselayout()

        # postscripts depend on 03locale...
        yali4.localeutils.write_locale_from_cmdline()

        # run dbus in chroot
        yali4.sysutils.chroot_dbus() 

        self.ui.info.setText(_("Configuring packages for your system!"))
        # start configurator thread
        self.pkg_configurator = PkgConfigurator(self)
        self.pkg_configurator.start()

    def execute(self):
        # stop slide show
        self.timer.stop()

        return True

    def finished(self):
        if self.hasErrors:
            return

        yali4.pisiiface.finalize()

        # trigger next screen. will activate execute()
        ctx.mainScreen.slotNext()


    def installError(self, e):
        #self.info.setText(str(e))
        import yali4
        import yali4.gui.runner

        self.hasErrors = True
        err_str = _('''An error during the installation of packages occured.

This is possibly a broken Pardus CD or CD-ROM drive.

Error:
%s
''') % str(e)

        yali4.gui.runner.showException(yali4.exception_fatal, err_str)
Exemplo n.º 7
0
class Widget(QtGui.QWidget, ScreenWidget):
    title = _('Installing system...')
    desc = _('Installing takes approximately 20 minutes depending on your hardware...')
    icon = "iconInstall"
    help = _('''
<font size="+2">Installation started</font>

<font size="+1">

<p>
Pardus is now being installed on your hard disk. 
</p>

<p>
The duration of this operation depends on the 
capability and power of your system. Meanwhile,
you can enjoy some visual elements showing 
the distinctive properties of Pardus, your 
new operating system.
</p>

<p>
Have fun!
</p>
</font>
''')

    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        self.timerProgress = QTimer(self)

        QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix)
        QObject.connect(self.timerProgress, SIGNAL("timeout()"),self.slotUpdateprogress)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False

    def shown(self):
        # Disable mouse handler
        ctx.mainScreen.dontAskCmbAgain = True
        ctx.mainScreen.themeShortCut.setEnabled(False)

        # Thread object
        global currentObject
        currentObject = self

        # start installer thread
        ctx.debugger.log("LiveInstaller is creating...")
        self.live_installer = LiveInstaller()
        ctx.debugger.log("Calling LiveInstaller.start...")
        self.live_installer.start()
        ctx.yali.info.updateAndShow(_("Copying files..."))

        ctx.mainScreen.disableNext()
        ctx.mainScreen.disableBack()

        # start 30 seconds
        self.timer.start(1000 * 30)


    def slotUpdateprogress(self):

        current_size= int(yali4.sysutils.execWithCapture("du", ["-sc",consts.target_dir]).split()[-2])
        ctx.debugger.log("Progress: %d / %d" %(current_size, self.total))
        qevent = InstallEvent(QEvent.User, EventCopy)
        qevent.setData(current_size)
        objectSender(qevent)    

        if current_size >= self.total:

            self.timerProgress.stop()


    def customEvent(self, qevent):

        # EventCopy
        if qevent.eventType() == EventCopy:
            progress = qevent.data()
            self.ui.progress.setValue(progress)
            ctx.debugger.log("LiveInstall: Copying files")
            self.ui.info.setText(_("Copying files..."))

        # EventSetProgress
        elif qevent.eventType() == EventSetProgress:
            total = qevent.data()
            self.total = total
            self.ui.progress.setMaximum(total)
            ctx.debugger.log("Progress reporter is running.")
            self.timerProgress.start(1000 * 5)

        # EventPackageInstallFinished
        elif qevent.eventType() == EventPackageInstallFinished:
            self.packageInstallFinished()

        # EventError
        elif qevent.eventType() == EventError:
            err = qevent.data()
            self.installError(err)

        # EventRetry
        elif qevent.eventType() == EventRetry:
            package = qevent.data()
            self.timer.stop()
            ctx.yali.retryAnswer = EjectAndRetryDialog(_("Warning"),
                                                       _("Package install failed : <b>%s</b>") % package,
                                                       _("Do you want to retry ?"))

            self.timer.start(1000 * 30)
            ctx.yali.waitCondition.wakeAll()

        # EventAllFinished
        elif qevent.eventType() == EventAllFinished:
            self.finished()

    def slotChangePix(self):
        slide = self.iter_pics.next()
        self.ui.pix.setPixmap(slide["pic"])
        self.ui.desc.setText(slide["desc"])

    def packageInstallFinished(self):

        ctx.yali.fillFstab()

        # Configure Pending...
        # run baselayout's postinstall first

        ctx.yali.info.updateAndShow(_("Creating baselayout for your system!"))
        yali4.postinstall.initbaselayout()

        # postscripts depend on 03locale...
        yali4.localeutils.writeLocaleFromCmdline()

        #Write InitramfsConf
        yali4.postinstall.writeInitramfsConf()

        # run dbus in chroot
        yali4.sysutils.chrootDbus()

        #Remove Autologin for default Live user pars
        pars=yali4.users.User("pars")
        pars.setAutoLogin(False)

        #Remove autologin as root for virtual terminals
        inittablive = os.path.join(consts.target_dir,"etc/inittab")
        inittab = file(inittablive).read()
        inittab = inittab.replace("--autologin root ","")
        f = file(inittablive,"w")
        f.write(inittab)
        f.close()
    

        ctx.yali.info.updateMessage(_("Configuring packages.."))
        qevent = InstallEvent(QEvent.User, EventAllFinished)
        objectSender(qevent)


    def execute(self):
        # stop slide show
        self.timer.stop()
        return True

    def finished(self):
        if self.hasErrors:
            return
        ctx.yali.info.hide()
        # trigger next screen. will activate execute()
        ctx.mainScreen.slotNext()

    def installError(self, e):
        import yali4
        import yali4.gui.runner

        self.hasErrors = True
        err_str = _('''An error during the installation of packages occured.

This is possibly a broken Pardus CD or CD-ROM drive.

Error:
%s
''') % str(e)

        yali4.gui.runner.showException(yali4.exception_fatal, err_str)
Exemplo n.º 8
0
class Widget(QtGui.QWidget, ScreenWidget):
    title = _('Installing system...')
    desc = _(
        'Installing takes approximately 20 minutes depending on your hardware...'
    )
    icon = "iconInstall"
    help = _('''
<font size="+2">Installation started</font>

<font size="+1">

<p>
Pardus is now being installed on your hard disk. 
</p>

<p>
The duration of this operation depends on the 
capability and power of your system. Meanwhile,
you can enjoy some visual elements showing 
the distinctive properties of Pardus, your 
new operating system.
</p>

<p>
Have fun!
</p>
</font>
''')

    def __init__(self, *args):
        QtGui.QWidget.__init__(self, None)
        self.ui = Ui_InstallWidget()
        self.ui.setupUi(self)

        self.timer = QTimer(self)
        self.timerProgress = QTimer(self)

        QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix)
        QObject.connect(self.timerProgress, SIGNAL("timeout()"),
                        self.slotUpdateprogress)

        if ctx.consts.lang == "tr":
            self.ui.progress.setFormat("%%p")

        self.iter_pics = iter_slide_pics()

        # show first pic
        self.slotChangePix()

        self.total = 0
        self.cur = 0
        self.hasErrors = False

    def shown(self):
        # Disable mouse handler
        ctx.mainScreen.dontAskCmbAgain = True
        ctx.mainScreen.themeShortCut.setEnabled(False)

        # Thread object
        global currentObject
        currentObject = self

        # start installer thread
        ctx.debugger.log("LiveInstaller is creating...")
        self.live_installer = LiveInstaller()
        ctx.debugger.log("Calling LiveInstaller.start...")
        self.live_installer.start()
        ctx.yali.info.updateAndShow(_("Copying files..."))

        ctx.mainScreen.disableNext()
        ctx.mainScreen.disableBack()

        # start 30 seconds
        self.timer.start(1000 * 30)

    def slotUpdateprogress(self):

        current_size = int(
            yali4.sysutils.execWithCapture(
                "du", ["-sc", consts.target_dir]).split()[-2])
        ctx.debugger.log("Progress: %d / %d" % (current_size, self.total))
        qevent = InstallEvent(QEvent.User, EventCopy)
        qevent.setData(current_size)
        objectSender(qevent)

        if current_size >= self.total:

            self.timerProgress.stop()

    def customEvent(self, qevent):

        # EventCopy
        if qevent.eventType() == EventCopy:
            progress = qevent.data()
            self.ui.progress.setValue(progress)
            ctx.debugger.log("LiveInstall: Copying files")
            self.ui.info.setText(_("Copying files..."))

        # EventSetProgress
        elif qevent.eventType() == EventSetProgress:
            total = qevent.data()
            self.total = total
            self.ui.progress.setMaximum(total)
            ctx.debugger.log("Progress reporter is running.")
            self.timerProgress.start(1000 * 5)

        # EventPackageInstallFinished
        elif qevent.eventType() == EventPackageInstallFinished:
            self.packageInstallFinished()

        # EventError
        elif qevent.eventType() == EventError:
            err = qevent.data()
            self.installError(err)

        # EventRetry
        elif qevent.eventType() == EventRetry:
            package = qevent.data()
            self.timer.stop()
            ctx.yali.retryAnswer = EjectAndRetryDialog(
                _("Warning"),
                _("Package install failed : <b>%s</b>") % package,
                _("Do you want to retry ?"))

            self.timer.start(1000 * 30)
            ctx.yali.waitCondition.wakeAll()

        # EventAllFinished
        elif qevent.eventType() == EventAllFinished:
            self.finished()

    def slotChangePix(self):
        slide = self.iter_pics.next()
        self.ui.pix.setPixmap(slide["pic"])
        self.ui.desc.setText(slide["desc"])

    def packageInstallFinished(self):

        ctx.yali.fillFstab()

        # Configure Pending...
        # run baselayout's postinstall first

        ctx.yali.info.updateAndShow(_("Creating baselayout for your system!"))
        yali4.postinstall.initbaselayout()

        # postscripts depend on 03locale...
        yali4.localeutils.writeLocaleFromCmdline()

        #Write InitramfsConf
        yali4.postinstall.writeInitramfsConf()

        # run dbus in chroot
        yali4.sysutils.chrootDbus()

        #Remove Autologin for default Live user pars
        pars = yali4.users.User("pars")
        pars.setAutoLogin(False)

        #Remove autologin as root for virtual terminals
        inittablive = os.path.join(consts.target_dir, "etc/inittab")
        inittab = file(inittablive).read()
        inittab = inittab.replace("--autologin root ", "")
        f = file(inittablive, "w")
        f.write(inittab)
        f.close()

        ctx.yali.info.updateMessage(_("Configuring packages.."))
        qevent = InstallEvent(QEvent.User, EventAllFinished)
        objectSender(qevent)

    def execute(self):
        # stop slide show
        self.timer.stop()
        return True

    def finished(self):
        if self.hasErrors:
            return
        ctx.yali.info.hide()
        # trigger next screen. will activate execute()
        ctx.mainScreen.slotNext()

    def installError(self, e):
        import yali4
        import yali4.gui.runner

        self.hasErrors = True
        err_str = _('''An error during the installation of packages occured.

This is possibly a broken Pardus CD or CD-ROM drive.

Error:
%s
''') % str(e)

        yali4.gui.runner.showException(yali4.exception_fatal, err_str)