mirror of
https://github.com/tailscale/tailscale.git
synced 2026-10-08 19:31:47 -04:00
LocalBackend named appc.AppConnector in its appConnector field, in the field's constructor call, and in the AppConnector accessor, so even builds with ts_omit_appconnectors linked the appc package and its dependencies. The buildfeatures.HasAppConnectors checks let the linker drop the code but could not remove the import. Add a build-tag-gated type for the field: appcAppConnector is an alias for appc.AppConnector by default, and in ts_omit_appconnectors builds it is an empty struct with no-op versions of the methods local.go calls, so the shared code still type checks. The constructor call moves behind a newAppConnector helper in the same gated file, and the AppConnector accessor keeps its *appc.AppConnector signature there, with a nil- returning version in the omitted build. This takes tailscale.com/appc out of depaware-min.txt and depaware-minbox.txt. Add a DepChecker test to keep it out; it also sets ts_omit_conn25, since conn25 uses appc as well. Updates #12614 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> Change-Id: Ia7e2d9c4f1b8e6a3d5c0f2b7e9a1c4d6f8b0e2a5