# QBZ (Slint) — arm64 Snap recipe that PACKAGES A PRE-BUILT BINARY (plugin: dump). # # arm64 sibling of snapcraft.yaml (amd64). Differences vs the amd64 recipe: # - platforms: arm64 # - the alsa-lib layout bind points at the aarch64 multiarch dir. # Everything else (apps/plugs/slots/stage-packages) is identical; stage-packages # resolve to arm64 automatically on the arm64 runner. Keep the runtime sections # in sync with snapcraft.yaml (amd64) and the root snapcraft.yaml. # # release-snap.yml's arm64 track stages the prebuilt aarch64 qbz binary under # ./snap-payload/, copies THIS file to snap/snapcraft.yaml, stamps `version:` # from the tag, and runs `snapcraft` on a native ubuntu-24.04-arm runner # (plugin: dump → no compilation). name: qbz-player # keep the existing registered Snap Store name title: "QBZ — Native Qobuz Client for Linux" version: '0.0.0' # OVERWRITTEN by release-snap.yml from the tag (sed) summary: Native Qobuz player for Linux with bit-perfect audio and DAC control description: | QBZ is a native Linux desktop client for Qobuz(TM), built for high-fidelity playback with a native audio pipeline (direct ALSA and PipeWire), bit-perfect output, exclusive device access, and per-track sample-rate switching for external DACs — up to 24-bit / 192 kHz. This is the native (Slint) build: a single self-contained binary, no web runtime. Features: native Qobuz(TM) streaming, bit-perfect ALSA exclusive mode, DAC passthrough, Hi-Res FLAC, queue/playlists/favorites/offline cache, local library, Chromecast and DLNA, MPRIS media keys and desktop integration. QBZ uses the Qobuz(TM) API but is not affiliated with, endorsed by, or certified by Qobuz. license: MIT contact: https://github.com/vicrodh/qbz/discussions website: https://qbz.lol source-code: https://github.com/vicrodh/qbz issues: https://github.com/vicrodh/qbz/issues grade: stable confinement: strict base: core24 icon: packaging/snap/snap/gui/qbz.png platforms: arm64: # ALSA config/plugin binds: without these the snap's alsa-lib cannot find the # host's ALSA configuration and plugin set, and the direct hw: (bit-perfect) # path breaks. aarch64 multiarch dir here (vs x86_64 in the amd64 recipe). layout: /usr/share/alsa: bind: $SNAP/usr/share/alsa /etc/alsa: bind: $SNAP/etc/alsa /usr/lib/aarch64-linux-gnu/alsa-lib: bind: $SNAP/usr/lib/aarch64-linux-gnu/alsa-lib apps: qbz: command: bin/qbz desktop: usr/share/applications/qbz.desktop # The gnome extension provides the graphics/font platform (Mesa GL, EGL, # fontconfig, wayland) that a femtovg-wgpu + winit app needs — it is NOT # about GTK here, just the runtime platform. It wires desktop/wayland/x11/ # gsettings plugs automatically. extensions: [gnome] plugs: - network - network-status - audio-playback - home - removable-media - alsa - pipewire - opengl slots: - mpris slots: mpris: interface: mpris name: qbz parts: qbz: plugin: dump # release-snap.yml writes the prebuilt aarch64 binary + desktop + icon here: source: ./snap-payload organize: qbz: bin/qbz qbz.desktop: usr/share/applications/qbz.desktop qbz.png: usr/share/icons/hicolor/256x256/apps/qbz.png stage-packages: # Audio (the bit-perfect path) - libasound2t64 - libasound2-plugins - libpipewire-0.3-0 - libjack-jackd2-0 # TLS / HTTP - libssl3t64 # GPU stack for femtovg-wgpu (Vulkan first, GL fallback). The gnome # extension ships Mesa GL; add the Vulkan ICD + loader explicitly since # wgpu prefers Vulkan and the platform may not expose the ICD. - libvulkan1 - mesa-vulkan-drivers - libegl1 - libgl1 # winit windowing (Wayland + X11) - libwayland-client0 - libwayland-cursor0 - libwayland-egl1 - libxkbcommon0 - libxcb1 - libx11-6 - libxcursor1 - libxi6 - libxrandr2 # Fonts / text shaping (femtovg) - libfontconfig1 - libfreetype6 # Tray (ksni) + portals + media controls over D-Bus - libdbus-1-3