cmd/tailscaled: support "ts_omit_ssh" build tag to remove SSH

Some environments would like to remove Tailscale SSH support for the
binary for various reasons when not needed (either for peace of mind,
or the ~1MB of binary space savings).

Updates tailscale/corp#24454
Updates #1278
Updates #12614

Change-Id: Iadd6c5a393992c254b5dc9aa9a526916f96fd07a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
pull/14040/head
Brad Fitzpatrick 2 weeks ago committed by Brad Fitzpatrick
parent 2c8859c2e7
commit 23880eb5b0

@ -0,0 +1,30 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
package main
import (
"testing"
"tailscale.com/tstest/deptest"
)
func TestOmitSSH(t *testing.T) {
const msg = "unexpected with ts_omit_ssh"
deptest.DepChecker{
GOOS: "linux",
GOARCH: "amd64",
Tags: "ts_omit_ssh",
BadDeps: map[string]string{
"tailscale.com/ssh/tailssh": msg,
"golang.org/x/crypto/ssh": msg,
"tailscale.com/sessionrecording": msg,
"github.com/anmitsu/go-shlex": msg,
"github.com/creack/pty": msg,
"github.com/kr/fs": msg,
"github.com/pkg/sftp": msg,
"github.com/u-root/u-root/pkg/termios": msg,
"tempfork/gliderlabs/ssh": msg,
},
}.Check(t)
}

@ -1,7 +1,7 @@
// Copyright (c) Tailscale Inc & AUTHORS // Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
//go:build linux || darwin || freebsd || openbsd //go:build (linux || darwin || freebsd || openbsd) && !ts_omit_ssh
package main package main

@ -21,6 +21,7 @@ type DepChecker struct {
GOOS string // optional GOOS string // optional
GOARCH string // optional GOARCH string // optional
BadDeps map[string]string // package => why BadDeps map[string]string // package => why
Tags string // comma-separated
} }
func (c DepChecker) Check(t *testing.T) { func (c DepChecker) Check(t *testing.T) {
@ -29,7 +30,7 @@ func (c DepChecker) Check(t *testing.T) {
t.Skip("skipping dep tests on windows hosts") t.Skip("skipping dep tests on windows hosts")
} }
t.Helper() t.Helper()
cmd := exec.Command("go", "list", "-json", ".") cmd := exec.Command("go", "list", "-json", "-tags="+c.Tags, ".")
var extraEnv []string var extraEnv []string
if c.GOOS != "" { if c.GOOS != "" {
extraEnv = append(extraEnv, "GOOS="+c.GOOS) extraEnv = append(extraEnv, "GOOS="+c.GOOS)

Loading…
Cancel
Save