End of life — September 2026. SolarFlare is no longer maintained and this site is kept for reference only. No further releases, updates, bug fixes, or security patches will be published. Users are encouraged to migrate to Slipstream, the successor project, which remains actively maintained.

On this page
Developer & APILinux

Multi-Distro Porting Guide

Package translation matrices, dependencies, and build requirements for all major Linux distributions.

6 min readUpdated August 2026

Distribution Dependency Matrix#

SolarFlare compiles natively across Arch, Debian, Ubuntu, Fedora, and openSUSE. Package names for dependencies are translated below:

ComponentArch / CachyOSDebian / UbuntuFedora / NobaraopenSUSE
Compilerbase-devel (GCC 14+)build-essential (GCC 13+)gcc-c++gcc-c++
Build Systemcmake ninjacmake ninja-buildcmake ninja-buildcmake ninja
Audiolibpipewire libpulselibpipewire-0.3-dev libpulse-devpipewire-devel pulseaudio-libs-develpipewire-devel libpulse-devel
Video / DRMlibdrm libvalibdrm-dev libva-devlibdrm-devel libva-devellibdrm-devel libva-devel
Wayland Protocolswayland-protocols libportalwayland-protocols libportal-devwayland-protocols-devel libportal-develwayland-protocols-devel libportal-devel
Opus DSPopuslibopus-devopus-developus-devel
FFmpeg Codecsffmpegffmpegffmpeg-develffmpeg-devel
Vulkan SDKvulkan-headersvulkan-headers / vulkan-sdkvulkan-develvulkan-devel

Distribution-Specific Details#

Use the tabs for distro quirks. The matrix above lists package names.

Arch provides current GCC 14+ and kernel 6.x. scripts/cachyos-build.sh forwards to linux-install.sh. Confirm cap_sys_admin after install.

NixOS declarative block#

NixOS never uses apt/dnf. Enter the repo Nix shell (it installs into ~/.local with units under ~/.config/systemd/user), export ~/.local/bin onto PATH, and apply the host-side NixOS settings (uinput device, video group membership, firewall ports) with nixos-rebuild switch. The imperative redesign boot units are skipped on NixOS — express CPU governor, ethtool, and NVIDIA tuning declaratively instead.

bash
nix-build packaging/linux/nixos/shell.nix --out-link ~/.local/share/solarflare/build-environment
SOLARFLARE_NIX_SHELL=1 nix-shell packaging/linux/nixos/shell.nix --run "./scripts/linux-install.sh $@"
export PATH="$HOME/.local/bin:$PATH"
sudo nixos-rebuild switch

Bazzite two-pass install#

rpm-ostree layering cannot finish live: the first installer pass layers the toolchain and then stops with REBOOT REQUIRED. Reboot, then re-run with --skip-deps to compile against the layered packages.

bash
./scripts/linux-install.sh
sudo systemctl reboot
./scripts/linux-install.sh --skip-deps

CUDA, packaging & verification#

Vulkan encode needs vulkan-devel plus shaderc. CUDA builds add -DSUNSHINE_ENABLE_CUDA=ON with CMAKE_CUDA_COMPILER pointing at nvcc; keep CUDA_FAIL_ON_MISSING=ON so a silent CPU-only binary never ships by accident. Package with cpack (DEB/RPM), the AppImage AppDir flow, or flatpak build-bundle; Arch uses SUNSHINE_CONFIGURE_PKGBUILD. Verify every port the same way: getcap shows both capabilities, curl -k reports 401, and sunshine --version prints the Fork: SolarFlare line.