Files
enricobuehler 97bbedb674
android / gate (pull_request) Successful in 6s
android / android (pull_request) Skipped
ci / changes (pull_request) Successful in 13s
ci / rust-arm64 (pull_request) Skipped
ci / web (pull_request) Skipped
ci / sdk-plugin-kit (pull_request) Skipped
ci / decky-typecheck (pull_request) Skipped
ci / bun-nix (pull_request) Successful in 16s
ci / docs-drift (pull_request) Successful in 33s
secret-scan / gitleaks (pull_request) Successful in 37s
ci / docs-site (pull_request) Successful in 48s
windows-host / pr-lint (pull_request) Successful in 5m26s
windows-host / package (arm64, 89841f5a57f2348b67ec0839b718f4bf4ea7d07c371c9ba4b77b6c790f918953, bun-windows-aarch64.zip, , --no-default-features --features gamestream, _arm64, aarch64-pc-windows-msvc, C:\t-a64) (pull_request) Skipped
windows-host / package (x64, 0a0620930b6675d7ba440e81f4e0e00d3cfbe096c4b140d3fff02205e9e18922, bun-windows-x64.zip, --features nvenc,qsv, --features nvenc,qsv, , x86_64-pc-windows-msvc, C:\t) (pull_request) Skipped
windows-host / canary-manifest (pull_request) Skipped
windows-host / winget-source (pull_request) Skipped
ci / rust (pull_request) Successful in 22m54s
macos-host / check (pull_request) Successful in 1m9s
fix(host/windows): store the installer's GameStream choice
The Windows install expressed GameStream as `serve --gamestream` in
host.env's PUNKTFUNK_HOST_CMD. A CLI flag pins the setting, so the web
console showed GameStream locked and could not turn it off.

`service install --gamestream=on|off` now writes the GameStream setting
to host-settings.json. A host command of `serve --gamestream`, or none
(which ran that), becomes `serve` with GameStream stored on, so no
upgrade turns it off. The store is written before host.env. A custom
command stays, with a notice when it still passes the flag. A fresh
host.env names `serve` explicitly.

Refs #867
2026-09-16 22:53:45 +02:00
..

packaging

How each shipped artifact is built and published. Installing Punktfunk is the docs site's job — it generates every install command from the canonical data/platforms.json, so a fourth copy here would be the one that drifts. These files are the maintainer's half: what CI runs, how each package is signed, and the traps in each ecosystem.

Directory Ships Built by
debian/ punktfunk-host + client .deb (apt registry) deb.yml
rpm/ the RPM (Gitea RPM registry) rpm.yml
copr/ COPR build-from-SCM settings COPR
arch/ pacman binary repo, PKGBUILD, the SteamOS sysext arch.yml
bazzite/ the systemd-sysext image and host.env for an appliance rpm.yml
bootc/ Containerfile to bake the host into an atomic image
flatpak/ the client Flatpak and its hosted repo flatpak.yml
nix/ the flake's packages and the services.punktfunk module nix.yml
windows/ the host installer, pf-vdisplay and the gamepad drivers windows-host.yml, windows-drivers.yml
winget/ winget manifests and the REST source windows-host.yml
gamescope/ punktfunk-gamescope, patched for 10-bit HDR PipeWire capture deb.yml
linux/, kde/ desktop entries, udev rules, firewall profiles, host.env presets the distro packages

The Windows client packages from clients/windows/packaging/, not here.

Why the host is not a Flatpak

The host needs the zero-copy encode path, /dev/uinput, the PipeWire graph and the compositor's privileged protocols. A sandbox fights all four. The client is a different case and is a Flatpak — it needs only the GPU render node, Wayland, PipeWire audio, the network and hidraw, all expressible as finish-args, and SteamOS's read-only /usr leaves no other option on a Deck.