about summary refs log tree commit diff
path: root/third_party/tailscale
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/tailscale')
-rw-r--r--third_party/tailscale/0001-fix-client-logger.patch28
-rw-r--r--third_party/tailscale/default.nix41
2 files changed, 69 insertions, 0 deletions
diff --git a/third_party/tailscale/0001-fix-client-logger.patch b/third_party/tailscale/0001-fix-client-logger.patch
new file mode 100644
index 000000000000..d86694adcae7
--- /dev/null
+++ b/third_party/tailscale/0001-fix-client-logger.patch
@@ -0,0 +1,28 @@
+From ce33360524307b6da4f996a9f465260e121011f8 Mon Sep 17 00:00:00 2001
+From: Vincent Ambo <tazjin@google.com>
+Date: Tue, 11 Feb 2020 00:40:37 +0000
+Subject: [PATCH] fix(control): Ensure control client has a logger function
+
+For some reason this field ended up being nil in taillogin, which made
+it difficult to actually log in.
+---
+ control/controlclient/auto.go | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/control/controlclient/auto.go b/control/controlclient/auto.go
+index 67f187f..09cdf6f 100644
+--- a/control/controlclient/auto.go
++++ b/control/controlclient/auto.go
+@@ -160,6 +160,9 @@ func NewNoStart(opts Options) (*Client, error) {
+ //
+ // It should only be called for clients created by NewNoStart.
+ func (c *Client) Start() {
++	c.logf = func(f string, args ...interface{}) {
++		fmt.Printf(f, args)
++	}
+ 	go c.authRoutine()
+ 	go c.mapRoutine()
+ }
+-- 
+2.23.0
+
diff --git a/third_party/tailscale/default.nix b/third_party/tailscale/default.nix
new file mode 100644
index 000000000000..9f26d8f76af6
--- /dev/null
+++ b/third_party/tailscale/default.nix
@@ -0,0 +1,41 @@
+# This file packages the Tailscale client using the standard upstream
+# Go packaging mechanisms instead of buildGo.nix
+
+{ pkgs, lib, ... }:
+
+let
+  inherit (pkgs) buildGoModule fetchFromGitHub;
+in buildGoModule rec {
+  pname = "tailscale";
+  version = "fef25489";
+
+  src = fetchFromGitHub {
+    owner = "tailscale";
+    repo = "tailscale";
+    rev = "fef254898178d100f25b98530499adcf07cfded3";
+    sha256 = "1islxzr8lhnl2f0r686mcciwb8lzvqjczg9fs0nagr5pp6dsi9fa";
+  };
+
+  patches = [ ./0001-fix-client-logger.patch ];
+
+  goPackagePath = "tailscale.com";
+  modSha256 = "0cnih9flwgqjq4x4cwyac9yyz1prv2i2by1ki3g71ai8q621bq10";
+  subPackages = [
+    "cmd/relaynode"
+    "cmd/taillogin"
+    "cmd/tailscale"
+    "cmd/tailscaled"
+  ];
+
+  postInstall = ''
+    mkdir -p $out/etc/
+    cp ${src}/cmd/relaynode/acl.json $out/etc/
+  '';
+
+  meta = with lib; {
+    homepage = "https://tailscale.com/";
+    description = "Private WireGuard networks made easy";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ tazjin ];
+  };
+}