{ lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc, fetchzip }: stdenv.mkDerivation rec { pname = "vault-bin"; version = "1.12.0"; src = let inherit (stdenv.hostPlatform) system; selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}"); suffix = selectSystem { x86_64-linux = "linux_amd64"; aarch64-linux = "linux_arm64"; i686-linux = "linux_386"; x86_64-darwin = "darwin_amd64"; aarch64-darwin = "darwin_arm64"; }; sha256 = selectSystem { x86_64-linux = "sha256-khDTpgezINAIZ8YFhOGoTSe6qzA6bkyhyX25VgcFAhU="; aarch64-linux = "sha256-XOiuH9KmwXz8sR9FzH+wEIg0xzrMAIZaHVHf3TdJp10="; i686-linux = "sha256-jCXQX04/Q1dHCIEcFlq60ICib/kjM8bE8ZKjF+0YPjE="; x86_64-darwin = "sha256-fQaHI0ySer6lRdaEcNl7GN51IP+F5y/FR99Q66LQl3k="; aarch64-darwin = "sha256-ME1u/g3l5Jqwvk9Qw4tTmbIvHOKkPMRayhRgPbZIYnA="; }; in fetchzip { url = "https://releases.hashicorp.com/vault/${version}/vault_${version}_${suffix}.zip"; inherit sha256; }; dontConfigure = true; dontBuild = true; dontStrip = stdenv.isDarwin; installPhase = '' runHook preInstall install -D vault $out/bin/vault runHook postInstall ''; doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck $out/bin/vault --help $out/bin/vault version runHook postInstallCheck ''; dontPatchELF = true; dontPatchShebangs = true; passthru.updateScript = ./update-bin.sh; meta = with lib; { description = "A tool for managing secrets, this binary includes the UI"; homepage = "https://www.vaultproject.io"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.mpl20; maintainers = with maintainers; teams.serokell.members ++ [ offline psyanticy Chili-Man techknowlogick mkaito ]; mainProgram = "vault"; platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]; }; }