summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2001-06-22 01:37:38 +0000
committerMatt Wilson <msw@redhat.com>2001-06-22 01:37:38 +0000
commit2f877812ad4dde15b825bed82c602e800a1d35ef (patch)
treec702b993b07e70bda7ef2ae75aa779d2bfd7bfb3
parentfaec668c85c1c079fa697b5ec5378ad6e4bbf338 (diff)
downloadanaconda-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.py4
-rw-r--r--fsset.py17
-rw-r--r--fstab.py18
-rwxr-xr-xgui.py3
-rw-r--r--installclasses/upgradeclass.py2
-rw-r--r--iw/examine_gui.py50
-rw-r--r--iw/upgrade_swap_gui.py68
-rw-r--r--milo.py2
-rw-r--r--packages.py5
-rw-r--r--partitioning.py65
-rw-r--r--upgrade.py142
-rw-r--r--upgradeclass.py2
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",
diff --git a/fsset.py b/fsset.py
index de51b64be..98127ee95 100644
--- a/fsset.py
+++ b/fsset.py
@@ -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"),
diff --git a/fstab.py b/fstab.py
index 4e192def1..c130c4510 100644
--- a/fstab.py
+++ b/fstab.py
@@ -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
diff --git a/gui.py b/gui.py
index 6cbfb0d61..63da2e568 100755
--- a/gui.py
+++ b/gui.py
@@ -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()
diff --git a/milo.py b/milo.py
index 25b28cc6b..18a308f13 100644
--- a/milo.py
+++ b/milo.py
@@ -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",