Files
qbz/packaging/snap/snapcraft.yaml
T
vicrodh 7091c64d56 Add alsa-utils to all package formats with appropriate handling
AUR (Arch Linux):
- Added to optdepends: 'alsa-utils: Better ALSA device names and descriptions'
- Users get notification to install, but not required

Flatpak:
- Included alsa-utils module in bundle (builds from source)
- Version 1.2.12 from alsa-project.org
- Sandboxed environment can now execute aplay -L internally
- Disabled alsamixer and xmlto (not needed, reduces size)
- Users get real device descriptions automatically

Snap (future - not yet implemented):
- Created snapcraft.yaml template
- stage-packages includes alsa-utils
- Will be bundled when Snap support is implemented

AppImage (future - not yet implemented):
- Created README.md documenting dependencies
- AppImage uses host system commands (aplay from host)
- Users need to install alsa-utils on their system
- Fallback to CPAL works if not installed

Summary by format:
- .deb/.rpm: Recommends alsa-utils (auto-installed, can be removed)
- AUR: optdepends (user notified, optional)
- Flatpak: Bundled (always available)
- Snap: Will be bundled (future)
- AppImage: Host dependency (user installs)
2026-01-17 20:04:29 -06:00

83 lines
1.9 KiB
YAML

# QBZ Snap package configuration
# NOTE: Not yet implemented - this is a template for future use
name: qbz
version: '1.1.5'
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
architectures:
- build-on: amd64
apps:
qbz:
command: bin/qbz
extensions: [gnome]
plugs:
- network
- audio-playback
- home
- removable-media
- desktop
- desktop-legacy
- wayland
- x11
- unity7
- gsettings
- pulseaudio
- alsa
parts:
qbz:
plugin: rust
source: ../..
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
# Install binary
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
cp target/release/qbz-nix $SNAPCRAFT_PART_INSTALL/bin/qbz