ci(snap): add an arm64 track to release-snap (native runner, dump repack)
Both arches now publish from CI: the existing amd64 track plus a new build-binary-arm64 (native ubuntu-24.04-arm, free for public repos, reuses release-linux-aarch64's cargo cache) -> snap-arm64 that dumps the prebuilt aarch64 binary with packaging/snap-slint/snapcraft-arm64.yaml. This CI upload is the sole publish path; Launchpad / "Build from GitHub" is not used. cc
This commit is contained in:
2 files changed
+258
-12
No files matched your search
@@ -0,0 +1,122 @@
|
||||
# QBZ (Slint) — arm64 Snap recipe that PACKAGES A PRE-BUILT BINARY (plugin: dump).
|
||||
#
|
||||
# arm64 sibling of snapcraft.yaml (amd64). Differences vs the amd64 recipe:
|
||||
# - platforms: arm64
|
||||
# - the alsa-lib layout bind points at the aarch64 multiarch dir.
|
||||
# Everything else (apps/plugs/slots/stage-packages) is identical; stage-packages
|
||||
# resolve to arm64 automatically on the arm64 runner. Keep the runtime sections
|
||||
# in sync with snapcraft.yaml (amd64) and the root snapcraft.yaml.
|
||||
#
|
||||
# release-snap.yml's arm64 track stages the prebuilt aarch64 qbz binary under
|
||||
# ./snap-payload/, copies THIS file to snap/snapcraft.yaml, stamps `version:`
|
||||
# from the tag, and runs `snapcraft` on a native ubuntu-24.04-arm runner
|
||||
# (plugin: dump → no compilation).
|
||||
|
||||
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.
|
||||
|
||||
This is the native (Slint) build: a single self-contained binary, no web
|
||||
runtime. Features: native Qobuz(TM) streaming, bit-perfect ALSA exclusive
|
||||
mode, DAC passthrough, Hi-Res FLAC, queue/playlists/favorites/offline cache,
|
||||
local library, 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. aarch64 multiarch dir here (vs x86_64 in the amd64 recipe).
|
||||
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: bin/qbz
|
||||
desktop: usr/share/applications/qbz.desktop
|
||||
# The gnome extension provides the graphics/font platform (Mesa GL, EGL,
|
||||
# fontconfig, wayland) that a femtovg-wgpu + winit app needs — it is NOT
|
||||
# about GTK here, just the runtime platform. It wires desktop/wayland/x11/
|
||||
# gsettings plugs automatically.
|
||||
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 the prebuilt aarch64 binary + desktop + icon here:
|
||||
source: ./snap-payload
|
||||
organize:
|
||||
qbz: bin/qbz
|
||||
qbz.desktop: usr/share/applications/qbz.desktop
|
||||
qbz.png: usr/share/icons/hicolor/256x256/apps/qbz.png
|
||||
stage-packages:
|
||||
# Audio (the bit-perfect path)
|
||||
- libasound2t64
|
||||
- libasound2-plugins
|
||||
- libpipewire-0.3-0
|
||||
- libjack-jackd2-0
|
||||
# TLS / HTTP
|
||||
- libssl3t64
|
||||
# GPU stack for femtovg-wgpu (Vulkan first, GL fallback). The gnome
|
||||
# extension ships Mesa GL; add the Vulkan ICD + loader explicitly since
|
||||
# wgpu prefers Vulkan and the platform may not expose the ICD.
|
||||
- libvulkan1
|
||||
- mesa-vulkan-drivers
|
||||
- libegl1
|
||||
- libgl1
|
||||
# winit windowing (Wayland + X11)
|
||||
- libwayland-client0
|
||||
- libwayland-cursor0
|
||||
- libwayland-egl1
|
||||
- libxkbcommon0
|
||||
- libxcb1
|
||||
- libx11-6
|
||||
- libxcursor1
|
||||
- libxi6
|
||||
- libxrandr2
|
||||
# Fonts / text shaping (femtovg)
|
||||
- libfontconfig1
|
||||
- libfreetype6
|
||||
# Tray (ksni) + portals + media controls over D-Bus
|
||||
- libdbus-1-3
|
||||
Reference in new issue
Block a user