Files
punktfunk/packaging/flatpak/io.unom.Punktfunk.metainfo.xml
enricobuehler 8956bc14de
apple / swift (push) Successful in 53s
android / android (push) Successful in 3m48s
ci / web (push) Successful in 29s
ci / docs-site (push) Successful in 34s
ci / rust (push) Successful in 2m21s
ci / bench (push) Successful in 1m36s
decky / build-publish (push) Successful in 31s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 5s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 6s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 3s
flatpak / build-publish (push) Failing after 4s
deb / build-publish (push) Successful in 2m38s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 5m9s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 4m42s
docker / deploy-docs (push) Successful in 16s
feat(packaging/flatpak,decky): Steam Deck client flatpak + plugin deploy + CI
Ship the punktfunk Linux client to the Steam Deck as a Flatpak — the only viable
SteamOS install path, since /usr is read-only and lacks libadwaita/SDL3 — and
publish both it and the Decky plugin through Gitea. Built and validated live on a
Steam Deck (SteamOS 3.7): bundle installs user-scope, all libs resolve, libavcodec
resolves to the codecs-extra HEVC build, devices=all for DualSense hidraw.

packaging/flatpak (new):
- io.unom.Punktfunk.yml on GNOME 50 / freedesktop-sdk 25.08. rust-stable//25.08
  (rustc 1.96 — the GTK4 chain needs >=1.92; the EOL GNOME-48/24.08 rust-stable at
  1.89 could not build it) + llvm20 (libclang for bindgen in ffmpeg-sys-next/sdl3-sys).
  HEVC libavcodec comes from the runtime's auto codecs-extra extension point (no
  app-side codec declaration). Bundled SDL3 3.4.10 (matches sdl3-sys 0.6.6+SDL-3.4.10).
  finish-args: wayland/fallback-x11, --device=all (GPU/VAAPI + evdev + hidraw — flatpak
  cannot bind /dev/hidrawN char devices via --filesystem), pulseaudio, network,
  ~/.config/punktfunk.
- metainfo.xml, desktop, square SVG icon, build-flatpak.sh (offline cargo-sources;
  on-Deck org.flatpak.Builder or CI), README.

clients/decky:
- add LICENSE (MIT), fix package.json license (BSD-3-Clause -> Apache-2.0 OR MIT),
  add scripts/{package.sh,deploy.sh} (the plugins dir is root-owned: stage to /tmp,
  sudo install, restart plugin_loader), align the launcher fallback to the real
  flatpak app id io.unom.Punktfunk, rewrite the install section.

.gitea/workflows:
- flatpak.yml: privileged Fedora container builds the bundle and publishes to the
  Gitea generic registry (+ release attachment on tags).
- decky.yml: pnpm build -> store-layout zip -> registry (stable latest/ URL for
  Decky "install from URL").

docs: packaging/README + packaging/flatpak/README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 01:43:35 +02:00

69 lines
2.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- AppStream metainfo for the punktfunk Linux client flatpak. Validate with:
appstreamcli validate packaging/flatpak/io.unom.Punktfunk.metainfo.xml
The component id MUST equal the flatpak app-id; the <launchable> MUST name the installed
desktop file (io.unom.Punktfunk.desktop). -->
<component type="desktop-application">
<id>io.unom.Punktfunk</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT OR Apache-2.0</project_license>
<name>Punktfunk</name>
<summary>Low-latency desktop and game streaming client</summary>
<description>
<p>
Punktfunk is the native Linux client for the punktfunk low-latency desktop and game
streaming stack. It discovers hosts on the LAN over mDNS, trusts them via certificate
pinning with a SPAKE2 PIN pairing ceremony, and streams HEVC video (GF(2^16) Leopard
FEC plus AES-GCM over UDP, with a QUIC control plane) at exactly the requested
resolution and refresh rate — no scaling.
</p>
<p>Features:</p>
<ul>
<li>Hardware-accelerated HEVC decode (VAAPI zero-copy on AMD and Intel, software fallback)</li>
<li>PipeWire audio playback and microphone uplink</li>
<li>Full gamepad support including DualSense touchpad, motion, adaptive triggers and lightbar (SDL3)</li>
<li>LAN host discovery, TOFU fingerprint pinning and PIN pairing</li>
</ul>
</description>
<launchable type="desktop-id">io.unom.Punktfunk.desktop</launchable>
<categories>
<category>Network</category>
<category>Game</category>
<category>RemoteAccess</category>
</categories>
<keywords>
<keyword>streaming</keyword>
<keyword>remote</keyword>
<keyword>game</keyword>
<keyword>moonlight</keyword>
</keywords>
<url type="homepage">https://git.unom.io/unom/punktfunk</url>
<url type="bugtracker">https://git.unom.io/unom/punktfunk/issues</url>
<url type="vcs-browser">https://git.unom.io/unom/punktfunk</url>
<developer id="io.unom">
<name>unom</name>
</developer>
<content_rating type="oars-1.1"/>
<branding>
<color type="primary" scheme_preference="light">#a79ff8</color>
<color type="primary" scheme_preference="dark">#6c5bf3</color>
</branding>
<!-- Bump on each release; the version/date should track the published bundle. -->
<releases>
<release version="0.0.1" date="2026-06-15">
<description>
<p>Initial flatpak packaging of the native Linux client for the Steam Deck and Wayland desktops.</p>
</description>
</release>
</releases>
</component>