Files
nexus/docs/build-and-release.md
T
2026-04-28 14:56:13 +01:00

1.9 KiB

Build and Release

This project uses Wails for desktop packaging.

Ubuntu 24.04 prerequisites

Install the Linux build toolchain and Wails runtime headers with:

sudo apt-get update
sudo apt-get install -y \
  build-essential \
  libgtk-3-dev \
  libwebkit2gtk-4.1-dev \
  libayatana-appindicator3-dev \
  pkg-config \
  zip

Notes:

  • Ubuntu 24.04 does not ship libwebkit2gtk-4.0-dev.
  • Wails v2.12.0 supports Ubuntu 24.04 by building with the webkit2_41 tag.
  • The local build scripts detect that package layout automatically and add the tag when needed.

You will also need these tools available in PATH:

  • go
  • node
  • npm
  • wails

Install the Wails CLI with:

go install github.com/wailsapp/wails/v2/cmd/wails@latest
export PATH="$PATH:$(go env GOPATH)/bin"

Build commands

Build the app binary for the current host:

./build.sh

Build a packaged release for the current host platform:

./release.sh

By default, ./release.sh now builds only the current host OS/architecture. On this Ubuntu 24.04 amd64 host that means linux/amd64.

Optional cross-compilers

If you want to add extra Linux/Windows targets from Ubuntu, install the relevant cross-compiler packages first:

sudo apt-get install -y \
  gcc-aarch64-linux-gnu \
  gcc-mingw-w64-x86-64

Then request explicit targets:

NEXUS_RELEASE_TARGETS=linux/amd64,windows/amd64 ./release.sh

Platform caveats

  • macOS targets cannot be cross-built from Linux with Wails. Build those on macOS.
  • windows/arm64 is not covered by the default Ubuntu toolchain here.
  • linux/arm64 needs more than gcc-aarch64-linux-gnu; it also needs an arm64 sysroot and target GTK/WebKit development libraries for CGO to link cleanly.
  • Tested on Ubuntu 24.04 amd64: linux/amd64 and windows/amd64 build successfully; linux/arm64 does not in the default host setup above.