feature/portlist: pull portlist service porting into extension, use eventbus

And yay: tsnet (and thus k8s-operator etc) no longer depends on
portlist! And LocalBackend is smaller.

Removes 50 KB from the minimal binary.

Updates #12614

Change-Id: Iee04057053dc39305303e8bd1d9599db8368d926
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-09-24 15:12:24 -07:00
committed by Brad Fitzpatrick
parent bbc5107d7d
commit 45d635cc98
18 changed files with 277 additions and 111 deletions
@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build ts_omit_portlist
package buildfeatures
// HasPortList is whether the binary was built with support for modular feature "Optionally advertise listening service ports".
// Specifically, it's whether the binary was NOT built with the "ts_omit_portlist" build tag.
// It's a const so it can be used for dead code elimination.
const HasPortList = false
@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build !ts_omit_portlist
package buildfeatures
// HasPortList is whether the binary was built with support for modular feature "Optionally advertise listening service ports".
// Specifically, it's whether the binary was NOT built with the "ts_omit_portlist" build tag.
// It's a const so it can be used for dead code elimination.
const HasPortList = true