Commit Graph
36 Commits
Author SHA1 Message Date
vicrodh 5b03af41bc feat(audio): add alsa-utils help modal with distro-specific install commands
- Add check_alsa_utils_installed and get_linux_distro Tauri commands
- Detect Linux distribution from /etc/os-release
- Show appropriate package manager command for each distro
- Add (?) help icon next to ALSA Direct device dropdown in Settings
- Modal explains why alsa-utils is needed for bit-perfect detection
- Updated PKGBUILDs to list alsa-utils as optdepend
2026-01-30 11:43:34 -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 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 7b596a25c2 Fix PipeWire detection and App ID migration in Flatpak
Two critical fixes for Flatpak sandbox environment:

1. PipeWire detection now uses pactl instead of pw-cli
   - pw-cli is not available in GNOME Flatpak runtime
   - pactl works for both PipeWire and PulseAudio (compatibility layer)
   - Fixes missing PipeWire backend in Settings

2. App ID migration now works in Flatpak sandboxes
   - Detects Flatpak environment and uses absolute paths
   - Accesses old sandbox (com.blitzkriegfc.qbz) via HOME directory
   - Added read-only permission to old App ID in manifest
   - Properly migrates config/data/cache from old to new sandbox
2026-01-19 16:10:31 -06:00
vicrodh 6cd9cb43c4 Fix ALSA utils SHA256 checksum for Flatpak build 2026-01-19 15:39:55 -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 7091c64d56 Add alsa-utils to all package formats with appropriate handling
AUR (Arch Linux):
- Added to optdepends: 'alsa-utils: Better ALSA device names and descriptions'
- Users get notification to install, but not required

Flatpak:
- Included alsa-utils module in bundle (builds from source)
- Version 1.2.12 from alsa-project.org
- Sandboxed environment can now execute aplay -L internally
- Disabled alsamixer and xmlto (not needed, reduces size)
- Users get real device descriptions automatically

Snap (future - not yet implemented):
- Created snapcraft.yaml template
- stage-packages includes alsa-utils
- Will be bundled when Snap support is implemented

AppImage (future - not yet implemented):
- Created README.md documenting dependencies
- AppImage uses host system commands (aplay from host)
- Users need to install alsa-utils on their system
- Fallback to CPAL works if not installed

Summary by format:
- .deb/.rpm: Recommends alsa-utils (auto-installed, can be removed)
- AUR: optdepends (user notified, optional)
- Flatpak: Bundled (always available)
- Snap: Will be bundled (future)
- AppImage: Host dependency (user installs)
2026-01-17 20:04:29 -06:00
vicrodh 287ac59e7f feat: register qbz:// URI scheme for OAuth callbacks
Add URI scheme handler registration for OAuth flow implementation:
- Register x-scheme-handler/qbz in .desktop files
- Add %u parameter to Exec for URL handling
- Add OpenURI portal permission in Flatpak manifest

This enables OAuth PKCE flows for Spotify and other providers
to redirect back to the application after browser authentication.

Files modified:
- packaging/arch/qbz.desktop
- packaging/aur/qbz.desktop
- packaging/flatpak/com.blitzkriegfc.qbz.desktop
- packaging/flatpak/com.blitzkriegfc.qbz.yml
2026-01-16 17:10:42 -06:00
vicrodh 1c3f98a6f3 chore: remove unused shared-modules directory 2026-01-13 23:22:54 -06:00
vicrodh 59003876f6 Merge remote-tracking branch 'origin/packaging-workflows'
# Conflicts:
#	packaging/flatpak/com.blitzkriegfc.qbz.yml
2026-01-13 22:48:36 -06:00
vicrodh 6c7b42973c fix(flatpak): add tray icon and MPRIS permissions
- Add --filesystem=xdg-run/tray-icon:create for tray icon visibility
- Add --own-name=org.mpris.MediaPlayer2.qbz_nix for MPRIS registration
- Install additional icon sizes (32x32, symbolic)
- Add Flatpak detection to load icon from file path
2026-01-13 22:14:53 -06:00
vicrodh 97f8f3242f fix(flatpak): remove version suffixes from sdk-extensions
Let flatpak-builder auto-resolve extension versions based on the SDK.
The explicit //25.08 suffix was causing version mismatch errors with
GNOME 49.
2026-01-13 21:55:41 -06:00
vicrodh 793afe0e6b fix(flatpak): add lib64 to lib copy workaround for Freedesktop 25.08
GNOME 49 uses Freedesktop SDK 25.08 which may install cmake libs to
lib64 despite CMAKE_INSTALL_LIBDIR=lib. This adds a helper module that
copies any libs from lib64 to lib before building the main app.
2026-01-13 21:46:31 -06:00
vicrodh 8cb6f25f5b fix(flatpak): use 25.08 SDK extensions for GNOME 49 2026-01-13 21:27:43 -06:00
vicrodh 03d1165ba4 Merge main into packaging-workflows and update to GNOME 49 2026-01-13 21:22:50 -06:00
vicrodh a74142f243 fix(flatpak): use lib instead of lib64 for cmake modules
The Ubuntu-based GitHub runners use lib64, but pkg-config
looks in /app/lib/pkgconfig. Force CMAKE_INSTALL_LIBDIR=lib
for all ayatana modules.
2026-01-13 20:48:21 -06:00
vicrodh 4541c138d3 debug(flatpak): add post-install logging to ayatana-ido 2026-01-13 20:38:52 -06:00
vicrodh 5dc1a59643 fix(flatpak): correct sed patterns and remove pkgconfig from cleanup 2026-01-13 20:26:01 -06:00
vicrodh d5b0bebaa1 fix(flatpak): add libayatana-appindicator dependencies
- Switch from Freedesktop 23.08 to GNOME 47 runtime (for WebKitGTK)
- Add full ayatana stack: intltool, libdbusmenu, ayatana-ido,
  libayatana-indicator, libayatana-appindicator
