Universal x86_64 build
A tarball for non-Arch distributions. install.sh puts everything under
~/.local/share/rift-s-linux, which SteamVR also sees inside the Steam Linux
Runtime container, so the driver needs no SteamVR launch option. Only the udev
rule needs root.
The driver, Basalt and their libraries are built in the Steam Runtime sniper SDK (Debian 11, glibc 2.31) and bundle Basalt, oneTBB and a trimmed OpenCV. The Settings app needs webkit2gtk 4.1, which the SDK lacks, so it is built in an Ubuntu 22.04 root (glibc 2.35).
Layout
work/ is bind-mounted at /work in both roots:
src/monadothis repositorysrc/basaltBasalt prepared bypackaging/aur/basalt-monado-rifts(makepkg -o)src/{opencv-4.12.0,oneTBB-2022.2.0,fmt-11.2.0}upstream release tarballshostdeps/usrheader-only build deps extracted from the Arch packagesboost,eigen,vulkan-headers,plasma-wayland-protocols
sysroot/ is com.valvesoftware.SteamRuntime.Sdk-amd64,i386-sniper-sysroot.tar.gz
from repo.steampowered.com/steamrt-images-sniper/snapshots/. sdk runs a
command in it with bwrap.
The Ubuntu root needs build-essential pkg-config libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev libvulkan-dev libwayland-dev glslang-tools python3, rustup, Node 22 and pnpm 10. Ubuntu 22.04 has no glslc package; a
wrapper around glslangValidator -V -x that adds the surrounding braces is enough
for settings-app/src-tauri/build.rs.
Build
./sdk /work/src/monado/packaging/universal/deps.sh # once
./sdk /work/src/monado/packaging/universal/build.sh
<ubuntu root> /work/src/monado/packaging/universal/settings.sh
packaging/universal/package.sh work <version> # host, needs patchelf
The result is work/dist/rift-s-linux-<version>-x86_64.tar.xz. Users extract it
and run ./install.sh; ./install.sh --uninstall removes it.