43 lines
2.4 KiB
Diff
43 lines
2.4 KiB
Diff
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
|
index 8284eff943..a820037968 100644
|
|
--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
|
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
|
|
@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
|
|
Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
|
|
ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
|
|
result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
|
|
+
|
|
+ // In case we are running on NixOS.
|
|
+ // If bash is called with an unset PATH on this platform,
|
|
+ // it will set it to /no-such-path and default tools will be missings.
|
|
+ // See, https://github.com/NixOS/nixpkgs/issues/94222
|
|
+ // So we ensure that minimal dependencies are present.
|
|
+ if (!env.containsKey("PATH")){
|
|
+ result.put("PATH", "@actionsPathPatch@");
|
|
+ }
|
|
+
|
|
String p = clientEnv.get("TMPDIR");
|
|
if (Strings.isNullOrEmpty(p)) {
|
|
// Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
|
|
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
|
|
index 8f230b1b1d..2e4c7d26b7 100644
|
|
--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
|
|
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
|
|
@@ -75,6 +75,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
|
|
|
|
ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
|
|
newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
|
|
+
|
|
+ // In case we are running on NixOS.
|
|
+ // If bash is called with an unset PATH on this platform,
|
|
+ // it will set it to /no-such-path and default tools will be missings.
|
|
+ // See, https://github.com/NixOS/nixpkgs/issues/94222
|
|
+ // So we ensure that minimal dependencies are present.
|
|
+ if (!env.containsKey("PATH")){
|
|
+ newEnvBuilder.put("PATH", "@actionsPathPatch@");
|
|
+ }
|
|
+
|
|
String p = clientEnv.get("TMPDIR");
|
|
if (Strings.isNullOrEmpty(p)) {
|
|
// Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
|