Commit Graph
79 Commits
Author SHA1 Message Date
vicrodh c63799309f fix(ci): use native ARM64 runner instead of QEMU for aarch64 build
QEMU emulation crashes compiling ring's C code (SIGSEGV in cc).
Switch to ubuntu-24.04-arm native runner — faster and no emulation
issues. Build time drops from ~40min to ~5min.

cc
2026-04-09 11:19:52 -06:00
vicrodh dd322a1804 fix(ci): use QEMU native build for aarch64 instead of cross-compile
Ubuntu runners' apt multi-arch is broken for arm64 cross-deps
(security.ubuntu.com 404s for arm64 packages, DEB822 format
sources not handled by sed).

Switch to uraimo/run-on-arch-action: builds natively inside a
Debian Bookworm aarch64 container via QEMU. Slower (~15 min)
but reliable. Binary is native aarch64 with Bookworm's glibc 2.36.

cc
2026-04-09 07:28:48 -06:00
vicrodh 1cba3ec18b fix(ci): force all apt sources to amd64, arm64 from ports only
The sed was only modifying /etc/apt/sources.list but security.ubuntu.com
and other sources in sources.list.d/ were also trying to fetch arm64
packages from repos that don't have them (404).

Now: force [arch=amd64] on ALL .list files, arm64 exclusively from
ports.ubuntu.com.

cc
2026-04-09 07:16:37 -06:00
vicrodh 22a34b4f3e fix(ci): target glibc 2.35 instead of 2.31
glibc 2.31 is too old for system shared libs (libasound, libdbus)
on Ubuntu 22.04 runners which have glibc 2.35. The linker rejects
symbols from libs compiled against newer glibc.

glibc 2.35 covers: Raspberry Pi OS Bookworm (2.36), Ubuntu 22.04+,
Armbian Bookworm, DietPi Bookworm. Bullseye (2.31) is EOL June 2026.

cc
2026-04-09 07:08:22 -06:00
vicrodh 7a522623cf fix(ci): add libdbus-1-dev, fix arm64 apt sources, add strip
x86_64: add libdbus-1-dev for keyring D-Bus dependency
aarch64: fix apt sources with jammy-updates, proper arch restrictions
Both: strip binaries for smaller release size (~23 MB vs 30 MB)

cc
2026-04-09 06:57:12 -06:00
vicrodh c3ce3c6667 fix(ci): drop openssl dependency, use rustls-only for all crates
reqwest default features included native-tls which pulled in
openssl-sys. This broke zigbuild cross-compilation because zig's
C compiler doesn't support the glibc version suffix for openssl
header expansion.

Fix: default-features = false on reqwest in workspace and
qbz-integrations (which had its own reqwest dep with defaults).
Now the entire daemon tree uses rustls-tls exclusively.

cc
2026-04-09 06:48:37 -06:00
vicrodh d042d21622 fix(ci): add libssl-dev + pkg-config to qbzd build
openssl-sys build requires OpenSSL headers even when rustls is the
primary TLS backend (native-tls comes as transitive dependency).

cc
2026-04-09 06:37:11 -06:00
vicrodh 8cee1c60be ci(qbzd): fix workflow paths, add cache, track Cargo.lock
Fixes:
- Rust cache via Swatinem/rust-cache (workspaces: crates -> target)
- Track crates/Cargo.lock for reproducible builds
- Bundle service files in release tarball
- Add permissions: contents: write for release job
- generate_release_notes for auto changelog

Local release build verified: 30 MB (23 MB stripped), x86_64.

cc
2026-04-09 06:22:17 -06:00
vicrodh 90769c0537 ci: add qbzd build workflow (x86_64 + aarch64, glibc 2.31)
Uses cargo-zigbuild to target glibc 2.31 for maximum compatibility:
- Raspberry Pi OS Bullseye and newer
- DietPi, Armbian, Ubuntu 22.04+

Triggered by qbzd-v* tags or manual dispatch.
Produces two binaries: qbzd-linux-x86_64, qbzd-linux-aarch64.
Creates pre-release on tag push.

cc
2026-04-09 05:40:41 -06:00
Afonso Jorge Ramos 9823dfb680 fix(macos): enable x86_64 cross-compilation
- Upgrade rust_cast 0.18.1 → 0.21 (switches from openssl to rustls,
  removing the openssl-sys dependency that blocked x86_64 cross-compile)
