Skip to content

Correct Linux desktop app requirements and drop libappindicator - #888

Merged
mlsmaycon merged 1 commit into
mainfrom
linux-desktop-app-requirements
Jul 28, 2026
Merged

Correct Linux desktop app requirements and drop libappindicator#888
mlsmaycon merged 1 commit into
mainfrom
linux-desktop-app-requirements

Conversation

@mlsmaycon

@mlsmaycon mlsmaycon commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

The Wails 3 desktop app links GTK 4.10+ and WebKitGTK 6.0. The page previously advertised a floor of Debian 12 / Ubuntu 22.04, which is below that, and still told RPM users to install libappindicator, which the app no longer uses.

Verified against the shipped netbird-ui v0.75.0 Linux binary:

DT_NEEDED: libgtk-4.so.1, libwebkitgtk-6.0.so.4, libjavascriptcoregtk-6.0.so.1,
           libsoup-3.0.so.0, libX11.so.6, libcairo.so.2,
           libgio/libglib/libgobject-2.0.so.0, libc.so.6
glibc:     max GLIBC_2.34  (not a constraint on any current distribution)

The binary imports gtk_file_dialog_new / _open / _saveGtkFileDialog, added in GTK 4.10. Nothing sets BIND_NOW, so on an older GTK the app launches and then dies the first time it opens a file dialog.

Distribution floor

Distribution GTK 4 WebKitGTK 6.0 Desktop app
Ubuntu 22.04 LTS 4.6.9 2.50.4 ❌ GTK too old
Ubuntu 24.04 LTS 4.14.5 2.52.3
Ubuntu 26.04 LTS 4.22.4 2.52.3
Debian 12 4.8.3 2.50.6 ❌ GTK too old
Debian 13 4.18.6 2.52.5
Fedora 43 / 44 4.20.4 / 4.22.4 2.52.5
RHEL / AlmaLinux / Rocky 10 EPEL 10 ✅ with EPEL
RHEL 9 4.4.1 none in EPEL 9 ❌ CLI only
Amazon Linux 2 / 2023 ❌ CLI only

Screenshot
localhost_3000_get-started_install_linux

Changes

  • Document the real per-distribution floor; mark RHEL 9 and Amazon Linux as CLI only.
  • Name the GTK 4 / WebKitGTK 6.0 packages in the install commands. netbird-ui does not declare them (.goreleaser_ui.yaml lists only netbird), so apt install netbird-ui otherwise succeeds and produces an app that cannot start.
  • Note that EPEL provides webkitgtk6.0 on RHEL/AlmaLinux/Rocky 10, and only for the desktop app path.
  • Remove libappindicator-gtk3 libappindicator from the RPM lines — the Wails 3 tray is a D-Bus StatusNotifierItem with no libappindicator linkage. The gnome-shell-extension-appindicator step stays, since GNOME still needs an SNI host.
  • Note that Linux netbird-ui packages are x86_64 only.
  • Correct the claim that packages install these dependencies automatically.

Notes for the reviewer

  • I could not pin RHEL 10's exact gtk4 version (Red Hat's package manifest 403s, pkgs.org has no el10 data). It's inferred to clear 4.10 from EPEL 10 building webkitgtk6.0 2.50 against it — worth a smoke test before merge.
  • Debian 12 has a second problem beyond GTK: per DSA-6232-1, webkit2gtk is no longer security-supported in bookworm.
  • Verified: npm run lint:mdx clean, page renders at /get-started/install/linux with no compile errors.

🤖 Generated with Claude Code

https://claude.ai/code/session_01P3NR7mS9qysiLUWpEjhMPP


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Documentation
    • Expanded Linux installation guidance with desktop app compatibility requirements, including GTK 4.10+ and WebKitGTK 6.0.
    • Added a minimum-supported distribution matrix and clarified that desktop app packages are currently x86_64-only.
    • Updated Fedora, RHEL, Amazon Linux, immutable Linux, MicroOS, and openSUSE instructions with accurate dependency and CLI-only guidance.
    • Added GNOME tray/appindicator notes and EPEL setup instructions where required.

The Wails 3 desktop app links GTK 4.10+ (GtkFileDialog) and WebKitGTK 6.0,
verified against the shipped v0.75.0 netbird-ui binary. The previously
documented floor of Debian 12 / Ubuntu 22.04 is below that: both ship
WebKitGTK 6.0 but only GTK 4.8 and 4.6, where the app starts and then
crashes on the first file dialog.

- Document the real floor per distribution and mark RHEL 9, Amazon Linux 2
  and Amazon Linux 2023 as CLI only.
- Name the GTK 4 and WebKitGTK 6.0 packages in the install commands, since
  netbird-ui does not declare them as dependencies.
