diff options
author | Charles Strahan <charles@cstrahan.com> | 2017-09-28 16:49:01 -0400 |
---|---|---|
committer | Charles Strahan <charles@cstrahan.com> | 2017-09-28 16:51:32 -0400 |
commit | b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7 (patch) | |
tree | b793beadbb3b6a5fb3e9e5bd8492814965ca1d5a /pkgs | |
parent | 12ac88af1d5eaea7ad08d9fdd3d293158b692b12 (diff) | |
download | nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar.gz nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar.bz2 nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar.lz nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar.xz nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.tar.zst nixlib-b93ba5dcd7b66ac5efdb8d6b9c255c5e85e58bc7.zip |
envoy: fix by reviving bazel 0.4
/cc #28643
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/tools/build-managers/bazel/0.4.nix | 91 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 8 |
2 files changed, 97 insertions, 2 deletions
diff --git a/pkgs/development/tools/build-managers/bazel/0.4.nix b/pkgs/development/tools/build-managers/bazel/0.4.nix new file mode 100644 index 000000000000..2137c5c1497b --- /dev/null +++ b/pkgs/development/tools/build-managers/bazel/0.4.nix @@ -0,0 +1,91 @@ +{ stdenv, fetchurl, jdk, zip, unzip, bash, makeWrapper, which }: + +stdenv.mkDerivation rec { + + version = "0.4.5"; + + meta = with stdenv.lib; { + homepage = https://github.com/bazelbuild/bazel/; + description = "Build tool that builds code quickly and reliably"; + license = licenses.asl20; + maintainers = with maintainers; [ cstrahan philandstuff ]; + platforms = platforms.linux; + }; + + name = "bazel-${version}"; + + src = fetchurl { + url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip"; + sha256 = "0asmq3kxnl4326zhgh13mvcrc8jvmiswjj4ymrq0943q4vj7nwrb"; + }; + + sourceRoot = "."; + + postPatch = '' + for f in $(grep -l -r '#!/bin/bash'); do + substituteInPlace "$f" --replace '#!/bin/bash' '#!${bash}/bin/bash' + done + for f in \ + src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java \ + src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java \ + src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java \ + src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java \ + ; do + substituteInPlace "$f" --replace /bin/bash ${bash}/bin/bash + done + ''; + + buildInputs = [ + stdenv.cc + stdenv.cc.cc.lib + jdk + zip + unzip + makeWrapper + which + ]; + + # These must be propagated since the dependency is hidden in a compressed + # archive. + + propagatedBuildInputs = [ + bash + ]; + + # If TMPDIR is in the unpack dir we run afoul of blaze's infinite symlink + # detector (see com.google.devtools.build.lib.skyframe.FileFunction). + # Change this to $(mktemp -d) as soon as we figure out why. + + buildPhase = '' + export TMPDIR=/tmp + ./compile.sh + ./output/bazel --output_user_root=/tmp/.bazel build //scripts:bash_completion \ + --spawn_strategy=standalone \ + --genrule_strategy=standalone + cp bazel-bin/scripts/bazel-complete.bash output/ + ''; + + # Build the CPP and Java examples to verify that Bazel works. + + doCheck = true; + checkPhase = '' + export TEST_TMPDIR=$(pwd) + ./output/bazel test --test_output=errors \ + examples/cpp:hello-success_test \ + examples/java-native/src/test/java/com/example/myproject:hello + ''; + + # Bazel expects gcc and java to be in the path. + + installPhase = '' + mkdir -p $out/bin + mv output/bazel $out/bin + wrapProgram "$out/bin/bazel" --prefix PATH : "${stdenv.cc}/bin:${jdk}/bin" + mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions + mv output/bazel-complete.bash $out/share/bash-completion/completions/ + cp scripts/zsh_completion/_bazel $out/share/zsh/site-functions/ + ''; + + dontStrip = true; + dontPatchELF = true; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 45fa62cff876..d56971c5263f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1875,7 +1875,9 @@ with pkgs; entr = callPackage ../tools/misc/entr { }; - envoy = callPackage ../tools/networking/envoy { }; + envoy = callPackage ../tools/networking/envoy { + bazel = bazel_0_4; + }; eot_utilities = callPackage ../tools/misc/eot-utilities { }; @@ -6850,7 +6852,9 @@ with pkgs; bam = callPackage ../development/tools/build-managers/bam {}; - bazel = callPackage ../development/tools/build-managers/bazel { }; + bazel_0_4 = callPackage ../development/tools/build-managers/bazel/0.4.nix { }; + bazel_0_5 = callPackage ../development/tools/build-managers/bazel { }; + bazel = bazel_0_5; bear = callPackage ../development/tools/build-managers/bear { }; |