rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / tools / networking / boundary / default.nix
blob6a7ddd1d7306bab76a4cc694ee132b0f015a268c
1 { stdenv, lib, fetchzip }:
3 stdenv.mkDerivation rec {
4   pname = "boundary";
5   version = "0.15.4";
7   src =
8     let
9       inherit (stdenv.hostPlatform) system;
10       selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
11       suffix = selectSystem {
12         x86_64-linux = "linux_amd64";
13         aarch64-linux = "linux_arm64";
14         x86_64-darwin = "darwin_amd64";
15         aarch64-darwin = "darwin_arm64";
16       };
17       sha256 = selectSystem {
18         x86_64-linux = "sha256-43Q69Pp5NLB4fITy2X8d0XHp5EX+gFLnwtHOontISoU=";
19         aarch64-linux = "sha256-z87peCBv50eJr/kiFWPZUOeb0WCN4X+0JnxCvn3lCXo=";
20         x86_64-darwin = "sha256-SAhlZNGq5rkNitKVd+EjLOeeTErhWg14tHFG4Bsexv8=";
21         aarch64-darwin = "sha256-2DJgOdgJY6eUR2sqWS47vNjdkQGXOEEsSXhZeUBZxxs=";
22       };
23     in
24     fetchzip {
25       url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
26       inherit sha256;
27     };
29   dontConfigure = true;
30   dontBuild = true;
32   installPhase = ''
33     runHook preInstall
34     install -D boundary $out/bin/boundary
35     runHook postInstall
36   '';
38   doInstallCheck = true;
39   installCheckPhase = ''
40     runHook preInstallCheck
41     $out/bin/boundary --help
42     $out/bin/boundary version
43     runHook postInstallCheck
44   '';
46   dontPatchELF = true;
47   dontPatchShebangs = true;
48   dontStrip = true;
50   passthru.updateScript = ./update.sh;
52   meta = with lib; {
53     homepage = "https://boundaryproject.io/";
54     changelog = "https://github.com/hashicorp/boundary/blob/v${version}/CHANGELOG.md";
55     description = "Enables identity-based access management for dynamic infrastructure";
56     longDescription = ''
57       Boundary provides a secure way to access hosts and critical systems
58       without having to manage credentials or expose your network, and is
59       entirely open source.
61       Boundary is designed to be straightforward to understand, highly scalable,
62       and resilient. It can run in clouds, on-prem, secure enclaves and more,
63       and does not require an agent to be installed on every end host.
64     '';
65     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
66     license = licenses.bsl11;
67     maintainers = with maintainers; [ jk techknowlogick ];
68     platforms = platforms.unix;
69     mainProgram = "boundary";
70   };