From a1e1bcc5fc883208a615895f37bf4a98e9ba80a5 Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Thu, 21 Oct 2021 16:44:25 +0100 Subject: [PATCH] headscale: 0.9.2 -> 0.10.5 --- pkgs/servers/headscale/default.nix | 41 +++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/pkgs/servers/headscale/default.nix b/pkgs/servers/headscale/default.nix index c863115afb7..d27831402ec 100644 --- a/pkgs/servers/headscale/default.nix +++ b/pkgs/servers/headscale/default.nix @@ -1,26 +1,49 @@ -{ lib, buildGoModule, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: buildGoModule rec { pname = "headscale"; - version = "0.9.2"; + version = "0.10.5"; src = fetchFromGitHub { owner = "juanfont"; repo = "headscale"; rev = "v${version}"; - sha256 = "sha256-1YxcfSOGGdyUZyQdKSHUiK5/43Ki/QvHvIZ/Ai5Mq7E="; + sha256 = "sha256-cUDLqSMEw1SRMskHx3hhb/y7N7ZQEDEAZ40X5J53Bow="; }; - vendorSha256 = "sha256-LJajQDk+r9Wt2t/kwNhsCoSlU+EjSNc1WT2vqtqg4LI="; + vendorSha256 = "sha256-t7S1jE76AFFIePrFtvrIQcId7hLeNIAm/eA9AVoFy5E="; - # Ldflags are same as build target in the project's Makefile - # https://github.com/juanfont/headscale/blob/main/Makefile - ldflags = [ "-s" "-w" "-X main.version=v${version}" ]; + ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --cmd headscale \ + --bash <($out/bin/headscale completion bash) \ + --fish <($out/bin/headscale completion fish) \ + --zsh <($out/bin/headscale completion zsh) + ''; meta = with lib; { - description = "An implementation of the Tailscale coordination server"; homepage = "https://github.com/juanfont/headscale"; + description = "An open source, self-hosted implementation of the Tailscale control server"; + longDescription = '' + Tailscale is a modern VPN built on top of Wireguard. It works like an + overlay network between the computers of your networks - using all kinds + of NAT traversal sorcery. + + Everything in Tailscale is Open Source, except the GUI clients for + proprietary OS (Windows and macOS/iOS), and the + 'coordination/control server'. + + The control server works as an exchange point of Wireguard public keys for + the nodes in the Tailscale network. It also assigns the IP addresses of + the clients, creates the boundaries between each user, enables sharing + machines between users, and exposes the advertised routes of your nodes. + + Headscale implements this coordination server. + ''; license = licenses.bsd3; - maintainers = with maintainers; [ nkje ]; + maintainers = with maintainers; [ nkje jk ]; }; }