fix(packaging/arch): a client that never speaks Pulse must not demand the Pulse shim
`punktfunk-client` hard-depended on `pipewire-pulse`, which CONFLICTS with
`pulseaudio` — so anyone keeping real PulseAudio could not install the client at
all ("unresolvable package conflicts detected"), even though the client has no
use for the shim: audio.rs drives libpipewire-0.3 directly for both playback and
the mic uplink, and never opens a Pulse socket. Dropped it from the client.
The host doesn't speak Pulse either — it captures the sink monitor natively — but
the shim is genuinely useful there, for the GAMES, which commonly emit through
the PulseAudio API. That's an optdepend, and one real `pulseaudio` satisfies just
as well, so the host stops blocking that choice too.
Both now match what the .deb and the RPM already said (Recommends / "degrade
gracefully without it"); only the Arch package had hardened it into a conflict.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-3
@@ -126,9 +126,14 @@ package_punktfunk-host() {
|
||||
pkgdesc="Low-latency desktop/game streaming HOST (Moonlight-compatible + punktfunk/1)"
|
||||
# NVENC + GPU EGL/CUDA come from the NVIDIA driver (nvidia-utils) — kept an optdepend, never a
|
||||
# hard dep, exactly as the RPM (__requires_exclude libcuda) and deb (shlibdeps filter) do.
|
||||
depends=('ffmpeg' 'pipewire' 'pipewire-pulse' 'wireplumber' 'opus' 'libei'
|
||||
# The host captures the sink monitor through NATIVE PipeWire (audio/linux.rs) — it never
|
||||
# opens a Pulse socket itself, so pipewire-pulse is an OPTdepend, not a depend: it exists
|
||||
# for the GAMES, which commonly emit through the PulseAudio API. Hard-depending on it made
|
||||
# the package uninstallable next to real `pulseaudio`, which serves those games just as well.
|
||||
depends=('ffmpeg' 'pipewire' 'wireplumber' 'opus' 'libei'
|
||||
'mesa' 'libglvnd' 'libxkbcommon' 'wayland')
|
||||
optdepends=('nvidia-utils: NVENC hardware encode + GPU EGL/CUDA zero-copy (REQUIRED to encode on NVIDIA)'
|
||||
optdepends=('pipewire-pulse: PulseAudio-API audio from games/apps (real `pulseaudio` also works)'
|
||||
'nvidia-utils: NVENC hardware encode + GPU EGL/CUDA zero-copy (REQUIRED to encode on NVIDIA)'
|
||||
'gamescope: per-session nested compositor backend (no desktop login needed) — needs >=3.16.22'
|
||||
'kwin: stream a KDE Plasma desktop (kwin VirtualDisplay backend)'
|
||||
'mutter: stream a GNOME desktop (Mutter RecordVirtual backend)'
|
||||
@@ -227,7 +232,12 @@ package_punktfunk-client() {
|
||||
# The GTK4/libadwaita shell + its Vulkan session streamer: SDL3 gamepads, FFmpeg (VAAPI +
|
||||
# Vulkan Video) decode, PipeWire audio/mic. vulkan-icd-loader: the session binary loads
|
||||
# libvulkan at runtime (ash) for its ash/Skia presenter.
|
||||
depends=('gtk4' 'libadwaita' 'sdl3' 'ffmpeg' 'pipewire' 'wireplumber' 'pipewire-pulse'
|
||||
# NOT pipewire-pulse: the client speaks NATIVE PipeWire (audio.rs drives libpipewire-0.3
|
||||
# directly for both playback and the mic uplink) and never opens a Pulse socket, so the
|
||||
# compat shim buys it nothing — while `pipewire-pulse` CONFLICTS with `pulseaudio`, which
|
||||
# made the package uninstallable for anyone keeping real PulseAudio. Matches the .deb
|
||||
# (Recommends) and the RPM (Recommends, "degrade gracefully without it").
|
||||
depends=('gtk4' 'libadwaita' 'sdl3' 'ffmpeg' 'pipewire' 'wireplumber'
|
||||
'opus' 'libglvnd' 'vulkan-icd-loader')
|
||||
optdepends=('libva-mesa-driver: VAAPI hardware decode on AMD (incl. Steam Deck); software fallback otherwise'
|
||||
'intel-media-driver: VAAPI hardware decode on Intel'
|
||||
|
||||
@@ -107,7 +107,8 @@ NVENC/EGL come from the NVIDIA driver: `sudo pacman -S --needed nvidia-utils`. A
|
||||
| Need | Arch package |
|
||||
|------|--------------|
|
||||
| FFmpeg + NVENC | `ffmpeg` (NVENC built in) |
|
||||
| PipeWire + Pulse + session mgr | `pipewire` `pipewire-pulse` `wireplumber` |
|
||||
| PipeWire + session mgr | `pipewire` `wireplumber` |
|
||||
| PulseAudio-API audio for games | `pipewire-pulse` *(host optdepend — real `pulseaudio` also works; never a hard dep, it CONFLICTS with `pulseaudio`)* |
|
||||
| Opus / input injection | `opus` `libei` |
|
||||
| GL/EGL + gbm + xkb + wayland | `libglvnd` `mesa` `libxkbcommon` `wayland` |
|
||||
| NVIDIA driver (NVENC/EGL/CUDA) | `nvidia-utils` *(optdepend — never a hard dep)* |
|
||||
|
||||
Reference in New Issue
Block a user