diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-07-14 15:50:11 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:01:17 +0000 |
commit | 69a15dd2dc85051ba1436613805f9286850e0596 (patch) | |
tree | d53cec2bb5b8d07df1d1919b212cb2deb3628cd6 /nixpkgs/pkgs/development/tools/build-managers | |
parent | 6941276da135c3eb3b50e0be33d92e7d01ccba9a (diff) | |
parent | beff2f8d75ef2c65017fb25e251337c6bb2e950d (diff) | |
download | nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.gz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.bz2 nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.lz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.xz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.zst nixlib-69a15dd2dc85051ba1436613805f9286850e0596.zip |
Merge commit 'beff2f8d75ef2c65017fb25e251337c6bb2e950d'
v# modified: nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers')
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix | 49 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix | 139 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix | 56 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix | 152 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix | 1 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/src-deps.json | 39 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch | 37 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/mill/default.nix | 4 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/shards/default.nix | 4 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix | 10 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh (renamed from nixpkgs/pkgs/development/tools/build-managers/waf/setup-hook.sh) | 0 |
11 files changed, 443 insertions, 48 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix new file mode 100644 index 000000000000..2b59bd3c4338 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix @@ -0,0 +1,49 @@ +{ + bazel +, bazelTest +, bazel-examples +, gccStdenv +, lib +, runLocal +, runtimeShell +, writeScript +, writeText +}: + +let + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${gccStdenv.cc}/bin/g++' + export LD='${gccStdenv.cc}/bin/ld' + export CC='${gccStdenv.cc}/bin/gcc' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" {} ('' + cp -r ${bazel-examples}/cpp-tutorial/stage3 $out + find $out -type d -exec chmod 755 {} \; + '' + + (lib.optionalString gccStdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '')); + + testBazel = bazelTest { + name = "bazel-test-cpp"; + inherit workspaceDir; + bazelPkg = bazel; + bazelScript = '' + ${bazel}/bin/bazel \ + build --verbose_failures \ + //... + ''; + }; + +in testBazel diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix index f8ed157e693b..bad0023eef32 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/default.nix @@ -1,8 +1,8 @@ -{ stdenv, callPackage, lib, fetchurl, runCommand, runCommandCC, makeWrapper +{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, runCommand, runCommandCC, makeWrapper # this package (through the fixpoint glass) , bazel , lr, xe, zip, unzip, bash, writeCBin, coreutils -, which, python, gawk, gnused, gnutar, gnugrep, gzip, findutils +, which, gawk, gnused, gnutar, gnugrep, gzip, findutils # updater , python3, writeScript # Apple dependencies @@ -14,38 +14,41 @@ # Always assume all markers valid (don't redownload dependencies). # Also, don't clean up environment variables. , enableNixHacks ? false +, gcc-unwrapped +, autoPatchelfHook }: let - version = "0.26.1"; + version = "0.27.0"; src = fetchurl { url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip"; - sha256 = "000ny51hwnjyizm1md4w8q7m832jhf3c767pgbvg6nc7h67lzsf0"; + sha256 = "0yn662dzgfr8ls4avfl12k5sr4f210bab12wml18bh4sjlxhs263"; }; # Update with `eval $(nix-build -A bazel.updater)`, # then add new dependencies from the dict in ./src-deps.json as required. - srcDeps = + srcDeps = lib.attrsets.attrValues srcDepsSet; + srcDepsSet = let srcs = (builtins.fromJSON (builtins.readFile ./src-deps.json)); - toFetchurl = d: fetchurl { + toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl { name = d.name; urls = d.urls; sha256 = d.sha256; - }; - in map toFetchurl [ + }); + in builtins.listToAttrs (map toFetchurl [ srcs.desugar_jdk_libs srcs.io_bazel_skydoc srcs.bazel_skylib srcs.io_bazel_rules_sass (if stdenv.hostPlatform.isDarwin - then srcs.${"java_tools_javac10_darwin-v3.2.zip"} - else srcs.${"java_tools_javac10_linux-v3.2.zip"}) + then srcs.${"java_tools_javac11_darwin-v2.0.zip"} + else srcs.${"java_tools_javac11_linux-v2.0.zip"}) srcs.${"coverage_output_generator-v1.0.zip"} srcs.build_bazel_rules_nodejs - srcs.${"android_tools_pkg-0.2.tar.gz"} - ]; + srcs.${"android_tools_pkg-0.4.tar.gz"} + ]); distDir = runCommand "bazel-deps" {} '' mkdir -p $out @@ -87,6 +90,32 @@ let platforms = lib.platforms.linux ++ lib.platforms.darwin; + # This repository is fetched by bazel at runtime + # however it contains prebuilt java binaries, with wrong interpreter + # and libraries path. + # We prefetch it, patch it, and override it in a global bazelrc. + system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux"; + + remote_java_tools = stdenv.mkDerivation { + name = "remote_java_tools_${system}"; + + src = srcDepsSet."java_tools_javac11_${system}-v2.0.zip"; + + nativeBuildInputs = [ autoPatchelfHook unzip ]; + buildInputs = [ gcc-unwrapped ]; + + sourceRoot = "."; + + buildPhase = '' + mkdir $out; + ''; + + installPhase = '' + cp -Ra * $out/ + touch $out/WORKSPACE + ''; + }; + in stdenv.mkDerivation rec { name = "bazel-${version}"; @@ -103,6 +132,11 @@ stdenv.mkDerivation rec { sourceRoot = "."; patches = [ + # On Darwin, the last argument to gcc is coming up as an empty string. i.e: '' + # This is breaking the build of any C target. This patch removes the last + # argument if it's found to be an empty string. + ./trim-last-argument-to-gcc-if-empty.patch + ./python-stub-path-fix.patch ] ++ lib.optional enableNixHacks ./nix-hacks.patch; @@ -114,10 +148,16 @@ stdenv.mkDerivation rec { # in the nixpkgs checkout root to exercise them locally. passthru.tests = let - runLocal = name: attrs: script: runCommandCC name ({ + runLocal = name: attrs: script: + let + attrs' = removeAttrs attrs [ "buildInputs" ]; + buildInputs = [ python3 ] ++ (attrs.buildInputs or []); + in + runCommandCC name ({ + inherit buildInputs; preferLocalBuild = true; meta.platforms = platforms; - } // attrs) script; + } // attrs') script; # bazel wants to extract itself into $install_dir/install every time it runs, # so let’s do that only once. @@ -137,10 +177,10 @@ stdenv.mkDerivation rec { cp -R ${install_dir} $out ''; - bazelTest = { name, bazelScript, workspaceDir, bazelPkg }: + bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }: let be = extracted bazelPkg; - in runLocal name {} ( + in runLocal name { inherit buildInputs; } ( # skip extraction caching on Darwin, because nobody knows how Darwin works (lib.optionalString (!stdenv.hostPlatform.isDarwin) '' # set up home with pre-unpacked bazel @@ -167,12 +207,26 @@ stdenv.mkDerivation rec { ''); bazelWithNixHacks = bazel.override { enableNixHacks = true; }; + + bazel-examples = fetchFromGitHub { + owner = "bazelbuild"; + repo = "examples"; + rev = "5d8c8961a2516ebf875787df35e98cadd08d43dc"; + sha256 = "03c1bwlq5bs3hg96v4g4pg2vqwhqq6w538h66rcpw02f83yy7fs8"; + }; + in { - pythonBinPathWithoutNixHacks = callPackage ./python-bin-path-test.nix{ inherit runLocal bazelTest; }; - bashToolsWithoutNixHacks = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest; }; + bashTools = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest; }; + cpp = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples; }; + java = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples; }; + protobuf = callPackage ./protobuf-test.nix { inherit runLocal bazelTest; }; + pythonBinPath = callPackage ./python-bin-path-test.nix{ inherit runLocal bazelTest; }; - pythonBinPathWithNixHacks = callPackage ./python-bin-path-test.nix{ inherit runLocal bazelTest; bazel = bazelWithNixHacks; }; bashToolsWithNixHacks = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest; bazel = bazelWithNixHacks; }; + cppWithNixHacks = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples; bazel = bazelWithNixHacks; }; + javaWithNixHacks = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples; bazel = bazelWithNixHacks; }; + protobufWithNixHacks = callPackage ./protobuf-test.nix { inherit runLocal bazelTest; bazel = bazelWithNixHacks; }; + pythonBinPathWithNixHacks = callPackage ./python-bin-path-test.nix{ inherit runLocal bazelTest; bazel = bazelWithNixHacks; }; }; # update the list of workspace dependencies @@ -189,7 +243,6 @@ stdenv.mkDerivation rec { __darwinAllowLocalNetworking = true; # Bazel expects several utils to be available in Bash even without PATH. Hence this hack. - customBash = writeCBin "bash" '' #include <stdio.h> #include <stdlib.h> @@ -258,8 +311,8 @@ stdenv.mkDerivation rec { # 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" "${python}/bin/python" \ - --replace "NIX_STORE_PYTHON_PATH" "${python}/bin/python" \ + --replace "/usr/bin/env python" "${python3}/bin/python" \ + --replace "NIX_STORE_PYTHON_PATH" "${python3}/bin/python" \ # md5sum is part of coreutils sed -i 's|/sbin/md5|md5sum|' \ @@ -275,6 +328,11 @@ stdenv.mkDerivation rec { --replace /bin/true ${coreutils}/bin/true done + # bazel test runner include references to /bin/bash + substituteInPlace tools/build_rules/test_rules.bzl \ + --replace /bin/bash ${customBash}/bin/bash + + # Fixup scripts that generate scripts. Not fixed up by patchShebangs below. substituteInPlace scripts/bootstrap/compile.sh \ --replace /bin/bash ${customBash}/bin/bash @@ -323,19 +381,26 @@ stdenv.mkDerivation rec { mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash patchShebangs . + + # bazel reads its system bazelrc in /etc + # override this path to a builtin one + substituteInPlace \ + src/main/cpp/option_processor.cc \ + --replace BAZEL_SYSTEM_BAZELRC_PATH "\"$out/etc/bazelrc\"" ''; in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches + genericPatches; buildInputs = [ buildJdk + python3 ]; # when a command can’t be found in a bazel build, you might also # need to add it to `defaultShellPath`. nativeBuildInputs = [ zip - python + python3 unzip makeWrapper which @@ -375,20 +440,40 @@ stdenv.mkDerivation rec { wrapProgram "$out/bin/bazel" --add-flags --server_javabase="${runJdk}" + # generates the system bazelrc + # warning: the name of the repository depends on the system, hence + # the reference to .name + mkdir $out/etc + echo "build --override_repository=${remote_java_tools.name}=${remote_java_tools}" > $out/etc/bazelrc + # shell completion files mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/ ''; - # Temporarily disabling for now. A new approach is needed for this derivation as Bazel - # accesses the internet during the tests which fails in a sandbox. - doInstallCheck = false; + doInstallCheck = true; installCheckPhase = '' export TEST_TMPDIR=$(pwd) + tar xf ${srcDepsSet.io_bazel_skydoc} -C $TEST_TMPDIR + mv $(ls | grep skydoc-) io_bazel_skydoc + + tar xf ${srcDepsSet.bazel_skylib} -C $TEST_TMPDIR + mv $(ls | grep bazel-skylib-) bazel_skylib + + tar xf ${srcDepsSet.io_bazel_rules_sass} -C $TEST_TMPDIR + mv $(ls | grep rules_sass-) rules_sass + + unzip ${srcDepsSet.build_bazel_rules_nodejs} -d $TEST_TMPDIR + mv rules_nodejs-0.16.2 build_bazel_rules_nodejs + hello_test () { $out/bin/bazel test \ + --override_repository=io_bazel_skydoc=$TEST_TMPDIR/io_bazel_skydoc \ + --override_repository=bazel_skylib=$TEST_TMPDIR/bazel_skylib \ + --override_repository=io_bazel_rules_sass=$TEST_TMPDIR/rules_sass \ + --override_repository=build_bazel_rules_nodejs=$TEST_TMPDIR/build_bazel_rules_nodejs \ --test_output=errors \ --java_toolchain='${javaToolchain}' \ examples/cpp:hello-success_test \ @@ -424,7 +509,7 @@ 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 - echo "${python}" >> $out/nix-support/depends + echo "${python3}" >> $out/nix-support/depends ''; dontStrip = true; diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix new file mode 100644 index 000000000000..5f780a795e31 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix @@ -0,0 +1,56 @@ +{ + bazel +, bazelTest +, bazel-examples +, gccStdenv +, lib +, openjdk8 +, runLocal +, runtimeShell +, writeScript +, writeText +}: + +let + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${gccStdenv.cc}/bin/g++' + export LD='${gccStdenv.cc}/bin/ld' + export CC='${gccStdenv.cc}/bin/gcc' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" {} ('' + cp -r ${bazel-examples}/java-tutorial $out + find $out -type d -exec chmod 755 {} \; + '' + + (lib.optionalString gccStdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '')); + + testBazel = bazelTest { + name = "bazel-test-cpp"; + inherit workspaceDir; + bazelPkg = bazel; + buildInputs = [ openjdk8 ]; + bazelScript = '' + ${bazel}/bin/bazel \ + run \ + --host_javabase='@local_jdk//:jdk' \ + --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \ + --javabase='@local_jdk//:jdk' \ + --verbose_failures \ + //:ProjectRunner + ''; + }; + +in testBazel + diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix new file mode 100644 index 000000000000..90065be67bc7 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix @@ -0,0 +1,152 @@ +{ + bazel +, bazelTest +, fetchFromGitHub +, fetchurl +, gccStdenv +, lib +, openjdk8 +, runLocal +, runtimeShell +, writeScript +, writeText +}: + +let + com_google_protobuf = fetchFromGitHub { + owner = "protocolbuffers"; + repo = "protobuf"; + rev = "v3.7.0"; + sha256 = "0nlxif4cajqllsj2vdh7zp14ag48fb8lsa64zmq8625q9m2lcmdh"; + }; + + bazel_skylib = fetchFromGitHub { + owner = "bazelbuild"; + repo = "bazel-skylib"; + rev = "f83cb8dd6f5658bc574ccd873e25197055265d1c"; + sha256 = "091fb0ky0956wgv8gghy9ay3yfx6497mb72qvibf0y9dllmxyn9l"; + }; + + net_zlib = fetchurl rec { + url = "https://zlib.net/zlib-1.2.11.tar.gz"; + sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1"; + + passthru.sha256 = sha256; + }; + + WORKSPACE = writeText "WORKSPACE" '' + workspace(name = "our_workspace") + + load("//:proto-support.bzl", "protobuf_deps") + protobuf_deps() + ''; + + protoSupport = writeText "proto-support.bzl" '' + """Load dependencies needed to compile the protobuf library as a 3rd-party consumer.""" + + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + + def protobuf_deps(): + """Loads common dependencies needed to compile the protobuf library.""" + + if "zlib" not in native.existing_rules(): + # proto_library, cc_proto_library, and java_proto_library rules implicitly + # depend on @com_google_protobuf for protoc and proto runtimes. + # This statement defines the @com_google_protobuf repo. + native.local_repository( + name = "com_google_protobuf", + path = "${com_google_protobuf}", + ) + native.local_repository( + name = "bazel_skylib", + path = "${bazel_skylib}", + ) + + native.bind( + name = "zlib", + actual = "@net_zlib//:zlib", + ) + http_archive( + name = "net_zlib", + build_file = "@com_google_protobuf//:third_party/zlib.BUILD", + sha256 = "${net_zlib.sha256}", + strip_prefix = "zlib-1.2.11", + urls = ["file://${net_zlib}"], + ) + ''; + + personProto = writeText "person.proto" '' + syntax = "proto3"; + + package person; + + message Person { + string name = 1; + int32 id = 2; + string email = 3; + } + ''; + + personBUILD = writeText "BUILD" '' + proto_library( + name = "person_proto", + srcs = ["person.proto"], + visibility = ["//visibility:public"], + ) + + java_proto_library( + name = "person_java_proto", + deps = [":person_proto"], + ) + + cc_proto_library( + name = "person_cc_proto", + deps = [":person_proto"], + ) + ''; + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${gccStdenv.cc}/bin/g++' + export LD='${gccStdenv.cc}/bin/ld' + export CC='${gccStdenv.cc}/bin/gcc' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" {} ('' + mkdir $out + cp ${WORKSPACE} $out/WORKSPACE + touch $out/BUILD.bazel + cp ${protoSupport} $out/proto-support.bzl + mkdir $out/person + cp ${personProto} $out/person/person.proto + cp ${personBUILD} $out/person/BUILD.bazel + '' + + (lib.optionalString gccStdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '')); + + testBazel = bazelTest { + name = "bazel-test-protocol-buffers"; + inherit workspaceDir; + bazelPkg = bazel; + buildInputs = [ openjdk8 ]; + bazelScript = '' + ${bazel}/bin/bazel \ + build \ + --host_javabase='@local_jdk//:jdk' \ + --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \ + --javabase='@local_jdk//:jdk' \ + --verbose_failures \ + //... + ''; + }; + +in testBazel diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix index 17d5697a81ea..ff921b395da7 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix @@ -45,7 +45,6 @@ let bazelScript = '' ${bazel}/bin/bazel \ run \ - --host_javabase='@local_jdk//:jdk' \ //python:bin ''; }; diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/src-deps.json b/nixpkgs/pkgs/development/tools/build-managers/bazel/src-deps.json index 752f0a4c9909..a0d07f1a68d4 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/src-deps.json +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/src-deps.json @@ -23,11 +23,11 @@ "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz" ] }, - "android_tools_pkg-0.2.tar.gz": { - "name": "android_tools_pkg-0.2.tar.gz", - "sha256": "04f85f2dd049e87805511e3babc5cea3f5e72332b1627e34f3a5461cc38e815f", + "android_tools_pkg-0.4.tar.gz": { + "name": "android_tools_pkg-0.4.tar.gz", + "sha256": "331e7706f2bcae8a68057d8ddd3e3f1574bca26c67c65802fc4a8ac6164fa912", "urls": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.2.tar.gz" + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4.tar.gz" ] }, "bazel_j2objc": { @@ -134,25 +134,25 @@ "https://github.com/bazelbuild/skydoc/archive/2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz" ] }, - "java_tools_javac10_darwin-v3.2.zip": { - "name": "java_tools_javac10_darwin-v3.2.zip", - "sha256": "1437327179b4284f7082cee0bdc3328f040e62fc5cc59c32f6824b8c520e2b7b", + "java_tools_javac11_darwin-v2.0.zip": { + "name": "java_tools_javac11_darwin-v2.0.zip", + "sha256": "0ceb0c9ff91256fe33508306bc9cd9e188dcca38df78e70839d426bdaef67a38", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/javac10/v3.2/java_tools_javac10_darwin-v3.2.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_darwin-v2.0.zip" ] }, - "java_tools_javac10_linux-v3.2.zip": { - "name": "java_tools_javac10_linux-v3.2.zip", - "sha256": "b93e7c556b01815afb6c248aa73f06b7ec912805bde8898eedac1e20d08f2e67", + "java_tools_javac11_linux-v2.0.zip": { + "name": "java_tools_javac11_linux-v2.0.zip", + "sha256": "074d624fb34441df369afdfd454e75dba821d5d54932fcfee5ba598d17dc1b99", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/javac10/v3.2/java_tools_javac10_linux-v3.2.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_linux-v2.0.zip" ] }, - "java_tools_javac10_windows-v3.2.zip": { - "name": "java_tools_javac10_windows-v3.2.zip", - "sha256": "86d3cc7fa0dc91ccb8f78ae3af8440fe459177e22062043ee4b83d55e6b7dfb0", + "java_tools_javac11_windows-v2.0.zip": { + "name": "java_tools_javac11_windows-v2.0.zip", + "sha256": "2c3fc0ce7d30d60e26f4b8a36e2eadcf9e6a9d5a51b667d3d13b78db53b24251", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/javac10/v3.2/java_tools_javac10_windows-v3.2.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_windows-v2.0.zip" ] }, "java_tools_langtools_javac10": { @@ -162,6 +162,13 @@ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10.zip" ] }, + "java_tools_langtools_javac11": { + "name": "java_tools_langtools_javac11", + "sha256": "128a63f39d3f828a761f6afcfe3c6115279336a72ea77f60d7b3acf1841c9acb", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11.zip" + ] + }, "java_tools_langtools_javac9": { "name": "java_tools_langtools_javac9", "sha256": "3b6bbc47256acf2f61883901e2d4e3f9b292f5fe154a6912b928805de24cb864", diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch b/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch new file mode 100644 index 000000000000..b93b252f3638 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch @@ -0,0 +1,37 @@ +From 177b4720d6fbaa7fdd17e5e11b2c79ac8f246786 Mon Sep 17 00:00:00 2001 +From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com> +Date: Thu, 27 Jun 2019 21:08:51 -0700 +Subject: [PATCH] Trim last argument to gcc if empty, on Darwin + +On Darwin, the last argument to GCC is coming up as an empty string. +This is breaking the build of proto_library targets. However, I was not +able to reproduce with the example cpp project[0]. + +This commit removes the last argument if it's an empty string. This is +not a problem on Linux. + +[0]: https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage3 +--- + tools/cpp/osx_cc_wrapper.sh.tpl | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tools/cpp/osx_cc_wrapper.sh.tpl b/tools/cpp/osx_cc_wrapper.sh.tpl +index 4c85cd9b6b..6c611e3d25 100644 +--- a/tools/cpp/osx_cc_wrapper.sh.tpl ++++ b/tools/cpp/osx_cc_wrapper.sh.tpl +@@ -53,7 +53,11 @@ done + %{env} + + # Call the C++ compiler +-%{cc} "$@" ++if [[ ${*: -1} = "" ]]; then ++ %{cc} "${@:0:$#}" ++else ++ %{cc} "$@" ++fi + + function get_library_path() { + for libdir in ${LIB_DIRS}; do +-- +2.19.2 + diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix index 4206aaa7cfa9..7b472c1c4e3a 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "mill-${version}"; - version = "0.4.0"; + version = "0.4.1"; src = fetchurl { url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}"; - sha256 = "745756498e5a67c55277534c62959c6fdfa382cda2c1a6e34ef0ea6b49c90880"; + sha256 = "17im60ckbd5hbpkl4pb3nr3mg5crln4sphd7d0dgzsrs3p9h194x"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix index 02d5adb0c34d..00345179131a 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "shards-${version}"; - version = "0.8.1"; + version = "0.9.0"; src = fetchFromGitHub { owner = "crystal-lang"; repo = "shards"; rev = "v${version}"; - sha256 = "1cjn2lafr08yiqzlhyqx14jjjxf1y24i2kk046px07gljpnlgqwk"; + sha256 = "19q0xww4v0h5ln9gz8d8zv0c9ig761ik7gw8y31yxynzgzihwpf4"; }; buildInputs = [ crystal libyaml pcre which ]; diff --git a/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix b/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix new file mode 100644 index 000000000000..4184bd5fe8cd --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix @@ -0,0 +1,10 @@ +{ lib, stdenv, pkgs, python, makeSetupHook, waf }: + +makeSetupHook { + deps = [ python ]; + substitutions = { + inherit waf; + crossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) + ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"''; + }; +} ./setup-hook.sh diff --git a/nixpkgs/pkgs/development/tools/build-managers/waf/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh index 3da86d3201f5..3da86d3201f5 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/waf/setup-hook.sh +++ b/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh |