Only call grantpt on MacOS systems

The commit 3cc1125595 adds a `grantpt`
call on the builder pseudo terminal fd. This call is actually only
required for MacOS, but it however requires a RW access to /dev/pts
which is only RO bindmounted in the Bazel Linux sandbox. So, Nix can
not be actually run in the Bazel Linux sandbox for unneeded reasons.
This commit is contained in:
Antoine Eiche 2020-04-29 14:39:37 +02:00
parent 06849c3090
commit ca93b26db6

View file

@ -2250,10 +2250,13 @@ void DerivationGoal::startBuilder()
if (chown(slaveName.c_str(), buildUser->getUID(), 0)) if (chown(slaveName.c_str(), buildUser->getUID(), 0))
throw SysError("changing owner of pseudoterminal slave"); throw SysError("changing owner of pseudoterminal slave");
} else { }
#if __APPLE__
else {
if (grantpt(builderOut.readSide.get())) if (grantpt(builderOut.readSide.get()))
throw SysError("granting access to pseudoterminal slave"); throw SysError("granting access to pseudoterminal slave");
} }
#endif
#if 0 #if 0
// Mount the pt in the sandbox so that the "tty" command works. // Mount the pt in the sandbox so that the "tty" command works.