This adds a new temp-dir setting for controlling the temporary directory without having to change the TMPDIR env var. This can be used to e.g. use a path on a case-sensitive store on macOS for temporary files without changing the TMPDIR var used by interactive shells or commands invoked with `nix run`. This also stops unsetting `TMPDIR` on darwin when the env var value starts with `/var/folders/`, preferring instead to just do the check when reading `TMPDIR`. This way the inherited `TMPDIR` env var is preserved for child processes (such as interactive shells). As a side effect this changes the behavior of `nix-build -o ''` to act like `nix-build --no-out-link` instead of failing with an error caused by trying to create a symlink at the cwd. Fixes: https://git.lix.systems/lix-project/lix/issues/253 Fixes: https://git.lix.systems/lix-project/lix/issues/112 Change-Id: I9ee826323f2deca62854715a77ca7a373a948a29
638 B
638 B
synopsis, issues, cls, category, credits
| synopsis | issues | cls | category | credits | |||||
|---|---|---|---|---|---|---|---|---|---|
| Add a `temp-dir` setting to set the temporary directory location |
|
|
Improvements | lilyball |
temp-dir can now be set in the Nix
configuration to change the temporary directory. This can be used to relocate all temporary files
to another filesystem without affecting the TMPDIR env var inherited by interactive
nix-shell/nix shell shells or nix run commands.
Also on macOS, the TMPDIR env var is no longer unset for interactive shells when pointing
to a per-session /var/folders/ directory.