diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index 74bcf3483b2a..099fd803ee24 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -64,6 +64,13 @@ this version for the entire lifecycle of the 21.11 release. + + + Those making use of buildBazelPackage will + need to regenerate the fetch hashes (preferred), or set + fetchConfigured = false;. + +
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 451d25a6ed98..cd942d2f7309 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -28,4 +28,7 @@ In addition to numerous new and upgraded packages, this release has the followin * PHP 7.3 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 21.11 release. +* Those making use of `buildBazelPackage` will need to regenerate the fetch + hashes (preferred), or set `fetchConfigured = false;`. + ## Other Notable Changes diff --git a/pkgs/applications/virtualization/gvisor/default.nix b/pkgs/applications/virtualization/gvisor/default.nix index e6b83286c00d..4cd043d4eb6d 100644 --- a/pkgs/applications/virtualization/gvisor/default.nix +++ b/pkgs/applications/virtualization/gvisor/default.nix @@ -1,6 +1,8 @@ { lib , buildBazelPackage , fetchFromGitHub +, callPackage +, bash , cacert , git , glibcLocales @@ -9,6 +11,7 @@ , iptables , makeWrapper , procps +, protobuf , python3 }: @@ -16,9 +19,12 @@ let preBuild = '' patchShebangs . + substituteInPlace tools/defs.bzl \ + --replace "#!/bin/bash" "#!${bash}/bin/bash" + # Tell rules_go to use the Go binary found in the PATH sed -E -i \ - -e 's|go_version\s*=\s*"[^"]+",|go_version = "host",|g' \ + -e 's|go_version\s*=\s*"[^"]+"|go_version = "host"|g' \ WORKSPACE # The gazelle Go tooling needs CA certs @@ -31,20 +37,37 @@ let export GOPATH= ''; + # Patch the protoc alias so that it always builds from source. + rulesProto = fetchFromGitHub { + owner = "bazelbuild"; + repo = "rules_proto"; + rev = "f7a30f6f80006b591fa7c437fe5a951eb10bcbcf"; + sha256 = "10bcw0ir0skk7h33lmqm38n9w4nfs24mwajnngkbs6jb5wsvkqv8"; + extraPostFetch = '' + sed -i 's|name = "protoc"|name = "_protoc_original"|' $out/proto/private/BUILD.release + cat <>$out/proto/private/BUILD.release + alias(name = "protoc", actual = "@com_github_protocolbuffers_protobuf//:protoc", visibility = ["//visibility:public"]) + EOF + ''; + }; + in buildBazelPackage rec { name = "gvisor-${version}"; - version = "2019-11-14"; + version = "20210518.0"; src = fetchFromGitHub { owner = "google"; repo = "gvisor"; - rev = "release-20191114.0"; - sha256 = "0kyixjjlws9iz2r2srgpdd4rrq94vpxkmh2rmmzxd9mcqy2i9bg1"; + rev = "release-${version}"; + sha256 = "15a6mlclnyfc9mx3bjksnnf4vla0xh0rv9kxdp34la4gw3c4hksn"; }; nativeBuildInputs = [ git glibcLocales go makeWrapper python3 ]; bazelTarget = "//runsc:runsc"; + bazelFlags = [ + "--override_repository=rules_proto=${rulesProto}" + ]; # gvisor uses the Starlark implementation of rules_cc, not the built-in one, # so we shouldn't delete it from our dependencies. @@ -76,14 +99,14 @@ in buildBazelPackage rec { rm -f "$bazelOut"/java.log "$bazelOut"/java.log.* ''; - sha256 = "0fhmlq0d2317gwhma2mz1anb69j4chybk90j71j88wpgw1hxbk34"; + sha256 = "13pahppm431m198v5bffrzq5iw8m79riplbfqp0afh384ln669hb"; }; buildAttrs = { inherit preBuild; installPhase = '' - install -Dm755 bazel-bin/runsc/*_pure_stripped/runsc $out/bin/runsc + install -Dm755 bazel-out/*/bin/runsc/runsc_/runsc $out/bin/runsc # Needed for the 'runsc do' subcomand wrapProgram $out/bin/runsc \ diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index 988298ac72bf..198b9c3f617f 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -35,7 +35,7 @@ args@{ # required for the build as configured, rather than fetching all the dependencies # which may not work in some situations (e.g. Java code which ends up relying on # Debian-specific /usr/share/java paths, but doesn't in the configured build). -, fetchConfigured ? false +, fetchConfigured ? true # Don’t add Bazel --copt and --linkopt from NIX_CFLAGS_COMPILE / # NIX_LDFLAGS. This is necessary when using a custom toolchain which @@ -126,7 +126,7 @@ in stdenv.mkDerivation (fBuildAttrs // { find $bazelOut/external -maxdepth 1 -type l | while read symlink; do name="$(basename "$symlink")" rm "$symlink" - test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker" + test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker" || true done # Patching symlinks to remove build directory reference diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index 522fd7301271..bbdecc8bdcdf 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -288,9 +288,9 @@ let fetchAttrs = { # cudaSupport causes fetch of ncclArchive, resulting in different hashes sha256 = if cudaSupport then - "1i7z2a7bc2q1vn1h9nx1xc6g1r1cby2xvbcs20fj9h6c2fgaw9j4" + "10m6qj3kchgxfgb6qh59vc51knm9r9pkng8bf90h00dnggvv8234" else - "0s8q5rxq8abr50c5jpwv96ncfc0k8jw7w70ri8viqy031g9v9v45"; + "04a98yrp09nd0p17k0jbzkgjppxs0yma7m5zkfrwgvr4g0w71v68"; }; buildAttrs = { diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix index 657704a653c7..e10a455c0906 100644 --- a/pkgs/development/tools/bazel-watcher/default.nix +++ b/pkgs/development/tools/bazel-watcher/default.nix @@ -56,7 +56,7 @@ buildBazelPackage rec { sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker ''; - sha256 = "0rwwjjj6zaj4hdcbsbp0di53xn6203r2vgpddhdrp8iph9ab60cg"; + sha256 = "1j175z3d4fbi4pl35py7yjq7ywrvwin6id131jv32hx0ck4g1m46"; }; buildAttrs = { diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix index 57c0e22d8aff..d26782560a47 100644 --- a/pkgs/servers/http/envoy/default.nix +++ b/pkgs/servers/http/envoy/default.nix @@ -3,7 +3,9 @@ , fetchFromGitHub , stdenv , cmake +, gn , go +, jdk , ninja , python3 , nixosTests @@ -15,8 +17,8 @@ let # However, the version string is more useful for end-users. # These are contained in a attrset of their own to make it obvious that # people should update both. - version = "1.16.2"; - commit = "e98e41a8e168af7acae8079fc0cd68155f699aa3"; + version = "1.17.3"; + commit = "46bf743b97d0d3f01ff437b2f10cc0bd9cdfe6e4"; }; in buildBazelPackage rec { @@ -26,7 +28,7 @@ buildBazelPackage rec { owner = "envoyproxy"; repo = "envoy"; rev = srcVer.commit; - hash = "sha256-aWVMRKFCZzf9/96NRPCP4jiW38DJhXyi0gEqW7uIpnQ="; + hash = "sha256:09zzr4h3zjsb2rkxrvlazpx0jy33yn9j65ilxiqbvv0ckaralqfc"; extraPostFetch = '' chmod -R +w $out @@ -36,29 +38,29 @@ buildBazelPackage rec { ''; }; - patches = [ - # Quiche needs to be updated to compile under newer GCC. - # This is a manual backport of https://github.com/envoyproxy/envoy/pull/13949. - ./0001-quiche-update-QUICHE-tar-13949.patch - - # upb needs to be updated to compile under newer GCC. - # This is a manual backport of https://github.com/protocolbuffers/upb/commit/9bd23dab4240b015321a53c45b3c9e4847fbf020. - ./0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch - ]; postPatch = '' sed -i 's,#!/usr/bin/env python3,#!${python3}/bin/python,' bazel/foreign_cc/luajit.patch + sed -i '/javabase=/d' .bazelrc + # Patch paths to build tools, and disable gold because it just segfaults. + substituteInPlace bazel/external/wee8.genrule_cmd \ + --replace '"''$$gn"' '"''$$(command -v gn)"' \ + --replace '"''$$ninja"' '"''$$(command -v ninja)"' \ + --replace '"''$$WEE8_BUILD_ARGS"' '"''$$WEE8_BUILD_ARGS use_gold=false"' ''; nativeBuildInputs = [ cmake python3 + gn go + jdk ninja ]; fetchAttrs = { - sha256 = "0q72c2zrl5vc8afkhkwyalb2h0mxn3133d4b9z4gag0p95wbwgc0"; + sha256 = "sha256:1cy2b73x8jzczq9z9c1kl7zrg5iasvsakb50zxn4mswpmajkbj5h"; dontUseCmakeConfigure = true; + dontUseGnConfigure = true; preInstall = '' # Strip out the path to the build location (by deleting the comment line). find $bazelOut/external -name requirements.bzl | while read requirements; do @@ -78,10 +80,14 @@ buildBazelPackage rec { >$bazelOut/external/config_validation_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl >$bazelOut/external/protodoc_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl >$bazelOut/external/thrift_pip3/thrift-0.13.0-cp38-cp38-linux_x86_64.whl + + # Remove Unix timestamps from go cache. + rm -rf $bazelOut/external/bazel_gazelle_go_repository_cache/{gocache,pkg/mod/cache,pkg/sumdb} ''; }; buildAttrs = { dontUseCmakeConfigure = true; + dontUseGnConfigure = true; dontUseNinjaInstall = true; preConfigure = '' sed -i 's,#!/usr/bin/env bash,#!${stdenv.shell},' $bazelOut/external/rules_foreign_cc/tools/build_defs/framework.bzl @@ -98,7 +104,6 @@ buildBazelPackage rec { ''; }; - fetchConfigured = true; removeRulesCC = false; removeLocalConfigCc = true; removeLocal = false; diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix index 0605a12eca47..036e44ca621e 100644 --- a/pkgs/servers/http/pomerium/default.nix +++ b/pkgs/servers/http/pomerium/default.nix @@ -11,15 +11,15 @@ let in buildGoModule rec { pname = "pomerium"; - version = "0.13.3"; + version = "0.14.4"; src = fetchFromGitHub { owner = "pomerium"; repo = "pomerium"; rev = "v${version}"; - hash = "sha256-g0w1aIHvf2rJANvGWHeUxdnyCDsvy/PQ9Kp8nDdT/0w="; + hash = "sha256:097csr8f43cn0iq030ajvvpwnwcfmjxyyk6pcisdy937axlrzska"; }; - vendorSha256 = "sha256-grihU85OcGyf9/KKrv87xZonX5r+Z1oHQTf84Ya61fg="; + vendorSha256 = "sha256:0n45xvwjiqyh41dsm4z1rnkgkycf5wfmacm804hqnd5rz7xk2shf"; subPackages = [ "cmd/pomerium" "cmd/pomerium-cli" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8bf021899917..32e7367bef4a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19102,7 +19102,10 @@ in engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; }; - envoy = callPackage ../servers/http/envoy { }; + envoy = callPackage ../servers/http/envoy { + go = go_1_15; + jdk = openjdk11; + }; etcd = callPackage ../servers/etcd { }; etcd_3_4 = callPackage ../servers/etcd/3.4.nix { }; @@ -24167,7 +24170,7 @@ in gv = callPackage ../applications/misc/gv { }; gvisor = callPackage ../applications/virtualization/gvisor { - go = go_1_14; + go = go_1_16; }; gvisor-containerd-shim = callPackage ../applications/virtualization/gvisor/containerd-shim.nix { };