- Split mupdf sys-lib features to Linux-only (on macOS there are no GTK
  symbol conflicts, and system libs don't support x86_64 cross-compile
  from Apple Silicon)
- Update release-macos workflow to build both aarch64 and x86_64 DMGs
  using a matrix strategy
2026-04-01 02:40:55 +02:00
victorrhgap 1fc4a4d5a9 fix(ci): generate Manifest digests in Gentoo overlay workflow
Ebuilds without matching Manifest hashes cause 'Missing digest'
errors on emerge. Download DIST files and compute BLAKE2B/SHA512
for ebuilds, metadata.xml, and tarballs.

cc
2026-03-25 23:04:15 -06:00
victorrhgap 5ad1179628 ci: add platform triage workflow for issue auto-assign
When a new issue selects macOS as platform, automatically labels it
platform:macos and assigns afonsojramos. Linux issues get labeled
platform:linux.

cc
2026-03-25 13:18:30 -06:00
victorrhgap 00d6d02c0d feat(issues): add platform dropdown to all issue templates
Adds Linux/macOS selection as first field in bug reports, feature
requests, and feedback forms. Adapts Linux-specific fields (DE, display
server) to indicate they are Linux-only and adds macOS options to
install method and audio backend dropdowns.

cc
2026-03-25 13:15:54 -06:00
victorrhgap a25bcb0e76 fix(ci): macOS build aarch64-only, drop x86_64 cross-compile
Cross-compiling x86_64 from aarch64 fails on openssl-sys (no
cross pkg-config). Apple Silicon only — Intel Macs use Rosetta 2.

cc
2026-03-24 20:14:47 -06:00
victorrhgap a347b39e07 fix(ci): use macos-latest for both arch targets
macos-13 runner is deprecated. Use macos-latest (Apple Silicon)
with cross-compilation for x86_64 target.

cc
2026-03-24 20:04:23 -06:00
victorrhgap 052de7fb54 ci: add macOS release workflow (unsigned DMG)
Builds DMG for both Apple Silicon (aarch64) and Intel (x86_64).
Triggered on tag push or manual dispatch. Artifacts uploaded to
GitHub Releases as pre-release.

Unsigned — users bypass Gatekeeper with right-click > Open.

cc
2026-03-24 19:37:10 -06:00
vicrodh 3366c2e8d9 ci(gentoo): use APT_REPO_TOKEN instead of OVERLAY_PAT
cc
2026-03-22 23:10:36 -06:00
vicrodh 346db3785e ci: add release-gentoo workflow for overlay auto-update
Triggered by release-linux completion (same as AUR).
Updates ebuilds in vicrodh/qbz-overlay with new version.
Requires OVERLAY_PAT secret for cross-repo push.

