bazel_4: add default PATH for local actions if it is not set.
https://github.com/NixOS/nixpkgs/issues/94222 fixup1
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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 6fff2af..7e2877e 100755
|
||||
--- 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
|
||||
@@ -208,6 +208,11 @@ stdenv.mkDerivation rec {
|
||||
strictActionEnvPatch = defaultShellPath;
|
||||
})
|
||||
|
||||
(substituteAll {
|
||||
src = ./actions_path.patch;
|
||||
actionsPathPatch = defaultShellPath;
|
||||
})
|
||||
|
||||
# bazel reads its system bazelrc in /etc
|
||||
# override this path to a builtin one
|
||||
(substituteAll {
|
||||
|
||||
Reference in New Issue
Block a user