From 473dab5ec651065ce614ea9668e862dc3fcd8540 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 14 Oct 2023 09:37:07 +0200 Subject: bazel: Patch instances of /bin/bash and /usr/bin/env. * guix-science/packages/bazel.scm (bazel-6)[arguments]: Patch shebangs and generated shell command invocations. --- guix-science/packages/bazel.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/guix-science/packages/bazel.scm b/guix-science/packages/bazel.scm index 65bdd5f..e670f33 100644 --- a/guix-science/packages/bazel.scm +++ b/guix-science/packages/bazel.scm @@ -195,6 +195,30 @@ (("#!/bin/sh") (string-append "#!" (which "sh")))) + ;; Do not force the use of /bin/bash for users of bazel. + ;; Users cannot override this, so we do that here. + (substitute* '("src/main/java/com/google/devtools/build/lib/analysis/BashCommandConstructor.java" + "tools/build_rules/java_rules_skylark.bzl" + "tools/build_rules/test_rules.bzl" + "tools/android/android_sdk_repository_template.bzl") + (("#!/bin/bash") + (string-append "#!" (which "bash")))) + (substitute* '("src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java" + "src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java" + "src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java" + "src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java" + "src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java") + (("\"/bin/bash\"") + (string-append "\"" (which "bash") "\""))) + + ;; Same story for /usr/bin/env... + (substitute* '("src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java" + "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python/PyRuntimeInfoApi.java" + "src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt" + "src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java" + "src/test/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryConfiguredTargetTest.java") + (("/usr/bin/env") (which "env"))) + ;; XXX: We need to have /bin/bash and /usr/bin/env. We ;; can't easily override this, so we run everything ;; inside of proot. -- cgit v1.2.3