From 36f363b8f0adac2b8339770297ff209539a2f7aa Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 12 Jun 2017 17:43:19 +0200 Subject: [PATCH] On macOS, don't use /var/folders for TMPDIR This broke "nix-store --serve". (cherry picked from commit 25230a17a9d0c22f97ed80b1a8f50566a4ff548d) --- src/libmain/shared.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index a6e8f352a..f91558f50 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -162,6 +162,14 @@ void initNix() if (char *pack = getenv("_NIX_OPTIONS")) settings.unpack(pack); + + /* On macOS, don't use the per-session TMPDIR (as set e.g. by + sshd). This breaks build users because they don't have access + to the TMPDIR, in particular in ‘nix-store --serve’. */ +#if __APPLE__ + if (getuid() == 0 && hasPrefix(getEnv("TMPDIR"), "/var/folders/")) + unsetenv("TMPDIR"); +#endif }