depot/pkgs/by-name/bo/boundary/package.nix
Luke Granger-Brown 57725ef3ec Squashed 'third_party/nixpkgs/' content from commit 76612b17c0ce
git-subtree-dir: third_party/nixpkgs
git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
2024-11-10 23:59:47 +00:00

79 lines
2.3 KiB
Nix

{
stdenv,
lib,
fetchzip,
}:
stdenv.mkDerivation rec {
pname = "boundary";
version = "0.18.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";
x86_64-darwin = "darwin_amd64";
aarch64-darwin = "darwin_arm64";
};
hash = selectSystem {
x86_64-linux = "sha256-Wp1gPFQkOv+ZCEy0D2Tw9l6aCZekdpkXYcTZNheJHEg=";
aarch64-linux = "sha256-jBYu4m3L+j/coJ4D9cPA8mSBYiLiUyVKp98x6mdrrrk=";
x86_64-darwin = "sha256-OuiF1pgutt69ghlkLkEwkWMIFjvAsY7YUZERHNiToMs=";
aarch64-darwin = "sha256-sYKA02euri/K8FM8GoY7Y/WWLE2nBSoiNoxSdUPunWA=";
};
in
fetchzip {
url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
inherit hash;
stripRoot = false;
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -D boundary $out/bin/boundary
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/boundary --help
$out/bin/boundary version
runHook postInstallCheck
'';
dontPatchELF = true;
dontPatchShebangs = true;
dontStrip = true;
passthru.updateScript = ./update.sh;
meta = with lib; {
homepage = "https://boundaryproject.io/";
changelog = "https://github.com/hashicorp/boundary/blob/v${version}/CHANGELOG.md";
description = "Enables identity-based access management for dynamic infrastructure";
longDescription = ''
Boundary provides a secure way to access hosts and critical systems
without having to manage credentials or expose your network, and is
entirely open source.
Boundary is designed to be straightforward to understand, highly scalable,
and resilient. It can run in clouds, on-prem, secure enclaves and more,
and does not require an agent to be installed on every end host.
'';
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.bsl11;
maintainers = with maintainers; [
jk
techknowlogick
];
platforms = platforms.unix;
mainProgram = "boundary";
};
}