aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix40
1 files changed, 26 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix
index 01619e0cb11..d5cbd642e70 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix
@@ -5,7 +5,7 @@
, lr, xe, zip, unzip, bash, writeCBin, coreutils
, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
# updater
-, python3, writeScript
+, python27, python3, writeScript
# Apple dependencies
, cctools, libcxx, CoreFoundation, CoreServices, Foundation
# Allow to independently override the jdks used to build and run respectively
@@ -22,11 +22,11 @@
}:
let
- version = "0.29.0";
+ version = "1.0.0";
src = fetchurl {
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
- sha256 = "01cb6f2e808bd016cf0e217e12373c9efb808123e58b37885be8364458d3a40a";
+ sha256 = "1b4c9wav5zsldlwzsb064z3m5l4ns8i90bsvd5f215fxd45sy7f6";
};
# Update with `eval $(nix-build -A bazel.updater)`,
@@ -46,15 +46,16 @@ let
srcs.io_bazel_rules_sass
srcs.platforms
(if stdenv.hostPlatform.isDarwin
- then srcs."java_tools_javac11_darwin-v4.0.zip"
- else srcs."java_tools_javac11_linux-v4.0.zip")
- srcs."coverage_output_generator-v1.0.zip"
+ then srcs."java_tools_javac11_darwin-v5.1.zip"
+ else srcs."java_tools_javac11_linux-v5.1.zip")
+ srcs."coverage_output_generator-v2.0.zip"
srcs.build_bazel_rules_nodejs
- srcs."android_tools_pkg-0.8.tar.gz"
- srcs."0.27.1.tar.gz"
+ srcs."android_tools_pkg-0.10.tar.gz"
+ srcs."0.28.3.tar.gz"
srcs.rules_pkg
srcs.rules_cc
srcs.rules_java
+ srcs.rules_proto
]);
distDir = runCommand "bazel-deps" {} ''
@@ -106,7 +107,7 @@ let
remote_java_tools = stdenv.mkDerivation {
name = "remote_java_tools_${system}";
- src = srcDepsSet."java_tools_javac11_${system}-v4.0.zip";
+ src = srcDepsSet."java_tools_javac11_${system}-v5.1.zip";
nativeBuildInputs = [ autoPatchelfHook unzip ];
buildInputs = [ gcc-unwrapped ];
@@ -222,6 +223,7 @@ stdenv.mkDerivation rec {
};
in {
+ shebang = callPackage ./shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
bashTools = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest distDir; };
cpp = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
java = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
@@ -305,7 +307,7 @@ stdenv.mkDerivation rec {
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
# don't use system installed Xcode to run clang, use Nix clang instead
- sed -i -e "s;/usr/bin/xcrun clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $NIX_LDFLAGS -framework CoreFoundation;g" \
+ sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $NIX_LDFLAGS -framework CoreFoundation;g" \
scripts/bootstrap/compile.sh \
src/tools/xcode/realpath/BUILD \
src/tools/xcode/stdredirect/BUILD \
@@ -326,10 +328,12 @@ stdenv.mkDerivation rec {
'';
genericPatches = ''
- # Substitute python's stub shebang to plain python path. (see TODO add pr URL)
- # See also `postFixup` where python is added to $out/nix-support
- substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt \
- --replace "#!/usr/bin/env python" "#!${python3}/bin/python"
+ # Substitute j2objc and objc wrapper's python shebang to plain python path.
+ # These scripts explicitly depend on Python 2.7, hence we use python27.
+ # See also `postFixup` where python27 is added to $out/nix-support
+ substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
# md5sum is part of coreutils
sed -i 's|/sbin/md5|md5sum|' \
@@ -339,8 +343,12 @@ stdenv.mkDerivation rec {
grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
# If you add more replacements here, you must change the grep above!
# Only files containing /bin are taken into account.
+ # We default to python3 where possible. See also `postFixup` where
+ # python3 is added to $out/nix-support
substituteInPlace "$path" \
--replace /bin/bash ${customBash}/bin/bash \
+ --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+ --replace "/usr/bin/env python" ${python3}/bin/python \
--replace /usr/bin/env ${coreutils}/bin/env \
--replace /bin/true ${coreutils}/bin/true
done
@@ -516,6 +524,10 @@ stdenv.mkDerivation rec {
echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
# The templates get tar’d up into a .jar,
# so nix can’t detect python is needed in the runtime closure
+ # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+ # default to using python3. Therefore, both python27 and python3 are
+ # runtime dependencies.
+ echo "${python27}" >> $out/nix-support/depends
echo "${python3}" >> $out/nix-support/depends
'' + lib.optionalString stdenv.isDarwin ''
echo "${cctools}" >> $out/nix-support/depends