Change:
<del> { lib, fetchFromGitHub, buildGoModule }: </del> <ins> { lib, fetchFromGitHub, buildGoModule, installShellFiles }: </ins> <del> buildGoModule { pname = "linkerd-unstable"; version = "2020-05-01"; </del> <ins> let generic = { channel, version, sha256, vendorSha256 }: buildGoModule rec { pname = "linkerd-${channel}"; inherit version vendorSha256; </ins> <del> src = fetchFromGitHub { owner = "linkerd"; repo = "linkerd2"; rev = "9e9f3bb1e2aeab8cf20f98f5cad159bbb6f24883"; sha256 = "1pvj31wz1klwhcqga1m8kixdqsxwmppp9ix6r3wpp4dwfig45fm0"; }; </del> <ins> src = fetchFromGitHub { owner = "linkerd"; repo = "linkerd2"; rev = "${channel}-${version}"; inherit sha256; }; subPackages = [ "cli" ]; runVend = true; preBuild = '' env GOFLAGS="" go generate ./pkg/charts/static env GOFLAGS="" go generate ./jaeger/static env GOFLAGS="" go generate ./multicluster/static env GOFLAGS="" go generate ./viz/static ''; buildFlagsArray = [ "-tags=prod" ]; ldflags = [ "-s" "-w" "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}" ]; </ins> <del> vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz"; </del> <ins> nativeBuildInputs = [ installShellFiles ]; </ins> <del> doCheck = false; </del> <ins> postInstall = '' mv $out/bin/cli $out/bin/linkerd installShellCompletion --cmd linkerd  --bash <($out/bin/linkerd completion bash)  --zsh <($out/bin/linkerd completion zsh)  --fish <($out/bin/linkerd completion fish) ''; </ins> <del> subPackages = [ "cli/cmd" ]; </del> <ins> doInstallCheck = true; installCheckPhase = '' $out/bin/linkerd version --client | grep ${src.rev} > /dev/null ''; </ins> <del> meta = with lib; { description = "A service mesh for Kubernetes and beyond"; homepage = "https://linkerd.io/"; license = licenses.asl20; maintainers = with maintainers; [ Gonzih ]; broken = true; </del> <ins> meta = with lib; { description = "A simple Kubernetes service mesh that improves security, observability and reliability"; downloadPage = "https://github.com/linkerd/linkerd2/"; homepage = "https://linkerd.io/"; license = licenses.asl20; maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ]; }; </ins> }; <del> } </del> <ins> in { stable = generic { channel = "stable"; version = "2.10.2"; sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0="; vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s="; }; edge = generic { channel = "edge"; version = "21.6.2"; sha256 = "sha256-kgdKH+cIYRg5A3+wrJJ7jcY6Xl206EwBYa37PT3xn1k"; vendorSha256 = "sha256-QVLg1ZRsNQPM4lERVHpZLbd+I32JZ1pbGNSGIVTbseg="; }; } </ins>

Discussion:
Describe the bug The output of linkerd-unstable contains no binaries Notify maintainers <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --
Sorry for the bare description, wrote that on my phone. It seems that should be replaced with , maybe they've moved where the resides a while ago. When trying that myself, the binary produced is called and does nothing except print and return error code 1.
Have tried this after looking at upstream's build process: It fails with It seems like go is not happy with the vendored version of that package and is trying to resolve it again
This works better (removed in ) Still failing: Trying to compile , which it should not, because I've the prod tag to the build.
Yeah, I got stuck on the same error Will try edge channel.
Same problem with :(
Asked for help on Linkerd Slack: Any advance?
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
Bisect pointed Linkerd to stop working here: How do you think this should be solved?