diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix | 40 |
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 |