- Note that EPEL provides webkitgtk6.0 on RHEL/AlmaLinux/Rocky 10.
- Remove libappindicator from the RPM install lines. The tray is a D-Bus
  StatusNotifierItem and does not link libappindicator; keep the GNOME
  extension step, which is still required for the tray to appear.
- Note that Linux netbird-ui packages are x86_64 only.
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jul 27, 2026 10:57am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Linux installation documentation now specifies GTK/WebKitGTK requirements, supported distributions, x86_64 limitations, and revised CLI-only or desktop-app installation commands across Debian-based, RPM-based, immutable, and openSUSE systems.

Changes

Linux installation guidance

Layer / File(s) Summary
Desktop dependency requirements
src/pages/get-started/install/linux.mdx
Documents GTK 4.10+, WebKitGTK 6.0, supported distributions, CLI availability, and the x86_64-only netbird-ui limitation.
Distribution-specific install flows
src/pages/get-started/install/linux.mdx
Updates Ubuntu, Debian, RHEL, Amazon Linux, Fedora, and GNOME tray installation guidance, including EPEL for RHEL 10-family systems.
Immutable and openSUSE installations
src/pages/get-started/install/linux.mdx
Adds desktop dependencies to rpm-ostree commands and clarifies CLI-only commands and WebKitGTK package discovery on openSUSE.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • netbirdio/docs#881: Updates the same Linux installation documentation with related desktop dependency guidance.

Suggested reviewers: pizzalovingnerd, techhuttv

Poem

I hopped through GTK’s garden bright,
Found WebKit leaves in morning light.
CLI paths where desktops sleep,
x86 paws in packages deep.
New Linux steps are neat and clear—
A bunny’s guide for every tier!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the main documentation update: Linux desktop app requirements were corrected and obsolete libappindicator use was removed.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch linux-desktop-app-requirements

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/get-started/install/linux.mdx`:
- Around line 160-161: Update the desktop app rpm-ostree installation command in
the Linux getting-started instructions to apply the existing Fedora 43+
qualifier, while preserving the separate CLI-only rpm-ostree install netbird
path for older Fedora immutable images.
- Line 131: Scope the GNOpME tray setup instructions to the same Fedora 43+/RHEL
10+ desktop-supported distributions as the desktop app installation, and
explicitly exclude Amazon Linux 2023 so its CLI-only guidance remains clear.
- Around line 122-129: Move the `sudo dnf install epel-release -y` command
before the `sudo dnf install netbird-ui gtk4 webkitgtk6.0 xdg-utils` command in
the Linux installation instructions, ensuring EPEL is enabled before resolving
the desktop dependencies.
- Around line 267-269: Update the openSUSE-specific desktop prerequisites in the
Note to include the xdg-utils package alongside netbird-ui, GTK 4.10+, and
WebKitGTK 6.0, while preserving the existing zypper search guidance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b9cb53ef-c2f8-4aa7-b637-bbd6bb35af9b

📥 Commits

Reviewing files that changed from the base of the PR and between 2e66908 and f156e9e.

📒 Files selected for processing (1)
  • src/pages/get-started/install/linux.mdx

Comment thread src/pages/get-started/install/linux.mdx
Comment thread src/pages/get-started/install/linux.mdx
Comment thread src/pages/get-started/install/linux.mdx
Comment thread src/pages/get-started/install/linux.mdx
@mlsmaycon

Copy link
Copy Markdown
Contributor Author

Confirmed the x86_64-only claim against the published artifacts:

  • v0.75.0 release assets: only netbird-ui_0.75.0_linux_amd64.{deb,rpm,tar.gz} — no arm64 UI artifact (release page)
  • APT repo: dists/stable/main/binary-arm64/Packages contains zero netbird-ui entries (the netbird CLI is present back to 0.10.x); binary-amd64 has netbird-ui through 0.75.0
  • YUM repo: the primary repodata index lists netbird-ui only for x86_64 (294 versions incl. 0.75.0), while netbird ships aarch64, armv6hl, i386, and MIPS variants

Root cause is .goreleaser_ui.yaml in netbirdio/netbird — the linux UI build declares goarch: [amd64] only. So arm64 users genuinely have no netbird-ui package today and the note stands. If an arm64 UI build lands later, this is one sentence to update.

@linear-code

linear-code Bot commented Jul 27, 2026

Copy link
Copy Markdown

NET-1446

@mlsmaycon
mlsmaycon merged commit c53c083 into main Jul 28, 2026
5 checks passed
@mlsmaycon
mlsmaycon deleted the linux-desktop-app-requirements branch July 28, 2026 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants