3.3 KiB
Distribution support
Citizen Launcher keeps Wine, DXVK and RSI in the user account and deliberately avoids distro Wine packages. Native packages are thin integration layers around the same static Go core.
Supported families
| Family | Examples | Preferred package | Automatic launcher update | Support level |
|---|---|---|---|---|
| Debian/Ubuntu | Debian 13+, Ubuntu 24.04/26.04, Mint, Pop!_OS, Zorin, TUXEDO OS | .deb |
APT via verified system timer | primary |
| Fedora/RHEL | Fedora 43+, Nobara, Rocky/Alma/RHEL derivatives | .rpm |
verified RPM via system timer | primary core |
| Arch | Arch, Manjaro, EndeavourOS, CachyOS, Garuda, Omarchy | .pkg.tar.zst |
pacman via verified system timer | primary core |
| openSUSE | Tumbleweed, Slowroll; Leap where current dependencies are available | .rpm |
verified RPM via system timer | primary core |
| Immutable desktops | Fedora Silverblue/Kinoite/Bazzite, SteamOS, openSUSE Aeon/MicroOS | install.sh user mode |
verified user binary update | supported without mutating base image |
| Other glibc x86-64 desktop Linux | Gentoo, Void/glibc, custom distributions | install.sh / generic tarball |
verified user binary update | best effort |
The game still requires an x86-64 CPU with AVX, a real Vulkan-capable GPU, sufficient RAM+swap/storage, a Linux-native executable filesystem and a Wine runner compatible with the host glibc/CPU. Citizen Launcher validates those conditions before changing the game stack.
Package-manager mapping
Runtime detection uses /etc/os-release first and then the native package manager:
- Debian family →
apt - Fedora family →
dnf5/dnf - Arch family →
pacman - SUSE family →
zypper - Fedora Atomic/OSTree →
rpm-ostree(base-image updates remain external) - openSUSE transactional variants →
transactional-update(base-image updates remain external)
Foreign package tools in $PATH do not override the detected distro family.
One-command project installer
From an extracted project/release bundle:
./INSTALLIEREN.sh
It prefers the native package when it is present in dist/. On immutable systems, or when a native package is not available, it intentionally falls back to the user installation instead of modifying the base OS outside its package manager.
Native package build inputs
- Debian:
packaging/build-deb.sh - Fedora/openSUSE RPM:
packaging/build-rpm.sh - Arch/pacman:
packaging/build-arch.sh - Generic Linux:
packaging/build-tarball.sh - Available formats on the current build host:
packaging/build-all.sh
Gitea Actions builds RPM and Arch packages inside native Fedora and Arch container jobs on CI/release runs.
Immutable distributions
Citizen Launcher never runs rpm -U/pacman -U against an immutable base image. When an installed system package is detected on an immutable host, the launcher reports that the host image/package layer owns that update. A ~/.local user installation remains fully self-updateable from the verified generic tarball.
Not a base-system updater
Citizen Launcher does not silently upgrade kernels, Mesa/NVIDIA drivers, firmware or the whole Linux distribution. Those remain owned by APT/DNF/pacman/zypper/rpm-ostree/transactional-update. This avoids partial upgrades and keeps rollback/recovery in the distribution's control.