mirror of
https://github.com/netbirdio/netbird.git
synced 2026-07-18 04:29:54 +00:00
Wails v3 builds on GTK4/WebKitGTK 6.0 by default, but distros that don't ship WebKitGTK 6.0 yet (Ubuntu 22.04, Debian 12, RHEL 9, Fedora <=39) can't install the GTK4 packages. Add a parallel legacy build via the -tags gtk3 path (removed upstream in Wails v3.1). The project's own XEmbed tray host links GTK4 and uses GTK4-only popup-menu APIs, so it can't compile against GTK3. Rather than port the ~150-line C menu layer, exclude it on gtk3 builds (!gtk3 constraint on xembed_host_linux.go + xembed_tray_linux.c) and add a pure-Go stub (xembed_host_gtk3_linux.go) where xembedTrayAvailable() returns false. The watcher probe then exits immediately, so the in-process XEmbed fallback is absent on gtk3 builds -- the tray still works on desktops that ship their own StatusNotifierWatcher, only the minimal-WM fallback is unavailable. goreleaser gains a netbird-ui-gtk3 build plus deb/rpm nfpm blocks (same netbird-ui package name, GTK3/WebKit2GTK 4.1 deps) routed to dedicated legacy repo paths. The release_ui CI job installs both dev stacks on the runner so goreleaser builds both Linux variants natively.