- Patch ayatana-ido to make Vala optional
- Fix build commands: use --no-bundle, proper PATH handling
- Add missing finish-args: network, pulseaudio, MPRIS
- Remove xdg-portal feature from tauri-plugin-dialog to avoid
  ashpd/zbus incompatibility

Fixes runtime crash: "Failed to load ayatana-appindicator3"
2026-01-13 19:52:51 -06:00
vicrodh d5319d7c0f fix(flatpak): add intltool perl patch 2026-01-13 19:16:58 -06:00
vicrodh 1045dfb8dd fix(flatpak): correct shared-modules path 2026-01-13 19:14:26 -06:00
vicrodh bb07bb21e0 fix(flatpak): bundle libayatana-appindicator 2026-01-13 18:55:39 -06:00
vicrodh 86258f019f chore(aur): add missing runtime deps 2026-01-13 01:12:29 -06:00
vicrodh 9a817a5203 fix: use correct desktop file for AUR with Icon=qbz 2026-01-12 19:07:40 -06:00
vicrodh f42e63bcb3 Fix icons with transparent background and improve AUR packaging
- Regenerate all icons from logo.png with proper transparency
- Add 48x48, 64x64, 256x256 icon sizes for better freedesktop integration
- Update tarball structure to use proper hicolor paths
- Update PKGBUILD to install all icon sizes
- Improve AUR package description
2026-01-12 17:27:42 -06:00
vicrodh 535f8c0bdd Update PKGBUILD with correct SHA256 for v1.0.0 release 2026-01-12 17:11:54 -06:00
vicrodh 7287da5b27 docs: update README and add AUR automation
- Add installation instructions (AUR, Flatpak, AppImage)
- Document all API keys (Last.fm, Discogs, Spotify, Tidal)
- Add playlist import feature documentation
- Update project structure
- Add PKGBUILD for qbz-bin AUR package
- Add workflow to auto-update AUR on release
- Update .env.example with Spotify/Tidal variables
2026-01-12 14:23:16 -06:00
vicrodh 39acb0b59e fix(flatpak): use GNOME SDK 48 with manual Node/Rust install
- Switch to GNOME SDK 48 which includes webkit2gtk-4.1
- Install Node.js 20 LTS directly from tarball (no SDK extension needed)
- Install Rust via rustup for latest stable version
- Add flatpak build directories to .gitignore
2026-01-12 13:21:28 -06:00
vicrodh 32ac732b7d fix(flatpak): use rustup to install latest Rust in SDK 23.08
SDK 24.08 doesn't have javascriptcoregtk-4.1 (uses webkit 6.0).
SDK 23.08 has Rust 1.81 which doesn't support edition2024.
Solution: use SDK 23.08 with webkit2gtk 4.1 but install Rust via rustup.
2026-01-12 12:40:03 -06:00
vicrodh 6adb979e3d fix(flatpak): upgrade to SDK 24.08 for Rust 2024 edition support
The zbus 5.x crate requires Rust edition2024 which needs Rust 1.85+.
SDK 23.08 only has Rust 1.81. Upgrade to 24.08 which has a newer Rust.
Also upgrade node extension from node20 to node22.
2026-01-12 12:31:41 -06:00
vicrodh 7f3055ca02 fix(flatpak): use cargo build instead of tauri CLI
The flatpak SDK's tauri-cli version doesn't support --bundles none.
Use cargo build --release directly to build only the binary.
2026-01-12 12:25:36 -06:00
vicrodh 5383a5fcee fix(flatpak): enable network access during build
Add build-args with --share=network to allow npm ci to fetch packages
during flatpak build process.
2026-01-12 12:15:14 -06:00
vicrodh d2b219ea1d fix: CI workflow failures
Linux workflow:
- Remove xdg-portal feature from tauri-plugin-dialog to fix ashpd/zbus version incompatibility
- The ashpd 0.11.0 crate has breaking changes with zbus 5.x

Flatpak workflow:
- Use build-options.append-path instead of shell export to properly set PATH for SDK extensions
- This ensures npm/rust binaries are available in all build commands
2026-01-12 11:55:04 -06:00
vicrodh 5eac9676de chore(packaging): add linux workflows and manifests 2026-01-12 11:14:15 -06:00
vicrodh 13af89753d chore(packaging): add linux workflows and manifests 2026-01-12 10:09:39 -06:00