Launcher
Requirements
- Go 1.26 or higher
- gcc
- libgl1-mesa-dev
- xorg-dev
sudo apt-get install gcc libgl1-mesa-dev xorg-dev
Build
go install fyne.io/tools/cmd/fyne@latest
go mod tidy
make build
Before building, a custom default configuration can be embedded in the binary by editing internal/config/dcvix-launcher.conf.default. This lets you ship the launcher with pre-configured broker URL, viewer command, or other settings out of the box.
Make Targets
| Target | Description |
|---|---|
build |
Build binary (all supported platforms) |
clean |
Remove build artifacts |
installer |
Build Windows NSIS installer |
deb |
Build Debian package |
rpm |
Build RPM package |
Cross Build for Windows
Requires fyne-cross:
go install github.com/fyne-io/fyne-cross@latest
make build-windows-cross
Building Packages
Rocky Linux / RHEL RPM
Using docker or podman:
podman run -it --rm -v "$PWD":/workspace -w /workspace rockylinux:9 bash
dnf install -y 'dnf-command(config-manager)'
dnf config-manager --set-enabled crb
dnf install -y \
gcc \
rpm-build \
make \
git \
which \
desktop-file-utils \
libX11-devel \
libxkbcommon-devel \
mesa-libGL-devel \
wayland-devel \
libXcursor-devel \
libXi-devel \
libXinerama-devel \
libXrandr-devel \
libXxf86vm-devel
curl -L https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -zx -C /usr/local
export PATH=/usr/local/go/bin:$PATH
make rpm
Ubuntu DEB
Using docker or podman:
podman run -it --rm -v "$PWD":/workspace -w /workspace ubuntu:24.04 bash
apt update && apt install -y \
bc \
gcc \
libgl1-mesa-dev \
libwayland-dev \
libx11-dev \
libxkbcommon-dev \
xorg-dev \
xvfb \
language-pack-en
curl -L https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -zx -C /usr/local
export PATH=$PATH:/usr/local/go/bin
make deb
Windows Installer
Requires NSIS:
sudo apt install nsis
make installer
The installer is created in bin/installer/dcvix-launcher-<version>-setup.exe.
Releases
The project uses GitHub Actions to automatically build and publish releases. When a new version is ready:
- Update CHANGELOG.md
- Commit all changes
- Create and push a new tag:
git tag v<VERSION>
git push origin v<VERSION>
The version is derived from the git tag (the v prefix is stripped).