Parse resilient SACD images, decode DST, scan ISO releases into the local library, and keep explicit opens ephemeral. Ship decoder notices across distribution formats and align DSD album filtering and version selection. cx
113 lines
4.1 KiB
YAML
113 lines
4.1 KiB
YAML
# QBZ (Qt) — arm64 Snap recipe that PACKAGES THE PRE-BUILT AppDir (plugin: dump).
|
|
#
|
|
# release-snap.yml gets the self-contained AppDir from build-qt-linux.yml
|
|
# (the qbz binary + the Qt libraries + platform/QML plugins + qt.conf), stages
|
|
# it under ./snap-payload/ with the .desktop and icon, stamps `version:` from
|
|
# the tag, and runs `snapcraft` — NO compilation here.
|
|
#
|
|
# WHY THE AppDir AND NOT THE BARE BINARY (2026-08-25): the tree needs Qt >= 6.8
|
|
# and core24 = Ubuntu 24.04 = Qt 6.4.2 without QtQuick.Effects, so neither
|
|
# stage-packages nor a source build (the old root snapcraft.yaml, deleted) can
|
|
# provide Qt. The gnome extension stays for the desktop platform plugs and the
|
|
# GL/Wayland runtime; Qt itself rides in $SNAP/opt/qbz. qt.conf (Prefix=../)
|
|
# and the $ORIGIN RPATH make that tree relocatable with no env.
|
|
#
|
|
# snapcraft.yaml (amd64) is this file with platforms/alsa-lib paths swapped.
|
|
|
|
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.
|
|
|
|
A single native process with a Qt/QML interface, no web runtime. Features:
|
|
native Qobuz(TM) streaming, bit-perfect ALSA exclusive mode, DAC passthrough,
|
|
Hi-Res FLAC, DSD, CD/SACD playback, queue/playlists/favorites/offline cache,
|
|
local library plus Plex, Jellyfin and Subsonic servers, 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.
|
|
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: opt/qbz/bin/qbz
|
|
desktop: usr/share/applications/qbz.desktop
|
|
# The gnome extension provides the graphics platform (Mesa GL, EGL,
|
|
# wayland, fontconfig) and wires desktop/wayland/x11/gsettings plugs.
|
|
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 AppDir/usr/{bin,lib,plugins,qml} + desktop + icon here:
|
|
source: ./snap-payload
|
|
organize:
|
|
bin: opt/qbz/bin
|
|
lib: opt/qbz/lib
|
|
plugins: opt/qbz/plugins
|
|
qml: opt/qbz/qml
|
|
qbz.desktop: usr/share/applications/qbz.desktop
|
|
qbz.png: usr/share/icons/hicolor/256x256/apps/qbz.png
|
|
LICENSE: usr/share/licenses/qbz/LICENSE
|
|
licenses: usr/share/licenses/qbz/third-party
|
|
# Runtime the AppDir does NOT carry. The AppDir contains Qt/QML, D-Bus and
|
|
# the non-system xcb/Wayland helpers selected by linuxdeploy; the GNOME
|
|
# extension supplies the host graphics, display and font stack. Keep this
|
|
# list to the audio helpers QBZ opens by name.
|
|
stage-packages:
|
|
# Audio (the bit-perfect path)
|
|
- libasound2t64
|
|
- libasound2-plugins
|
|
# Keep the runtime tools used by PipeWireBackend in both architectures.
|
|
# They expose host sinks (including Bluetooth) and permit explicit sink
|
|
# routing inside the connected strict Snap sandbox (#703).
|
|
- pipewire-bin
|
|
- pulseaudio-utils
|
|
- libjack-jackd2-0
|