This document describes the system-level dependencies required for building MrRSS on different platforms.
MrRSS uses Wails v3 (alpha) framework which requires CGO (C bindings for Go):
- Wails v3: For the desktop application framework with built-in system tray
- SQLite: Pure Go implementation (
modernc.org/sqlite), no C dependencies
export CGO_ENABLED=1Or when building:
CGO_ENABLED=1 wails3 buildsudo apt-get update
sudo apt-get install -y \
gcc \
pkg-config \
libgtk-4-dev \
libwebkitgtk-6.0-dev \
libsoup-3.0-devDependency Breakdown:
gcc: C compiler (required for CGO)pkg-config: Build tool for finding librarieslibgtk-4-dev: GTK4 development headers (for Wails UI)libwebkitgtk-6.0-dev: WebKitGTK 6.0 development headers (for Wails webview, required for current Wails v3)libsoup-3.0-dev: HTTP library 3.0 (required for Wails v3)
Important: Current Wails v3 requires GTK4, WebKitGTK 6.0, and libsoup 3.0. Older WebKitGTK 4.x and GTK3 packages are not sufficient.
Note for Linux Mint: Also install libxapp-dev
End users running the compiled binary will need:
libgtk-4-1libwebkitgtk-6.0-4libsoup-3.0-0
Install via Chocolatey:
choco install mingw nsis -yDependency Breakdown:
mingw: MinGW-w64 GCC compiler (required for CGO)nsis: Nullsoft Scriptable Install System (for creating installers)
If not using Chocolatey:
To avoid opening a console at application startup:
go build -ldflags "-H=windowsgui"Or with Wails:
wails3 build -ldflags "-H=windowsgui"Windows binaries are statically linked and don't require additional runtime dependencies.
Install Xcode Command Line Tools (if not already installed):
xcode-select --installNote: macOS has native support for systray through AppKit, so no additional libraries are needed.
macOS requires an application bundle structure:
MrRSS.app/
Contents/
Info.plist
MacOS/
MrRSS
Resources/
MrRSS.icns
Wails automatically creates this structure during build.
Add these keys for better macOS integration:
<!-- High resolution support -->
<key>NSHighResolutionCapable</key>
<string>True</string>
<!-- Hide from Dock (optional, for menu bar only apps) -->
<key>LSUIElement</key>
<string>1</string>macOS binaries are self-contained and don't require additional runtime dependencies.
# Development build with hot reload
wails3 dev
# Production build (recommended: use Task)
task build
# Or directly with wails3
wails3 build
# Platform-specific build with Task
task linux:build
task windows:build
task darwin:buildWails v3 uses build/config.yml for build configuration and Taskfile for platform-specific builds:
- Frontend: Automatically built via
frontend/package.jsonscripts - Backend: CGO-enabled Go build with platform-specific flags
- Installers: Created via platform-specific scripts (NSIS, create-dmg.sh, create-appimage.sh)
Note: Cross-compilation with CGO is complex. For best results:
- Build Linux binaries on Linux
- Build Windows binaries on Windows
- Build macOS binaries on macOS
GitHub Actions handles this automatically using platform-specific runners.
Our CI/CD pipeline automatically installs all required dependencies:
- Installs Linux dependencies for backend tests
- Sets
CGO_ENABLED=1
- Platform-specific dependency installation
- Cross-platform builds using native runners
- Artifact creation (installers, AppImages, DMGs)
Solution: Enable CGO before building:
export CGO_ENABLED=1
wails3 buildSolution: Install WebKitGTK 6.0 development headers:
sudo apt-get install libwebkitgtk-6.0-devThis error is from older versions. Wails v3 uses its own system tray implementation.
Solution: Install libsoup3 development headers:
sudo apt-get install libsoup-3.0-devSolution: Install MinGW:
choco install mingw -yOr download from mingw-w64.org and add to PATH.
Solution: Install Xcode Command Line Tools:
xcode-select --installLinux/macOS:
# Install Go dependencies
go mod download
# Install frontend dependencies
cd frontend
npm install
cd ..
# Run development server
wails3 devWindows (PowerShell):
# Install Go dependencies
go mod download
# Install frontend dependencies
cd frontend
npm install
cd ..
# Run development server
wails3 dev