Automated rollback of commit 0abf5fa2d64c76def5a8fa0f960b73ce0566af4d.

*** Reason for rollback ***

Breaks Bazel CI (https://github.com/bazelbuild/bazel/issues/3501)

*** Original change description ***

Android BusyBox: actions use the default shell env

SpawnActions that run the Android BusyBox now use
the default shell environment.

This has the following benefits:
- Bazel propagates the PATH, TMPDIR envvars to the
  action
- Bazel propagates the --action_env envvars to the
  action

This allows the Bazel client to pass
--action_env=TMP or --action_env=TEMP (whichever
of the envvars is defined) to the server, so the
BusyBox actions will have TMP/TEMP set...

***

PiperOrigin-RevId: 164126020
diff --git a/src/main/cpp/BUILD b/src/main/cpp/BUILD
index 0e51c76..cbd0654 100644
--- a/src/main/cpp/BUILD
+++ b/src/main/cpp/BUILD
@@ -140,7 +140,6 @@
         ":workspace_layout",
         "//src/main/cpp/util",
         "//src/main/cpp/util:blaze_exit_code",
-        "//src/main/cpp/util:errors",
         "//src/main/cpp/util:logging",
     ],
 )
diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc
index edf6b28..b3b4afa 100644
--- a/src/main/cpp/option_processor.cc
+++ b/src/main/cpp/option_processor.cc
@@ -24,8 +24,6 @@
 
 #include "src/main/cpp/blaze_util.h"
 #include "src/main/cpp/blaze_util_platform.h"
-#include "src/main/cpp/util/errors.h"
-#include "src/main/cpp/util/exit_code.h"
 #include "src/main/cpp/util/file.h"
 #include "src/main/cpp/util/logging.h"
 #include "src/main/cpp/util/strings.h"
@@ -453,8 +451,7 @@
     env_str->assign("PATH=" + ConvertPathList(env_str->substr(pos + 1)));
   } else if (name == "TMP") {
     // A valid Windows path "c:/foo" is also a valid Unix path list of
-    // ["c", "/foo"] so we must use ConvertPath here.
-    // See https://github.com/bazelbuild/bazel/issues/1684
+    // ["c", "/foo"] so must use ConvertPath here. See GitHub issue #1684.
     env_str->assign("TMP=" + ConvertPath(env_str->substr(pos + 1)));
   }
 }
@@ -498,24 +495,11 @@
   }
 
   // Pass the client environment to the server.
-#ifdef COMPILER_MSVC
-  string tempEnvvarName;
-#endif
-
   for (char** env = environ; *env != NULL; env++) {
     string env_str(*env);
     if (IsValidEnvName(*env)) {
       PreprocessEnvString(&env_str);
       result.push_back("--client_env=" + env_str);
-#ifdef COMPILER_MSVC
-      if (tempEnvvarName.empty()) {
-        if (env_str.find("TMP=") == 0) {
-          tempEnvvarName = "TMP";
-        } else if (env_str.find("TEMP=") == 0) {
-          tempEnvvarName = "TEMP";
-        }
-      }
-#endif
     }
   }
   result.push_back("--client_cwd=" + blaze::ConvertPath(cwd));
@@ -523,35 +507,6 @@
   if (IsEmacsTerminal()) {
     result.push_back("--emacs");
   }
-
-#ifdef COMPILER_MSVC
-  if (tempEnvvarName.empty()) {
-    blaze_util::die(
-        blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR,
-        "ERROR: Neither %%TMP%% nor %%TEMP%% environment variable is defined");
-  }
-
-  // Propagate $TMP or $TEMP from the client environment (see --client_env
-  // flags) to all actions that use the default shell environment (see
-  // SpawnAction.Builder.useDefaultShellEnvironment).
-  //
-  // This is a short-term solution. Setting TMP or TEMP is essential for every
-  // action trying to create temp files, because on Windows there's no default
-  // "/tmp" path (except for c:\windows, but that's not writable). See
-  // GetTempPath on MSDN:
-  // https://msdn.microsoft.com/en-us/library/windows/desktop/aa364992(v=vs.85).aspx
-  //
-  // The long-term solution will be to update the execution strategies to set a
-  // TMP or TEMP envvar on Windows, for every action, whose value is independent
-  // of the client environment and is also not part of the action's fingerprint.
-  // That will allow cross-user build output sharing if Bazel runs with remote
-  // execution support.
-  //
-  // TODO(laszlocsomor) TODO(dslomov) TODO(ulfjack) : implement the long-term
-  // solution described above.
-  result.push_back("--action_env=" + tempEnvvarName);
-#endif
-
   return result;
 }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
