# QBZ Snap package configuration name: qbz version: '1.1.8' summary: Native Qobuz client for Linux with bit-perfect audio description: | QBZ is a native Qobuz streaming client for Linux, designed for audiophiles who need bit-perfect playback without browser sample rate limitations. Features: - Bit-perfect hi-res audio playback (up to 192kHz/24-bit) - DAC Passthrough for automatic sample rate switching - ALSA Direct backend for exclusive hardware access - PipeWire and PulseAudio support - Last.fm scrobbling - Chromecast and DLNA casting - Offline mode with local library support grade: stable confinement: strict base: core22 icon: snap/gui/qbz.png architectures: - build-on: amd64 apps: qbz: command: bin/qbz desktop: snap/gui/qbz.desktop extensions: [gnome] plugs: - network - audio-playback - home - removable-media - desktop - desktop-legacy - wayland - x11 - unity7 - gsettings - pulseaudio - alsa parts: qbz: plugin: rust source: https://github.com/vicrodh/qbz.git source-tag: v1.1.8 build-packages: - libwebkit2gtk-4.1-dev - libgtk-3-dev - libayatana-appindicator3-dev - librsvg2-dev - patchelf - libssl-dev - libasound2-dev - pkg-config # alsa-utils for aplay command (device enumeration) - alsa-utils stage-packages: - libwebkit2gtk-4.1-0 - libgtk-3-0 - libayatana-appindicator3-1 - libasound2 - libssl3 # Include alsa-utils in the snap for aplay -L command - alsa-utils override-build: | # Install Node.js for frontend build curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs # Build frontend npm ci npm run build # Build Tauri backend cargo build --release --manifest-path src-tauri/Cargo.toml # Install binary mkdir -p $SNAPCRAFT_PART_INSTALL/bin cp src-tauri/target/release/qbz-nix $SNAPCRAFT_PART_INSTALL/bin/qbz