Commit Graph
14 Commits
Author SHA1 Message Date
vicrodh 4bb4982312 feat(sacd): support raw and DST-compressed ISO playback
Parse resilient SACD images, decode DST, scan ISO releases into the local library, and keep explicit opens ephemeral.

Ship decoder notices across distribution formats and align DSD album filtering and version selection.

cx
2026-09-05 10:00:24 -06:00
vicrodh a9a849c1ec fix(packaging): harden Snap release inputs
cx
2026-09-04 09:16:10 -06:00
vicrodh 351f9786a9 ci(storage): shorten preflight artifact retention
cx
2026-08-28 10:12:08 -06:00
vicrodh 2a2c2fb2ea fix(ci): make Snap preflights safe and reproducible
cx
2026-08-28 09:44:25 -06:00
vicrodh 89030b5b2a ci: snap packs the AppDir; remove the Launchpad source recipe
core24 ships Qt 6.4.2 and the tree needs 6.8, so neither stage-packages
nor a remote source build can provide Qt: the dump recipe now takes the
AppDir tree from build-qt-linux.yml (both arches) and the root
snapcraft.yaml plus its packaging/snap symlink are deleted. snap-slint
becomes snap-qt with the non-Qt runtime only.

cc
2026-08-26 19:11:01 -06:00
vicrodh 6620dd769b chore(deps): bump actions/upload-artifact from 4 to 7
cc
2026-07-17 20:14:25 -06:00
vicrodh 0692048833 chore(deps): bump actions/download-artifact from 4 to 8
cc
2026-07-17 20:14:18 -06:00
vicrodh 0f829ab62f chore(deps): bump actions/checkout from 4 to 7
cc
2026-07-17 20:14:06 -06:00
vicrodh 235bad253a ci(snap): skip the Snap Store publish when no store credentials are set
The publish step failed the whole run with "login_data is empty" when
SNAPCRAFT_STORE_CREDENTIALS is unset, even though both binaries compiled and
the amd64 snap packed fine. Move the secret to job level and gate the publish
step on it: with no secret the snap is still built and uploaded as an artifact,
publish is skipped (green run) instead of failing. Applies to both arches.

cc
2026-07-09 10:13:02 -06:00
vicrodh 207d928fd8 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
2026-07-09 08:13:58 -06:00
vicrodh 395e537b59 fix(build): drop compile-time x86 target-features — runtime AES dispatch
Users on CPUs without AES-NI (Nehalem i7-860, pre-2010 Intel Macs) or
without SSSE3 (AMD Phenom II) crashed at launch with SIGILL. The
global `-C target-feature=+aes,+ssse3` was kept after the #353/#343
x86-64-v3 incident on the belief that the aes crate's cpufeatures
runtime check would protect CPUs without AES-NI — but a compile-time
target feature makes cpufeatures compile its check to a constant, so
the AES-NI intrinsics ran unconditionally (credentials AES-GCM decrypt
at startup), and +ssse3 let LLVM autovectorize anywhere, breaking
Phenom II. Measured on the qbz-cmaf hot path (Ctr128BE<Aes128>
apply_keystream, 256 MB, release): 2145 MB/s compiled-in vs 2162 MB/s
runtime-dispatched, identical output — the flags bought nothing on
capable CPUs. Removed from .cargo/config.toml, all dev/build scripts
and the release/build workflows; old CPUs now get the software AES
fallback instead of a crash.

Fixes #549

cc
2026-07-05 14:17:46 -06:00
vicrodh 1e521a182f fix(ci): stop snapcraft resolving the root source-build recipe
The root snapcraft.yaml (source build, kept for Snap Store remote
builders) shadowed the staged snap/snapcraft.yaml dump recipe, so the
v2.0.0 snap job recompiled the entire workspace inside LXD and the
container OOM'd. Remove the root recipes from the CI working copy
before invoking snapcraft.

cc
2026-07-04 13:07:41 -06:00
vicrodh 3fa1334bb3 fix(ci): raise the snap packaging job timeout to 90 minutes
The v2.0.0 tag run was cancelled at exactly 30 minutes with snapcraft's
LXD build still running. The job does no compilation, but container
bootstrap plus platform snap downloads on public runners routinely
exceed the old budget.

cc
2026-07-04 10:54:10 -06:00
vicrodh 77a476c8e7 ci(snap): all-hosted Snap pipeline for the Slint build (dump prebuilt binary)
The dev box is Gentoo/OpenRC with no systemd, hence no snapd, so it cannot
build or upload snaps. This pipeline keeps everything on GitHub-hosted Ubuntu
runners (which have snapd) instead:

- packaging/snap-slint/snapcraft.yaml: a `plugin: dump` recipe that packages a
  PRE-BUILT qbz binary (no compilation), with the Slint runtime stack
  (Vulkan/GL via the gnome extension, winit Wayland/X11, alsa/pipewire, mpris).
  Kept separate from the Tauri snapcraft.yaml so neither clobbers the other.
- .github/workflows/release-snap.yml: job 1 compiles the binary on a 16 GB
  runner using the same MIN-tier + 18 GB swap recipe as build-slint.yml; job 2
  downloads it and runs snapcraft `dump` + snapcore/action-publish. The heavy
  compile is on a free public runner; the snap packaging is on a runner that
  has snapd — neither touches the OpenRC box.

Requires the SNAPCRAFT_STORE_CREDENTIALS secret (generate once via
`snapcraft export-login` on any snapd-capable host). The runtime confinement
(stage-packages/plugs for the non-GTK GPU stack) is a first cut and will need a
real `snapcraft build` + `snap run` on the runner to finalize; it cannot be
tested locally without snapd.

cc
2026-06-26 08:32:26 -06:00