summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fsset.py48
-rw-r--r--isys/imount.c2
-rw-r--r--isys/isys.py4
3 files changed, 38 insertions, 16 deletions
diff --git a/fsset.py b/fsset.py
index 8d49de695..4f9a228a3 100644
--- a/fsset.py
+++ b/fsset.py
@@ -287,7 +287,7 @@ class FATFileSystem(FileSystemType):
fileSystemTypeRegister(FATFileSystem())
-class ForeignFileSystem(FileSystemType):
+class ForeignFileSystemType(FileSystemType):
def __init__(self):
FileSystemType.__init__(self)
self.formattable = 0
@@ -297,14 +297,39 @@ class ForeignFileSystem(FileSystemType):
def formatDevice(self, entry, progress, message, chroot='/'):
return
-fileSystemTypeRegister(ForeignFileSystem())
+fileSystemTypeRegister(ForeignFileSystemType())
+
+class PsudoFileSystem(FileSystemType):
+ def __init__(self, name):
+ FileSystemType.__init__(self)
+ self.formattable = 0
+ self.checked = 0
+ self.name = name
+
+ def formatDevice(self, entry, progress, message, chroot='/'):
+ return
+
+ def isSupported(self):
+ return 0
+
+class ProcFileSystem(PsudoFileSystem):
+ def __init__(self):
+ PsudoFileSystem.__init__(self, "proc")
+
+fileSystemTypeRegister(ProcFileSystem())
+
+class DevptsFileSystem(PsudoFileSystem):
+ def __init__(self):
+ PsudoFileSystem.__init__(self, "devpts")
+
+fileSystemTypeRegister(DevptsFileSystem())
class FileSystemSet:
def __init__(self):
- self.entries = []
self.messageWindow = None
self.progressWindow = None
-
+ self.reset()
+
def registerMessageWindow(self, method):
self.messageWindow = method
@@ -313,6 +338,11 @@ class FileSystemSet:
def reset (self):
self.entries = []
+ proc = FileSystemSetEntry(Device(), '/proc', fileSystemTypeGet("proc"))
+ self.add(proc)
+ pts = FileSystemSetEntry(Device(), '/dev/pts',
+ fileSystemTypeGet("devpts"), "gid=5,mode=620")
+ self.add(pts)
def add (self, entry):
self.entries.append(entry)
@@ -456,14 +486,6 @@ class FileSystemSet:
entry.mountpoint, msg))
sys.exit(0)
- # XXX remove special case...
- try:
- os.mkdir (instPath + '/proc')
- except:
- pass
-
- isys.mount('/proc', instPath + '/proc', 'proc')
-
def umountFilesystems(self, instPath, ignoreErrors = 0):
# XXX remove special case
try:
@@ -551,7 +573,7 @@ class Device:
return self.device
def setupDevice (self, chroot='/', devPrefix='/tmp'):
- pass
+ return self.device
def cleanupDevice (self, chroot, devPrefix='/tmp'):
pass
diff --git a/isys/imount.c b/isys/imount.c
index a2c01ad70..5c0cec4ad 100644
--- a/isys/imount.c
+++ b/isys/imount.c
@@ -56,7 +56,7 @@ int doPwMount(char * dev, char * where, char * fs, int rdonly, int istty,
if (mkdirChain(where))
return IMOUNT_ERR_ERRNO;
- if (!isnfs && *dev == '/') {
+ if (!isnfs && (*dev == '/' || !strcmp(dev, "none"))) {
buf = dev;
} else if (!isnfs) {
buf = alloca(200);
diff --git a/isys/isys.py b/isys/isys.py
index 525877da4..5dae4127b 100644
--- a/isys/isys.py
+++ b/isys/isys.py
@@ -108,7 +108,7 @@ def ddfile(file, megs, pw = None):
def mount(device, location, fstype = "ext2", readOnly = 0):
location = os.path.normpath(location)
- if device[0] != "/":
+ if device and device != "none" and device[0] != "/":
devName = "/tmp/%s" % device
makeDevInode(device, devName)
device = devName
@@ -122,7 +122,7 @@ def mount(device, location, fstype = "ext2", readOnly = 0):
if not rc:
mountCount[location] = 1
- if device != "/proc" and device != "/usbdevfs":
+ if device != "none":
os.unlink(device)
return rc