From: Michael Tremer Date: Sat, 13 Mar 2010 09:43:49 +0000 (+0100) Subject: naoki: Fix for devpts on older kernels. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b977ba1f15476eae1fc0a637e415b7d1a045dda2;p=ipfire-3.x.git naoki: Fix for devpts on older kernels. If the kernel is too old, there is no /dev/pts/ptmx node and so we need to create it on our own. --- diff --git a/naoki/chroot.py b/naoki/chroot.py index becf0f460..241948a2c 100644 --- a/naoki/chroot.py +++ b/naoki/chroot.py @@ -188,7 +188,6 @@ class Environment(object): os.symlink("/proc/self/fd/0", self.chrootPath("dev", "stdin")) os.symlink("/proc/self/fd/1", self.chrootPath("dev", "stdout")) os.symlink("/proc/self/fd/2", self.chrootPath("dev", "stderr")) - os.symlink("/dev/pts/ptmx", self.chrootPath("dev", "ptmx")) os.umask(prevMask) # mount/umount @@ -208,6 +207,13 @@ class Environment(object): if devMntCmd not in self.mountCmds: self.mountCmds.append(devMntCmd) + def _checkDev(self): + if os.path.exists(self.chrootPath("dev", "pts", "ptmx")): + os.symlink("/dev/pts/ptmx", self.chrootPath("dev", "ptmx")) + else: + os.mknod(self.chrootPath("dev", "ptmx"), stat.S_IFCHR | 0666, os.makedev(5, 2)) + os.chmod(self.chrootPath("dev", "ptmx"), 666) + def _setupUsers(self): ## XXX Could be done better self.log.debug("Creating users") @@ -231,6 +237,7 @@ class Environment(object): """mount 'normal' fs like /dev/ /proc/ /sys""" for cmd in self.mountCmds: util.do(cmd, shell=True) + self._checkDev() def _umountall(self): """umount all mounted chroot fs."""