index fc83284..7733909 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
@@ -127,7 +127,6 @@
 
     ruleContext.registerAction(
         this.builder
-            .useDefaultShellEnvironment()
             .addInputs(ImmutableList.<Artifact>copyOf(ins))
             .addOutputs(ImmutableList.<Artifact>copyOf(outs))
             .setCommandLine(CommandLine.of(args))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
index d10c6e6..d5ba575 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
@@ -186,7 +186,6 @@
     ruleContext.registerAction(
         spawnActionBuilder
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.copyOf(outs))
             .setCommandLine(builder.build())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
index c114715..2ff46cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
@@ -145,7 +145,6 @@
     ruleContext.registerAction(
         new SpawnAction.Builder()
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.of(output))
             .setCommandLine(builder.build())
@@ -181,7 +180,6 @@
       ruleContext.registerAction(
           new SpawnAction.Builder()
               .useParameterFile(ParameterFileType.UNQUOTED)
-              .useDefaultShellEnvironment()
               .addTransitiveInputs(inputs.build())
               .addOutputs(ImmutableList.copyOf(outs))
               .setCommandLine(flatFileBuilder.build())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
index 832fc66..0b00e35 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
@@ -186,7 +186,6 @@
     ruleContext.registerAction(
         new SpawnAction.Builder()
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTool(sdk.getAapt2())
             .addInputs(inputs.build())
             .addOutputs(outs.build())
@@ -257,7 +256,6 @@
     ruleContext.registerAction(
         spawnActionBuilder
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTool(sdk.getAapt())
             .addInputs(inputs.build())
             .addOutputs(ImmutableList.copyOf(outs))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
index 63d16ed..fa12915 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
@@ -290,7 +290,6 @@
     ruleContext.registerAction(
         this.spawnActionBuilder
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTool(sdk.getAapt2())
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.<Artifact>copyOf(outs))
@@ -336,7 +335,6 @@
     ruleContext.registerAction(
         this.spawnActionBuilder
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTool(sdk.getAapt())
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.copyOf(outs))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
index bd866ee..f086262 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
@@ -87,10 +87,9 @@
     SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
     ruleContext.registerAction(
         spawnActionBuilder
-            .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.<Artifact>of(rJavaClassJar))
+            .useParameterFile(ParameterFileType.UNQUOTED)
             .setCommandLine(builder.build())
             .setExecutable(executable)
             .setProgressMessage("Generating Library R Classes: %s", ruleContext.getLabel())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
index 24fc285..d9846b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
@@ -132,7 +132,6 @@
 
     ruleContext.registerAction(
         this.spawnActionBuilder
-            .useDefaultShellEnvironment()
             .addTransitiveInputs(inputs.build())
             .addOutputs(outputs.build())
             .setCommandLine(builder.build())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
index d32d70d..49ef647 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
@@ -117,10 +117,10 @@
     SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
     ruleContext.registerAction(
         spawnActionBuilder
-            .useParameterFile(ParameterFileType.SHELL_QUOTED)
-            .useDefaultShellEnvironment()
+            .useParameterFile(ParameterFileType.UNQUOTED)
             .addTransitiveInputs(inputs.build())
             .addOutputs(ImmutableList.<Artifact>copyOf(outs))
+            .useParameterFile(ParameterFileType.SHELL_QUOTED)
             .setCommandLine(builder.build())
             .setExecutable(
                 ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index 33436cd..4fc305f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -225,7 +225,6 @@
 
     ruleContext.registerAction(
         spawnActionBuilder
-            .useDefaultShellEnvironment()
             .addTool(sdk.getAapt())
             .addInputs(inputs.build())
             .addOutputs(outputs.build())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
index b7e0da7..203d61e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
@@ -100,7 +100,6 @@
     ruleContext.registerAction(
         spawnActionBuilder
             .useParameterFile(ParameterFileType.UNQUOTED)
-            .useDefaultShellEnvironment()
             .addInputs(inputs)
             .addOutput(classJarOut)
             .setCommandLine(builder.build())