diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/tailscale/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/tailscale/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix new file mode 100644 index 000000000000..7da355cf4a92 --- /dev/null +++ b/nixpkgs/pkgs/servers/tailscale/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, buildGoModule +, fetchFromGitHub +, makeWrapper +, getent +, iproute2 +, iptables +, shadow +, procps +, nixosTests +}: + +let + version = "1.62.1"; +in +buildGoModule { + pname = "tailscale"; + inherit version; + + src = fetchFromGitHub { + owner = "tailscale"; + repo = "tailscale"; + rev = "v${version}"; + hash = "sha256-gV1k+8n6vuL9q4hNaMdQLf6083Em+CC7/uTdUpehbUU="; + }; + vendorHash = "sha256-jyRjT/CQBlmjHzilxJvMuzZQlGyJB4X/yISgWjBVDxc="; + + nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ]; + + CGO_ENABLED = 0; + + subPackages = [ "cmd/tailscale" "cmd/tailscaled" ]; + + ldflags = [ + "-w" + "-s" + "-X tailscale.com/version.longStamp=${version}" + "-X tailscale.com/version.shortStamp=${version}" + ]; + + doCheck = false; + + postInstall = lib.optionalString stdenv.isLinux '' + wrapProgram $out/bin/tailscaled --prefix PATH : ${lib.makeBinPath [ iproute2 iptables getent shadow ]} + wrapProgram $out/bin/tailscale --suffix PATH : ${lib.makeBinPath [ procps ]} + + sed -i -e "s#/usr/sbin#$out/bin#" -e "/^EnvironmentFile/d" ./cmd/tailscaled/tailscaled.service + install -D -m0444 -t $out/lib/systemd/system ./cmd/tailscaled/tailscaled.service + ''; + + passthru.tests = { + inherit (nixosTests) headscale; + }; + + meta = with lib; { + homepage = "https://tailscale.com"; + description = "The node agent for Tailscale, a mesh VPN built on WireGuard"; + license = licenses.bsd3; + mainProgram = "tailscale"; + maintainers = with maintainers; [ danderson mbaillie twitchyliquid64 jk mfrw ]; + }; +} |