cc
2026-03-22 22:55:49 -06:00
vicrodh 52d724a7e4 Merge branch 'pre-release' 2026-03-19 17:13:37 -06:00
vicrodh f055f53ed5 chore: migrate issue templates from markdown to YAML forms (#171)
Replaces placeholder-text markdown templates with structured YAML
issue forms. Dropdowns for installation method, display server, and
audio backend. Required fields for description, steps, and version.
Same output format when reading submitted issues.

cc
2026-03-19 13:56:44 -06:00
Victor RH ee1459a0f1 Update funding information in FUNDING.yml 2026-03-14 21:07:43 -06:00
vicrodh 264298a949 ci: add dependabot config and PR redirect workflow
- dependabot.yml: target pre-release branch for npm and cargo updates
- redirect-pr-to-prerelease.yml: auto-redirect PRs to main → pre-release
  with a friendly comment explaining the workflow
2026-03-12 10:13:22 -06:00
vicrodh d9d3054921 ci: trigger APT repo update on release publish 2026-03-07 23:03:42 -06:00
vicrodh 90018c6518 chore: remove AUR git and source workflow files
Keep only release-aur.yml (qbz-bin). The git and source
PKGBUILD variants don't need CI workflows.
2026-03-04 20:24:16 -06:00
vicrodh e39eb6fa6f feat(aur): add qbz and qbz-git source-build packages
Add PKGBUILDs and GitHub Actions workflows for:
- qbz: compiles from release source tarball
- qbz-git: compiles from main branch (updates on push)
Fix --bundles none -> --no-bundle for Tauri 2.0 CLI
2026-03-04 12:45:10 -06:00
vicrodh afe086e6fd fix(ci): stabilize rc releases and version flatpak artifact
cx
2026-03-01 19:34:24 -06:00
vicrodh ead36545d3 fix(actions): harden release-aur workflow permissions and input handling
cx
2026-03-01 09:19:37 -06:00
vicrodh 2b15a0828c chore(packaging): unify .desktop files across all formats
- Add flac; keyword to all .desktop files (was only in deb template)
- Add StartupNotify=true to flatpak .desktop files (was missing)
- Add Keywords line to snap .desktop (was missing entirely)
- Unify shortDescription to match other .desktop Comment fields

cc
2026-02-24 09:32:37 -06:00
vicrodh f2e0d6727f fix(ci): add concurrency lock and detached HEAD recovery to AUR workflow
Prevents race conditions when multiple tags trigger simultaneous AUR
pushes. Recovers from corrupted master branch in AUR repo.
2026-02-23 18:33:14 -06:00
vicrodh c380434619 fix(ci): skip RC tags in AUR workflow
Only trigger AUR package update on stable version tags, not release
candidates.

cc
2026-02-19 16:18:47 -06:00
vicrodh 3d497a33b0 fix(desktop): add %u to Exec and complete tarball .desktop for URI handling
The Tauri .desktop template was missing %u in the Exec line, preventing
the desktop environment from passing qobuzapp:// URIs as arguments when
launched from the browser. The tarball .desktop was also missing MimeType,
StartupWMClass, and StartupNotify fields.

Closes #44

cc
2026-02-19 16:17:25 -06:00
vicrodh a6cfa36a8d fix(packaging): compile binary as qbz instead of qbz-nix
Add [[bin]] section to Cargo.toml so cargo produces target/release/qbz
directly. Update all packaging references (workflows, PKGBUILD, Flatpak
manifest, AUR desktop file) to use the new binary name. This fixes DEB
and RPM packages installing the binary as /usr/bin/qbz-nix instead of
/usr/bin/qbz.
2026-02-18 16:45:10 -06:00
vicrodh 2040ca00c4 Fix AUR workflow curl check for GitHub redirects
GitHub returns 302 redirects for release assets, not 200.
Use curl -L to follow redirects and check final status code.
2026-02-12 15:33:26 -06:00
vicrodh 7926e3eaa5 Fix AUR workflow to trigger after release-linux completes
- Change trigger from release:published to workflow_run on release-linux
- Only run if the triggering workflow succeeded
- Increase timeout to 30 minutes for aarch64 build to complete
- Extract version from workflow's head branch (the tag)
2026-02-12 14:37:47 -06:00
vicrodh fbce83adf6 Expand crash log instructions for all installation methods
Include commands for AppImage, AUR/tarball, deb/rpm, and Flatpak.
Add curl one-liner to upload crash log directly to 0x0.st.
2026-02-09 03:34:44 -06:00
vicrodh 0493539a3e Update issue templates with installation method and log instructions
Bug report now asks for installation method, display server, GPU,
and includes step-by-step instructions for sharing logs via the
built-in log uploader. Crash recovery hint for startup crashes.
Feedback template also adds installation method field.
2026-02-09 02:13:31 -06:00
vicrodh ddf4142188 fix(appimage): pin WebKitGTK to 2.44.0-2 to prevent EGL crash
The AppImage EGL_BAD_PARAMETER crash is caused by how Tauri's
linuxdeploy bundles newer WebKitGTK versions (tauri-apps/tauri#11994).

Fix: pin WebKitGTK to 2.44.0-2 on ubuntu-24.04, matching the proven
fix from other Tauri apps (audioling#40, OmniKee).

Also revert runtime env var workarounds (LIBGL_ALWAYS_SOFTWARE,
default-off hardware accel) since the fix is at the build level.
Keep only the NVIDIA DMA-BUF workaround which is still needed.
2026-02-09 01:28:11 -06:00
vicrodh e48bbb99df feat: add pkgrel input to AUR workflow
On release events pkgrel defaults to 1. On manual dispatch it can be
set to any value (default 1), allowing same-version rebuilds like
1.1.9-2 without editing the workflow.
2026-02-07 03:34:29 -06:00
vicrodh c87788f0f8 fix(flatpak): add version to metainfo.xml
Flatpak uses the <releases> section in metainfo.xml to display the
application version. Added a placeholder release entry and updated
the workflow to inject the actual version and date during build.
2026-01-27 20:54:45 -06:00
vicrodh 2121c910d1 Fix ARM64 workflow: only trigger on tags, not on push to main 2026-01-27 05:04:30 -06:00
vicrodh 220ee38f2a docs: add GitHub issue templates
- bug_report.md
- feature_request.md
- feedback.md

cc
2026-01-25 02:19:03 -06:00
vicrodh ee515573a2 fix: ARM64 workflow version extraction from tag/input 2026-01-20 22:42:26 -06:00
vicrodh b2e05b701b fix: Add tag trigger to ARM64 workflow to publish releases 2026-01-20 22:30:12 -06:00
vicrodh 25aa16cbff feat: Add ARM64 (aarch64) support to AUR package
- Update PKGBUILD to support both x86_64 and aarch64 architectures
- Use architecture-specific sources and checksums
- Update AUR workflow to download and checksum both tarballs
- Add smart wait logic for both release assets (max 10 minutes)
- Homologize workflow naming for consistency
- Package function now detects architecture and uses correct tarball

AUR users on ARM64 devices (Raspberry Pi, etc.) can now install qbz-bin.
2026-01-20 21:05:04 -06:00
vicrodh 43ed44daf7 chore: Improve desktop integration and AppImage metadata for release
- Add Comment field to all .desktop files for app launcher descriptions
- Change category from Music to AudioVideo for better categorization
- Add Keywords for improved searchability (audiophile, hifi, streaming)
- Enhance metainfo.xml with detailed feature list and links
- Configure AppImage bundle settings in tauri.conf.json
- Update workflows to generate improved .desktop files

AppImage now includes embedded icon via Tauri icon configuration.
App will now appear in Multimedia category with proper description in all Linux app launchers.
2026-01-20 21:03:07 -06:00
vicrodh 4a79493776 fix: Add xdg-utils dependency for ARM64 AppImage build 2026-01-20 16:28:21 -06:00
vicrodh 4748cef7df chore: Bump version to 1.1.6-rc and add ARM64 workflow
- Update version to 1.1.6-rc for release candidate testing
- Add Linux ARM64/aarch64 build workflow
- Uses ubuntu-24.04-arm GitHub runner (free for public repos)
- Builds .deb, .rpm, .AppImage, and AUR tarball for ARM64
- Workflow isolated with continue-on-error to not block x86_64 builds
2026-01-20 16:04:35 -06:00
vicrodh d2f61974d8 Rename App ID: com.blitzkriegfc.qbz → com.blitzfc.qbz
Changes:
- Renamed Flatpak manifest, desktop file, and AppStream metainfo
- Updated App ID in all metadata files
- Fixed MPRIS name: qbz_nix → qbz
- Added NAS support permissions: /mnt, /media, /run/media
- Updated CI workflow to use new filenames
- Updated tauri.conf.json bundle identifier

BREAKING CHANGE: Users will need to migrate data from old App ID directories
Data migration will be implemented in next commit
2026-01-19 15:12:21 -06:00
vicrodh b182d2d6d5 Remove API key injection from GitHub workflows
All API credentials are now managed server-side through the Cloudflare
Workers proxy. Build workflows no longer need to inject secrets into
the binary.

Removed:
- SPOTIFY_API_CLIENT_ID/SECRET from release-linux.yml
- TIDAL_API_CLIENT_ID/SECRET from release-linux.yml
- DISCOGS_API_CLIENT_KEY/SECRET from release-linux.yml
- LAST_FM_API_KEY/SHARED_SECRET from release-linux.yml
- Complete 'Inject API secrets' step from release-flatpak.yml

This completes the API keys refactor for Flathub compliance.
2026-01-17 16:52:34 -06:00
vicrodh bfdb65a680 fix(ci): inject API secrets into Flatpak manifest before build
flatpak-builder doesn't support --env-var, so we inject the secrets
directly into the manifest's build-options.env before building.

cc
2026-01-14 04:52:47 -06:00