chore(packaging): canonical icons, desktop file, and nfpm config

Icons and qbz.desktop move to packaging/ so packagers stop depending
on the retired src-tauri tree. New nfpm.yaml builds deb/rpm from the
prebuilt binary: deps are the measured ldd set (t64 alternatives on
deb, soname requires on rpm), display/GPU stack as recommends.

cc
This commit is contained in:
vicrodh committed 2026-07-02 10:11:16 -06:00
1 parent 6e6153b2ef
commit 9de3c19468
11 files changed
+115

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

+11
View File
@@ -0,0 +1,11 @@
# Canonical app icons
Canonical icon source for every Linux/macOS packager (nfpm deb/rpm, AppImage,
tarball, flatpak, snap, ebuilds, PKGBUILDs). Copied out of `src-tauri/icons/`
on 2026-07-02 so packaging stops depending on the retired Tauri tree —
`src-tauri/` is reference-only and will eventually be deleted.
- `NNxNN.png` — hicolor sizes (32/48/64/128/256/512, plus `128x128@2x`)
- `icon.icns` — macOS bundle icon
If the artwork ever changes, update BOTH copies (or delete the src-tauri one).
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
[Desktop Entry]
Name=QBZ
Comment=Native Qobuz client with hi-res audio support
Exec=qbz %u
Icon=qbz
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Music;Player;
Keywords=music;audio;qobuz;hifi;streaming;audiophile;flac;
StartupWMClass=com.blitzfc.qbz
StartupNotify=true
MimeType=x-scheme-handler/qbz;x-scheme-handler/qobuzapp;
+92
View File
@@ -0,0 +1,92 @@
# nfpm config — builds .deb and .rpm from the prebuilt Slint binary.
# Used by release-linux(.yml/-aarch64.yml): nfpm package -f this-file -p deb|rpm
#
# Interpolated env (exported by the workflow):
# QBZ_VERSION release version without the v prefix (e.g. 2.0.0)
# QBZ_ARCH deb-style arch: amd64 | arm64
# QBZ_BINARY path to the stripped release binary (crates/target/.../qbz)
#
# Runtime deps are the MEASURED `ldd` set of the Slint binary (2026-07-02):
# alsa, fontconfig, freetype, png16, bz2, expat, zlib. The wayland/x11/GL/
# dbus/xkbcommon stack is dlopen'd by winit/glutin/wgpu at runtime, so it
# goes in Recommends — missing pieces degrade (e.g. X11 fallback) instead of
# blocking install on unusual setups.
name: qbz
arch: ${QBZ_ARCH}
platform: linux
version: ${QBZ_VERSION}
section: sound
priority: optional
maintainer: Victor Rodriguez <vicrodh@users.noreply.github.com>
description: |
Native Qobuz client with hi-res audio support.
Bit-perfect playback, DAC passthrough, offline cache, local library.
vendor: QBZ
homepage: https://github.com/vicrodh/qbz
license: MIT
contents:
- src: ${QBZ_BINARY}
dst: /usr/bin/qbz
file_info:
mode: 0755
- src: packaging/linux/qbz.desktop
dst: /usr/share/applications/qbz.desktop
- src: packaging/flatpak/com.blitzfc.qbz.metainfo.xml
dst: /usr/share/metainfo/com.blitzfc.qbz.metainfo.xml
- src: packaging/icons/32x32.png
dst: /usr/share/icons/hicolor/32x32/apps/qbz.png
- src: packaging/icons/48x48.png
dst: /usr/share/icons/hicolor/48x48/apps/qbz.png
- src: packaging/icons/64x64.png
dst: /usr/share/icons/hicolor/64x64/apps/qbz.png
- src: packaging/icons/128x128.png
dst: /usr/share/icons/hicolor/128x128/apps/qbz.png
- src: packaging/icons/256x256.png
dst: /usr/share/icons/hicolor/256x256/apps/qbz.png
- src: packaging/icons/512x512.png
dst: /usr/share/icons/hicolor/512x512/apps/qbz.png
overrides:
deb:
depends:
# t64 alternatives cover Ubuntu 24.04+'s time_t64 renames.
- libasound2 | libasound2t64
- libfontconfig1
- libfreetype6
- libpng16-16 | libpng16-16t64
- libbz2-1.0
- libexpat1
- zlib1g
recommends:
- libwayland-client0
- libxkbcommon0
- libegl1
- libgl1
- libdbus-1-3
- libxcb1
- pipewire
rpm:
depends:
# Soname-level requires survive package renames across Fedora/openSUSE
# (e.g. zlib -> zlib-ng-compat) — every distro Provides the soname.
- libasound.so.2()(64bit)
- libfontconfig.so.1()(64bit)
- libfreetype.so.6()(64bit)
- libpng16.so.16()(64bit)
- libbz2.so.1()(64bit)
- libexpat.so.1()(64bit)
- libz.so.1()(64bit)
recommends:
- libxkbcommon
- libwayland-client
- dbus-libs
- pipewire
rpm:
group: Applications/Multimedia
compression: zstd
deb:
compression: zstd