Files
qbz/packaging/gentoo/qbz.ebuild.template
T
vicrodh 6f230382b0 fix(gentoo): use npx tauri build in ebuild template
cargo build alone doesn't embed the frontend. npx tauri build
--no-bundle handles the full build pipeline correctly.

cc
2026-04-05 11:24:14 -06:00

92 lines
1.9 KiB
Plaintext

# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the MIT License
EAPI=8
inherit xdg
DESCRIPTION="Native hi-fi Qobuz desktop player for Linux"
HOMEPAGE="https://qbz.lol https://github.com/vicrodh/qbz"
MY_PV="${PV}"
SRC_URI="https://github.com/vicrodh/qbz/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
IUSE="pipewire pulseaudio"
RESTRICT="mirror network-sandbox"
RDEPEND="
net-libs/webkit-gtk:4.1
x11-libs/gtk+:3
media-libs/alsa-lib
dev-libs/openssl
dev-libs/libayatana-appindicator
x11-libs/libxkbcommon
gnome-base/librsvg:2
pipewire? (
media-video/pipewire[pipewire-alsa]
)
pulseaudio? (
media-libs/libpulse
)
"
BDEPEND="
dev-lang/rust
net-libs/nodejs[npm]
llvm-core/clang
virtual/pkgconfig
"
PDEPEND="
media-sound/alsa-utils
"
S="${WORKDIR}/qbz-${MY_PV}"
src_compile() {
npm ci || die "npm ci failed"
npx tauri build --no-bundle || die "tauri build failed"
}
src_install() {
dobin "src-tauri/target/release/qbz"
insinto /usr/share/applications
newins packaging/arch/qbz.desktop qbz.desktop
local size
for size in 32 48 64 128 256; do
local src_icon="src-tauri/icons/${size}x${size}.png"
if [[ -f "${src_icon}" ]]; then
insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
newins "${src_icon}" qbz.png
fi
done
local fallback="src-tauri/icons/128x128.png"
for size in 48 64; do
if [[ ! -f "src-tauri/icons/${size}x${size}.png" ]]; then
insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
newins "${fallback}" qbz.png
fi
done
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
elog "For bit-perfect audio playback, ensure your user is in the 'audio' group:"
elog " usermod -aG audio \${USER}"
elog ""
elog "Optional: install media-sound/alsa-utils for better ALSA device detection."
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
}