diff options
author | Matt Wilson <msw@redhat.com> | 2001-06-22 01:37:38 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 2001-06-22 01:37:38 +0000 |
commit | 2f877812ad4dde15b825bed82c602e800a1d35ef (patch) | |
tree | c702b993b07e70bda7ef2ae75aa779d2bfd7bfb3 | |
parent | faec668c85c1c079fa697b5ec5378ad6e4bbf338 (diff) | |
download | anaconda-2f877812ad4dde15b825bed82c602e800a1d35ef.tar.gz anaconda-2f877812ad4dde15b825bed82c602e800a1d35ef.tar.xz anaconda-2f877812ad4dde15b825bed82c602e800a1d35ef.zip |
first pass at getting things in alignment for gui upgrades. Should only affect upgrades, not installs
-rw-r--r-- | dispatch.py | 4 | ||||
-rw-r--r-- | fsset.py | 17 | ||||
-rw-r--r-- | fstab.py | 18 | ||||
-rwxr-xr-x | gui.py | 3 | ||||
-rw-r--r-- | installclasses/upgradeclass.py | 2 | ||||
-rw-r--r-- | iw/examine_gui.py | 50 | ||||
-rw-r--r-- | iw/upgrade_swap_gui.py | 68 | ||||
-rw-r--r-- | milo.py | 2 | ||||
-rw-r--r-- | packages.py | 5 | ||||
-rw-r--r-- | partitioning.py | 65 | ||||
-rw-r--r-- | upgrade.py | 142 | ||||
-rw-r--r-- | upgradeclass.py | 2 |
12 files changed, 228 insertions, 150 deletions
diff --git a/dispatch.py b/dispatch.py index bdcb64c7b..c1e451bf1 100644 --- a/dispatch.py +++ b/dispatch.py @@ -47,6 +47,9 @@ installSteps = [ ( "reconfigwelcome", () ), ( "reconfigkeyboard", ("id.instLanguage", "id.keyboard" ) ), ( "installtype", ("dispatch", "id", "method", "intf") ), + ( "findinstall", ("dispatch", "intf", "id", "instPath") ), + ( "upgradecontinue", queryUpgradeContinue, ("intf", "dir")), + ( "addswap", ("dispatch", "intf", "id.fsset", "id.diskset", "instPath") ), ( "partition", ("id.fsset", "id.diskset", "id.partrequests", "intf")), ( "partitiondone", partitioningComplete, ("dispatch", "id.bootloader", "id.fsset", "id.diskset" ) ), @@ -58,7 +61,6 @@ installSteps = [ ( "accounts", ("id.rootPassword", "id.accounts", ) ), ( "authentication", ("id.auth", ) ), ( "readcomps", readPackages, ("intf", "method", "id" )), - ( "upgradecontinue", queryUpgradeContinue, ("intf", "dir", "dispatch")), ( "package-selection", ("id.comps", "dispatch") ), ( "indivpackage", ("id.comps", "id.hdList", ) ), ( "handleX11pkgs", handleX11Packages, ("dir", "intf", "dispatch", @@ -84,6 +84,8 @@ class LabelFactory: return mountpoint def reserveLabels(self, labels): + if self.labels == None: + self.labels = {} for device, label in labels.items(): self.labels[label] = 1 @@ -935,6 +937,21 @@ def isValidExt2(device): return 0 +def mountLoopbackRoot(device, skipMount = 0): + isys.mount(device, '/mnt/loophost', fstype = "vfat") + isys.makeDevInode("loop1", '/tmp/' + "loop1") + isys.losetup("/tmp/loop1", "/mnt/loophost/redhat.img") + + if not skipMount: + isys.mount("loop1", '/mnt/sysimage') + +def unmountLoopbackRoot(skipMount = 0): + if not skipMount: + isys.umount('/mnt/sysimage') + isys.makeDevInode("loop1", '/tmp/' + "loop1") + isys.unlosetup("/tmp/loop1") + isys.umount('/mnt/loophost') + def ext2FormatFilesystem(argList, messageFile, windowCreator, mntpoint): if windowCreator: w = windowCreator(_("Formatting"), @@ -188,6 +188,24 @@ class Fstab: isys.mount('/proc', instPath + '/proc', 'proc') + def hasDirtyFilesystems(self): + if self.rootOnLoop(): + (rootDev, rootFs) = self.getRootDevice() + mountLoopbackRoot(rootDev, skipMount = 1) + dirty = isys.ext2IsDirty("loop1") + unmountLoopbackRoot(skipMount = 1) + if dirty: return 1 + + for entry in self.entries: + # XXX - multifsify, virtualize isdirty per fstype + if fsystem != "ext2": continue + if doFormat: continue + + if isys.ext2IsDirty(entry.device.getDevice()): return 1 + + return 0 + + def write(self, prefix): format = fstabFormatString @@ -29,7 +29,7 @@ stepToClass = { "installtype" : ( "installpath_gui", "InstallPathWindow" ), "partitionmethod" : ( "partmethod_gui", "PartitionMethodWindow" ), "partition" : ( "partition_gui", "PartitionWindow" ), - "custom-upgrade" : ( "examine_gui", "UpgradeExamineWindow" ), + "findinstall" : ( "examine_gui", "UpgradeExamineWindow" ), "addswap" : ( "upgrade_swap_gui", "UpgradeSwapWindow" ), "fdisk" : ( "fdisk_gui", "FDiskWindow" ), "format" : ( "format_gui", "FormatWindow" ), @@ -77,7 +77,6 @@ root.set_cursor (cursor) splashwindow = None def display_splash_screen(): - def load_image(file): try: im = GdkImlib.Image("/usr/share/anaconda/pixmaps/" + file) diff --git a/installclasses/upgradeclass.py b/installclasses/upgradeclass.py index d7081dfb4..f8d8d4edd 100644 --- a/installclasses/upgradeclass.py +++ b/installclasses/upgradeclass.py @@ -21,7 +21,7 @@ class InstallClass(BaseInstallClass): "mouse", "welcome", "installtype", - "custom-upgrade", + "findinstall", "addswap", "upgradecontinue", "indivpackage", diff --git a/iw/examine_gui.py b/iw/examine_gui.py index cde0700bb..8268828e1 100644 --- a/iw/examine_gui.py +++ b/iw/examine_gui.py @@ -1,7 +1,10 @@ + + from gtk import * from iw_gui import * from package_gui import * from translate import _, N_ +from upgrade import * class UpgradeExamineWindow (InstallWindow): @@ -13,30 +16,28 @@ class UpgradeExamineWindow (InstallWindow): self.root = newPart def getNext (self): - self.todo.upgradeMountFilesystems (self.root) - -# do this via skiplist, made individialpackageselectionwindow a member -# of upgrade steps. -# -# if self.individualPackages.get_active (): -# # XXX fix me -# from package_gui import IndividualPackageSelectionWindow -# return IndividualPackageSelectionWindow - - if self.individualPackages.get_active (): - self.todo.instClass.removeFromSkipList("indivpackage") - else: - self.todo.instClass.addToSkipList("indivpackage") + upgradeMountFilesystems (self.intf, self.root, self.id.fsset, + self.chroot) + if self.individualPackages.get_active(): + self.dispatch.skipStep("indivpackage", skip = 0) + else: + self.dispatch.skipStep("indivpackage") return None #UpgradeExamineWindow tag = "upgrade" - def getScreen (self): - self.parts = self.todo.upgradeFindRoot () + def getScreen (self, dispatch, intf, id, chroot): + self.dispatch = dispatch + self.intf = intf + self.id = id + self.chroot = chroot + + self.parts = findExistingRoots(intf, id, chroot) box = GtkVBox (FALSE) if not self.parts: - box.pack_start (GtkLabel (_("You don't have any Linux partitions.\n You can't upgrade this sytem!")), + box.pack_start (GtkLabel (_("You don't have any Linux partitions." + "\nYou can't upgrade this sytem!")), FALSE) self.ics.setNextEnabled (FALSE) return box @@ -45,7 +46,8 @@ class UpgradeExamineWindow (InstallWindow): vbox.set_border_width (8) if self.parts and len (self.parts) > 1: - label = GtkLabel (_("Please select the device containing the root filesystem: ")) + label = GtkLabel (_("Please select the device containing the root " + "filesystem: ")) label.set_alignment(0.0, 0.5) box.pack_start(label, FALSE) @@ -72,15 +74,15 @@ class UpgradeExamineWindow (InstallWindow): # if there is only one partition, go on. self.ics.setNextEnabled (TRUE) self.root = self.parts[0] - label = GtkLabel (_("Upgrading the Red Hat Linux installation on partition /dev/%s") % (self.root[0] + "\n\n",)) + label = GtkLabel (_("Upgrading the Red Hat Linux installation " + "on partition /dev/%s") + % (self.root[0] + "\n\n",)) label.set_alignment(0.0, 0.5) vbox.pack_start(label, FALSE) - self.individualPackages = GtkCheckButton (_("Customize packages to be upgraded")) - if self.todo.instClass.skipStep("indivpackage"): - self.individualPackages.set_active (FALSE) - else: - self.individualPackages.set_active (TRUE) + self.individualPackages = GtkCheckButton (_("Customize packages to be " + "upgraded")) + self.individualPackages.set_active (not dispatch.stepInSkipList("indivpackage")) align = GtkAlignment (0.0, 0.5) align.add (self.individualPackages) diff --git a/iw/upgrade_swap_gui.py b/iw/upgrade_swap_gui.py index c5a85d168..95001e062 100644 --- a/iw/upgrade_swap_gui.py +++ b/iw/upgrade_swap_gui.py @@ -1,3 +1,18 @@ +# +# upgrade_swap_gui.py: dialog for adding swap files for 2.4 +# +# Mike Fulbright <msf@redhat.com> +# +# Copyright 2001 Red Hat, Inc. +# +# This software may be freely redistributed under the terms of the GNU +# library public license. +# +# You should have received a copy of the GNU Library Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + from gtk import * from iw_gui import * from translate import _, N_ @@ -11,7 +26,6 @@ from package_gui import queryUpgradeContinue import gui class UpgradeSwapWindow (InstallWindow): - windowTitle = N_("Upgrade Swap Partition") htmlTag = "upswapfile" @@ -70,11 +84,16 @@ class UpgradeSwapWindow (InstallWindow): def clist_cb(self, clist, row, col, data): self.row = row - def getScreen (self): + def getScreen (self, dispatch, intf, fsset, diskset, instPath): self.neededSwap = 0 - rc = upgrade.swapSuggestion(self.todo.instPath, self.todo.fstab) + self.fsset = fsset + self.diskset = diskset + self.dispatch = dispatch + self.instPath = instPath + self.intf = intf + + rc = upgrade.swapSuggestion(self.instPath, self.fsset) if not rc: - self.todo.upgradeFindPackages () return None self.neededSwap = 1 @@ -82,11 +101,13 @@ class UpgradeSwapWindow (InstallWindow): box = GtkVBox (FALSE, 5) box.set_border_width (5) - label = GtkLabel (_("The 2.4 kernel needs significantly more swap than older " - "kernels, as much as twice as much swap space as RAM on the " - "system. You currently have %dMB of swap configured, but " - "you may create additional swap space on one of your " - "file systems now.") % (iutil.swapAmount() / 1024)) + label = GtkLabel (_("The 2.4 kernel needs significantly more " + "swap than older kernels, as much as twice " + "as much swap space as RAM on the system. " + "You currently have %dMB of swap configured, but " + "you may create additional swap space on one of " + "your file systems now.") + % (iutil.swapAmount() / 1024)) label.set_alignment (0.5, 0.0) label.set_usize(400, 80) @@ -96,7 +117,8 @@ class UpgradeSwapWindow (InstallWindow): hs = GtkHSeparator() box.pack_start(hs, FALSE) - self.option1 = GtkRadioButton(None, (_("I want to create a swap file"))) + self.option1 = GtkRadioButton(None, + (_("I want to create a swap file"))) box.pack_start(self.option1, FALSE) (fsList, suggSize, suggMntPoint) = rc @@ -110,7 +132,7 @@ class UpgradeSwapWindow (InstallWindow): a.add(label) self.swapbox.pack_start(a, FALSE) - titles = [(_("Mount Point")), (_("Partition")), (_("Free Space (MB)"))] + titles = ((_("Mount Point")), (_("Partition")), (_("Free Space (MB)"))) self.clist = GtkCList(3, titles) self.clist.connect("select-row", self.clist_cb) a = GtkAlignment(0.5, 0.5) @@ -125,7 +147,9 @@ class UpgradeSwapWindow (InstallWindow): self.clist.select_row(0, 0) - label = GtkLabel (_("It is recommended that your swap file be at least %d MB. Please enter a size for the swap file:") % suggSize) + label = GtkLabel (_("It is recommended that your swap file be at " + "least %d MB. Please enter a size for the swap " + "file:") % suggSize) label.set_usize(400, 40) label.set_line_wrap (TRUE) a = GtkAlignment(0.5, 0.5) @@ -146,7 +170,9 @@ class UpgradeSwapWindow (InstallWindow): self.entry.set_text(str(suggSize)) hbox.pack_start(self.entry, FALSE, TRUE, 10) - self.option2 = GtkRadioButton(self.option1, (_("I don't want to create a swap file"))) + self.option2 = GtkRadioButton(self.option1, + (_("I don't want to create a swap " + "file"))) box.pack_start(self.option2, FALSE, TRUE, 20) self.option1.connect("toggled", self.toggle) @@ -154,24 +180,22 @@ class UpgradeSwapWindow (InstallWindow): def warning(self): - - rc = self.todo.intf.messageWindow(_("Warning"), - _("It is stongly recommended that you create a swap file. " - "Failure to do so could cause the installer to abort " - "abnormally. Are you sure that you wish to continue?"), - type = "yesno").getrc() + rc = self.intf.messageWindow(_("Warning"), + _("It is stongly recommended that you create a swap " + "file. Failure to do so could cause the installer " + "to abort abnormally. Are you sure that you wish " + "to continue?"), type = "yesno").getrc() return rc def swapWrongSize(self): - - rc = self.todo.intf.messageWindow(_("Warning"), + rc = self.intf.messageWindow(_("Warning"), _("The swap file must be between 1 and 2000 MB in size."), type = "okcancel").getrc() return rc def swapTooBig(self): - rc = self.todo.intf.messageWindow(_("Warning"), + rc = self.intf.messageWindow(_("Warning"), _("There is not enough space on the device you " "selected for the swap partition."), type = "okcancel").getrc() @@ -1,4 +1,4 @@ -from lilo import LiloConfiguration +#from lilo import LiloConfiguration import iutil import isys import string diff --git a/packages.py b/packages.py index 98aa2dd14..7cc015284 100644 --- a/packages.py +++ b/packages.py @@ -26,8 +26,8 @@ import dispatch from log import log from flags import flags -def queryUpgradeContinue(intf, dir, dispatch): - if dir == dispatch.DISPATCH_BACK: +def queryUpgradeContinue(intf, dir): + if dir == dispatch.DISPATCH_FORWARD: return rc = intf.messageWindow(_("Proceed with upgrade?"), @@ -39,7 +39,6 @@ def queryUpgradeContinue(intf, dir, dispatch): type = "yesno").getrc() if rc == 1: sys.exit(0) - dispatch.gotoNext() def writeConfiguration(id, instPath): log("Writing main configuration") diff --git a/partitioning.py b/partitioning.py index bd30bc591..253e5ef55 100644 --- a/partitioning.py +++ b/partitioning.py @@ -576,7 +576,7 @@ class DiskSet: labels = {} drives = self.disks.keys() - drives.sort + drives.sort() for drive in drives: disk = self.disks[drive] @@ -592,6 +592,69 @@ class DiskSet: return labels + def findExistingRootPartitions(self): + rootparts = [] + + drives = self.disks.keys() + drives.sort() + + mdList = raid.startAllRaid(drives) + + for dev in mdList: + if not fsset.isValidExt2 (dev): + continue + + try: + isys.mount(dev, '/mnt/sysimage', readOnly = 1) + except SystemError, (errno, msg): + intf.messageWindow(_("Error"), + _("Error mounting filesystem on %s: %s") % (dev, msg)) + continue + if os.access ('/mnt/sysimage/etc/fstab', os.R_OK): + rootparts.append ((dev, "ext2")) + isys.umount('/mnt/sysimage') + + raid.stopAllRaid(mdList) + + drives = self.disks.keys() + drives.sort() + + for drive in drives: + disk = self.disks[drive] + part = disk.next_partition () + while part: + if part.fs_type and (part.fs_type.name == "ext2" + or part.fs_type.name == "ext3"): + node = get_partition_name(part) + try: + isys.mount(dev, '/mnt/sysimage') + except SystemError, (errno, msg): + intf.messageWindow(_("Error"), + _("Error mounting filesystem on " + "%s: %s") % (dev, msg)) + part = disk.next_partition(part) + continue + if os.access ('/mnt/sysimage/etc/fstab', os.R_OK): + rootparts.append ((dev, "ext2")) + isys.umount('/mnt/sysimage') + if part.fs_type and (part.fs_type.name == "DOS"): + try: + isys.mount(dev, '/mnt/sysimage', fstype = "vfat", + readOnly = 1) + except: + log("failed to mount vfat filesystem on %s\n" + % dev) + part = disk.next_partition(part) + continue + + if os.access('/mnt/sysimage/redhat.img', os.R_OK): + rootparts.append((dev, "vfat")) + + isys.umount('/mnt/sysimage') + + part = disk.next_partition(part) + return rootparts + def driveList (self): drives = isys.hardDriveDict().keys() drives.sort (isys.compareDrives) diff --git a/upgrade.py b/upgrade.py index 07c6c8fbd..894b856ce 100644 --- a/upgrade.py +++ b/upgrade.py @@ -4,97 +4,51 @@ import os from translate import _ import raid import iutil -import fstab from log import log import os.path +from flags import flags +from partitioning import * +import fsset -def findExistingRoots (intf, diskset): - rootparts = [] +def findExistingRoots (intf, id, chroot): + if not flags.setupFilesystems: return [ (chroot, 'ext2') ] + + diskset = DiskSet() + diskset.openDevices() + win = intf.waitWindow (_("Searching"), _("Searching for Red Hat Linux installations...")) - drives = theFstab.driveList() - mdList = raid.startAllRaid(drives) - - for dev in mdList: - if fstab.isValidExt2 (dev): - try: - isys.mount(dev, '/mnt/sysimage', readOnly = 1) - except SystemError, (errno, msg): - intf.messageWindow(_("Error"), - _("Error mounting ext2 filesystem on %s: %s") % (dev, msg)) - continue - if os.access ('/mnt/sysimage/etc/fstab', os.R_OK): - rootparts.append ((dev, "ext2")) - isys.umount('/mnt/sysimage') - - raid.stopAllRaid(mdList) - - for drive in drives: - isys.makeDevInode(drive, '/tmp/' + drive) - - try: - table = _balkan.readTable ('/tmp/' + drive) - except SystemError: - pass - else: - for i in range (len (table)): - (type, sector, size) = table[i] - if size and type == _balkan.EXT2: - # for RAID arrays of format c0d0p1 - if drive [:3] == "rd/" or drive [:4] == "ida/" or drive [:6] == "cciss/": - dev = drive + 'p' + str (i + 1) - else: - dev = drive + str (i + 1) - try: - isys.mount(dev, '/mnt/sysimage') - except SystemError, (errno, msg): - intf.messageWindow(_("Error"), - _("Error mounting ext2 filesystem on %s: %s") % (dev, msg)) - continue - if os.access ('/mnt/sysimage/etc/fstab', os.R_OK): - rootparts.append ((dev, "ext2")) - isys.umount('/mnt/sysimage') - elif size and type == _balkan.DOS: - dev = drive + str (i + 1) - try: - isys.mount(dev, '/mnt/sysimage', fstype = "vfat", - readOnly = 1) - except SystemError, (errno, msg): - log("failed to mount vfat filesystem on %s\n" - % dev) - continue - - if os.access('/mnt/sysimage/redhat.img', os.R_OK): - rootparts.append((dev, "vfat")) - - isys.umount('/mnt/sysimage') - - os.remove ('/tmp/' + drive) + rootparts = diskset.findExistingRootPartitions() win.pop () + return rootparts -def mountRootPartition(intf, rootInfo, theFstab, instPath, allowDirty = 0, +def mountRootPartition(intf, rootInfo, oldfsset, instPath, allowDirty = 0, raiseErrors = 0): (root, rootFs) = rootInfo - mdList = raid.startAllRaid(theFstab.driveList()) + diskset = DiskSet() + mdList = raid.startAllRaid(diskset.driveList()) if rootFs == "vfat": - fstab.mountLoopbackRoot(root) + fsset.mountLoopbackRoot(root) else: isys.mount(root, '/mnt/sysimage') - fstab.readFstab(instPath + '/etc/fstab', theFstab) + oldfsset.reset() + newfsset = fsset.readFstab(instPath + '/etc/fstab') + for entry in newfsset.entries: + oldfsset.add(entry) if rootFs == "vfat": - fstab.unmountLoopbackRoot() + fsset.unmountLoopbackRoot() else: isys.umount('/mnt/sysimage') raid.stopAllRaid(mdList) - if not allowDirty and theFstab.hasDirtyFilesystems(): + if not allowDirty and oldfsset.hasDirtyFilesystems(): import sys intf.messageWindow(_("Dirty Filesystems"), _("One or more of the filesystems for your Linux system " @@ -103,10 +57,11 @@ def mountRootPartition(intf, rootInfo, theFstab, instPath, allowDirty = 0, "shut down cleanly to upgrade.")) sys.exit(0) - theFstab.mountFilesystems (instPath, raiseErrors = raiseErrors) + if flags.setupFilesystems: + oldfsset.mountFilesystems (instPath) # returns None if no more swap is needed -def swapSuggestion(instPath, fstab): +def swapSuggestion(instPath, fsset): # mem is in kb -- round it up to the nearest 4Mb mem = iutil.memInstalled(corrected = 0) rem = mem % 16384 @@ -125,21 +80,24 @@ def swapSuggestion(instPath, fstab): fsList = [] - if fstab.rootOnLoop(): + if fsset.rootOnLoop(): space = isys.pathSpaceAvailable("/mnt/loophost") - for info in fstab.mountList(): - (mntpoint, partition) = info[0:2] - if mntpoint != '/': continue - info = (mntpoint, partition, space) + for entry in fsset.entries: + if entry.mountpoint != '/': + continue + + info = (entry.mountpoint, entry.device.getDevice(), space) fsList.append(info) else: - for info in fstab.mountList(): - (mntpoint, partition, fsystem) = info[0:3] - if fsystem == "ext2": - space = isys.pathSpaceAvailable(instPath + mntpoint) - info = (mntpoint, partition, space) - fsList.append(info) + for entry in fsset.entries: + if not entry.isMounted(): + continue + if (entry.fsystem.getName() == "ext2" + or entry.fsystem.getName() == "ext3"): + space = isys.pathSpaceAvailable(instPath + entry.mountpoint) + info = (mntpoint, entry.device.getDevice(), space) + fsList.append(info) suggestion = mem * 2 - swap suggSize = 0 @@ -150,7 +108,6 @@ def swapSuggestion(instPath, fstab): return (fsList, suggestion, suggMnt) - def swapfileExists(swapname): try: @@ -195,18 +152,13 @@ def createSwapFile(instPath, theFstab, mntPoint, size): 0, 0)) f.close() -def upgradeFindRoot(self): - if not self.setupFilesystems: return [ (self.instPath, 'ext2') ] - return upgrade.findExistingRoots(self.intf, self.fstab) - -def upgradeMountFilesystems(self, rootInfo): +def upgradeMountFilesystems(intf, rootInfo, oldfsset, instPath): # mount everything and turn on swap - if self.setupFilesystems: + if flags.setupFilesystems: try: - upgrade.mountRootPartition(self.intf,rootInfo, - self.fstab, self.instPath, - allowDirty = 0) + mountRootPartition(intf, rootInfo, oldfsset, instPath, + allowDirty = 0) except SystemError, msg: self.intf.messageWindow(_("Dirty Filesystems"), _("One or more of the filesystems listed in the " @@ -233,10 +185,12 @@ def upgradeMountFilesystems(self, rootInfo): self.intf.messageWindow(("Absolute Symlinks"), message) sys.exit(0) else: - fstab.readFstab(self.instPath + '/etc/fstab', self.fstab) - - # XXX fssetify - self.fstab.turnOnSwap(self.instPath, formatSwap = 0) + newfsset = fsset.readFstab(instPath + '/etc/fstab') + for entry in newfsset.entries: + oldfsset.add(entry) + + if flags.setupFilesystems: + oldfsset.turnOnSwap(self.instPath) def upgradeFindPackages (self): if not self.rebuildTime: diff --git a/upgradeclass.py b/upgradeclass.py index d7081dfb4..f8d8d4edd 100644 --- a/upgradeclass.py +++ b/upgradeclass.py @@ -21,7 +21,7 @@ class InstallClass(BaseInstallClass): "mouse", "welcome", "installtype", - "custom-upgrade", + "findinstall", "addswap", "upgradecontinue", "indivpackage", |