diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 80809e667..0661e0c71 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -6,7 +6,6 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ iptables=1.8.9-2 \ libgl1-mesa-dev=22.3.6-1+deb12u1 \ xorg-dev=1:7.7+23 \ - libayatana-appindicator3-dev=0.5.92-1 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && go install -v golang.org/x/tools/gopls@latest diff --git a/.github/workflows/golang-test-linux.yml b/.github/workflows/golang-test-linux.yml index 55f876d3a..9222fa922 100644 --- a/.github/workflows/golang-test-linux.yml +++ b/.github/workflows/golang-test-linux.yml @@ -53,7 +53,7 @@ jobs: - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' - run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev gcc-multilib libpcap-dev + run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libgl1-mesa-dev xorg-dev gcc-multilib libpcap-dev - name: Install 32-bit libpcap if: steps.cache.outputs.cache-hit != 'true' @@ -145,7 +145,7 @@ jobs: ${{ runner.os }}-gotest-cache- - name: Install dependencies - run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev gcc-multilib libpcap-dev + run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libgl1-mesa-dev xorg-dev gcc-multilib libpcap-dev - name: Install 32-bit libpcap if: matrix.arch == '386' diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 9c299dfc6..d69881076 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -62,7 +62,7 @@ jobs: cache: false - name: Install dependencies if: matrix.os == 'ubuntu-latest' - run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev libpcap-dev + run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libgl1-mesa-dev xorg-dev libpcap-dev - name: Stub Wails frontend bundle # client/ui/main.go has //go:embed all:frontend/dist. The # directory is produced by `pnpm run build` and is gitignored, so diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ed30c7540..7b89da847 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -367,7 +367,7 @@ jobs: version: 11 - name: Install dependencies - run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libayatana-appindicator3-dev gcc-mingw-w64-x86-64 + run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev gcc-mingw-w64-x86-64 - name: Decode GPG signing key if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository diff --git a/.github/workflows/wasm-build-validation.yml b/.github/workflows/wasm-build-validation.yml index 148c9d95d..2c0a49cf7 100644 --- a/.github/workflows/wasm-build-validation.yml +++ b/.github/workflows/wasm-build-validation.yml @@ -27,7 +27,7 @@ jobs: with: go-version-file: "go.mod" - name: Install dependencies - run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev libpcap-dev + run: sudo apt update && sudo apt install -y -q libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev libgl1-mesa-dev xorg-dev libpcap-dev - name: Install golangci-lint uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee #v9.2.1 with: diff --git a/.goreleaser_ui.yaml b/.goreleaser_ui.yaml index a9ee52b9f..8ae969096 100644 --- a/.goreleaser_ui.yaml +++ b/.goreleaser_ui.yaml @@ -87,9 +87,8 @@ nfpms: dst: /usr/share/pixmaps/netbird.png dependencies: - netbird - - libgtk-3-0 - - libwebkit2gtk-4.1-0 - - libayatana-appindicator3-1 + - libgtk-4-1 + - libwebkitgtk-6.0-4 - maintainer: Netbird description: Netbird client UI. @@ -111,9 +110,8 @@ nfpms: dst: /usr/share/pixmaps/netbird.png dependencies: - netbird - - gtk3 - - webkit2gtk4.1 - - libayatana-appindicator-gtk3 + - gtk4 + - webkitgtk6.0 rpm: signature: key_file: '{{ if index .Env "GPG_RPM_KEY_FILE" }}{{ .Env.GPG_RPM_KEY_FILE }}{{ end }}' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd1c087bb..3361c6f72 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -291,8 +291,6 @@ go test -exec sudo ./... ``` > On Windows use a powershell with administrator privileges -> Non-GTK environments will need the `libayatana-appindicator3-dev` (debian/ubuntu) package installed - ## Checklist before submitting a PR As a critical network service and open-source project, we must enforce a few things before submitting the pull-requests: - Keep functions as simple as possible, with a single purpose diff --git a/client/ui/README.md b/client/ui/README.md index c2e6180bb..4aeac55ab 100644 --- a/client/ui/README.md +++ b/client/ui/README.md @@ -11,8 +11,7 @@ WebView. - `task`: `go install github.com/go-task/task/v3/cmd/task@latest` - A running NetBird daemon (default: `unix:///var/run/netbird.sock`, Windows `tcp://127.0.0.1:41731`) -- Linux only: `libwebkit2gtk-4.1-dev`, `libgtk-3-dev`, - `libayatana-appindicator3-dev` +- Linux only: `libwebkitgtk-6.0-dev`, `libgtk-4-dev`, `libsoup-3.0-dev` ## Develop without rebuilding diff --git a/client/ui/build/linux/nfpm/nfpm.yaml b/client/ui/build/linux/nfpm/nfpm.yaml index a6e468bfa..213f3006b 100644 --- a/client/ui/build/linux/nfpm/nfpm.yaml +++ b/client/ui/build/linux/nfpm/nfpm.yaml @@ -24,24 +24,24 @@ contents: - src: "./build/linux/netbird-ui.desktop" dst: "/usr/share/applications/netbird-ui.desktop" -# Default dependencies for Debian 12/Ubuntu 22.04+ with WebKit 4.1 +# Default dependencies for the GTK4 + WebKitGTK 6.0 stack (Ubuntu 24.04+ / Debian 13+) depends: - - libgtk-3-0 - - libwebkit2gtk-4.1-0 + - libgtk-4-1 + - libwebkitgtk-6.0-4 -# Distribution-specific overrides for different package formats and WebKit versions +# Distribution-specific overrides for different package formats overrides: - # RPM packages for RHEL/CentOS/AlmaLinux/Rocky Linux (WebKit 4.0) + # RPM packages for Fedora / RHEL / AlmaLinux / Rocky Linux rpm: depends: - - gtk3 - - webkit2gtk4.1 - - # Arch Linux packages (WebKit 4.1) + - gtk4 + - webkitgtk6.0 + + # Arch Linux packages archlinux: depends: - - gtk3 - - webkit2gtk-4.1 + - gtk4 + - webkitgtk-6.0 # scripts section to ensure desktop database is updated after install scripts: