forked from lix-project/lix
Fix /dev/ptmx in sandboxes
This was broken since ff0c0b645c
. Since
I can't figure out how to mount a devpts instance in the sandbox,
let's just bind-mount the host devpts.
This commit is contained in:
parent
2f9d60ed7f
commit
ae8884b949
|
@ -2300,6 +2300,8 @@ void DerivationGoal::runChild()
|
||||||
ss.push_back("/dev/tty");
|
ss.push_back("/dev/tty");
|
||||||
ss.push_back("/dev/urandom");
|
ss.push_back("/dev/urandom");
|
||||||
ss.push_back("/dev/zero");
|
ss.push_back("/dev/zero");
|
||||||
|
ss.push_back("/dev/ptmx");
|
||||||
|
ss.push_back("/dev/pts");
|
||||||
createSymlink("/proc/self/fd", chrootRootDir + "/dev/fd");
|
createSymlink("/proc/self/fd", chrootRootDir + "/dev/fd");
|
||||||
createSymlink("/proc/self/fd/0", chrootRootDir + "/dev/stdin");
|
createSymlink("/proc/self/fd/0", chrootRootDir + "/dev/stdin");
|
||||||
createSymlink("/proc/self/fd/1", chrootRootDir + "/dev/stdout");
|
createSymlink("/proc/self/fd/1", chrootRootDir + "/dev/stdout");
|
||||||
|
@ -2350,11 +2352,14 @@ void DerivationGoal::runChild()
|
||||||
fmt("size=%s", settings.get("sandbox-dev-shm-size", std::string("50%"))).c_str()) == -1)
|
fmt("size=%s", settings.get("sandbox-dev-shm-size", std::string("50%"))).c_str()) == -1)
|
||||||
throw SysError("mounting /dev/shm");
|
throw SysError("mounting /dev/shm");
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// FIXME: can't figure out how to do this in a user
|
||||||
|
// namespace.
|
||||||
|
|
||||||
/* Mount a new devpts on /dev/pts. Note that this
|
/* Mount a new devpts on /dev/pts. Note that this
|
||||||
requires the kernel to be compiled with
|
requires the kernel to be compiled with
|
||||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y (which is the case
|
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y (which is the case
|
||||||
if /dev/ptx/ptmx exists). */
|
if /dev/ptx/ptmx exists). */
|
||||||
#if 0
|
|
||||||
if (pathExists("/dev/pts/ptmx") &&
|
if (pathExists("/dev/pts/ptmx") &&
|
||||||
!pathExists(chrootRootDir + "/dev/ptmx")
|
!pathExists(chrootRootDir + "/dev/ptmx")
|
||||||
&& dirsInChroot.find("/dev/pts") == dirsInChroot.end())
|
&& dirsInChroot.find("/dev/pts") == dirsInChroot.end())
|
||||||
|
|
Loading…
Reference in a new issue