lol
1{ stdenv, lib, fetchzip }:
2
3stdenv.mkDerivation rec {
4 pname = "boundary";
5 version = "0.14.2";
6
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-UR34PX3GChOTM4ROcvlghXOv4M8CYgiCvQaR/BRRvzs=";
19 aarch64-linux = "sha256-5q5Zz+/klgwbBvE40aMCw+ulv+g9Yhpcsn31PPCp9S4=";
20 x86_64-darwin = "sha256-NH1/QKqmaKGL35verE2sRXUwXePJoQk5kiUEIA5Xxn8=";
21 aarch64-darwin = "sha256-PpZ1dbT57+cdmLTvxo0/HY0lKoa+/N4cSfTNhbE6LLo=";
22 };
23 in
24 fetchzip {
25 url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
26 inherit sha256;
27 };
28
29 dontConfigure = true;
30 dontBuild = true;
31
32 installPhase = ''
33 runHook preInstall
34 install -D boundary $out/bin/boundary
35 runHook postInstall
36 '';
37
38 doInstallCheck = true;
39 installCheckPhase = ''
40 runHook preInstallCheck
41 $out/bin/boundary --help
42 $out/bin/boundary version
43 runHook postInstallCheck
44 '';
45
46 dontPatchELF = true;
47 dontPatchShebangs = true;
48 dontStrip = true;
49
50 passthru.updateScript = ./update.sh;
51
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.
60
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.mpl20;
67 maintainers = with maintainers; [ jk techknowlogick ];
68 platforms = platforms.unix;
69 };
70}