feature/linuxdnsfight: move inotify watching of /etc/resolv.conf out to a feature

tsnet apps in particular never use the Linux DNS OSManagers, so they don't need
DBus, etc. I started to pull that all out into separate features so tsnet doesn't
need to bring in DBus, but hit this first.

Here you can see that tsnet (and the k8s-operator) no longer pulls in inotify.

Updates #17206

Change-Id: I7af0f391f60c5e7dbeed7a080346f83262346591
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-09-19 17:15:04 -07:00
committed by Brad Fitzpatrick
parent f9c699812a
commit 798fddbe5c
13 changed files with 159 additions and 122 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_linuxdnsfight
package buildfeatures
// HasLinuxDNSFight is whether the binary was built with support for modular feature "Linux support for detecting DNS fights (inotify watching of /etc/resolv.conf)".
// Specifically, it's whether the binary was NOT built with the "ts_omit_linuxdnsfight" build tag.
// It's a const so it can be used for dead code elimination.
const HasLinuxDNSFight = 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_linuxdnsfight
package buildfeatures
// HasLinuxDNSFight is whether the binary was built with support for modular feature "Linux support for detecting DNS fights (inotify watching of /etc/resolv.conf)".
// Specifically, it's whether the binary was NOT built with the "ts_omit_linuxdnsfight" build tag.
// It's a const so it can be used for dead code elimination.
const HasLinuxDNSFight = true