Name: tributary Version: 0.5.0 Release: 1%{?dist} Summary: A high-performance media manager with unified local and remote backends License: GPL-3.0-or-later URL: https://github.com/jm2/tributary Source0: tributary-%{version}.tar.zst BuildRequires: rust BuildRequires: cargo BuildRequires: gcc BuildRequires: pkgconf-pkg-config BuildRequires: libadwaita-devel BuildRequires: gtk4-devel BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(libadwaita-1) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(dbus-1) BuildRequires: desktop-file-utils BuildRequires: libappstream-glib Requires: gtk4 >= 4.14 Requires: libadwaita >= 1.5 Requires: gstreamer1-plugins-good Requires: gstreamer1-plugins-bad-free Requires: gstreamer1-plugins-ugly-free Requires: gstreamer1-libav Requires: dbus %description Tributary is a high-performance, Rhythmbox-style media manager designed for GNOME. It features unified backends for local music and remote services like Subsonic, Jellyfin, and Plex. %prep %autosetup -p1 -n tributary-%{version} %build cargo build --release %install # Install binary install -D -p -m 0755 target/release/tributary %{buildroot}%{_bindir}/tributary # Install desktop file install -D -p -m 0644 data/io.github.tributary.Tributary.desktop %{buildroot}%{_datadir}/applications/io.github.tributary.Tributary.desktop # Install metainfo install -D -p -m 0644 data/io.github.tributary.Tributary.metainfo.xml %{buildroot}%{_metainfodir}/io.github.tributary.Tributary.metainfo.xml # Install icons for size in 16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512; do install -D -p -m 0644 data/icons/hicolor/${size}/apps/io.github.tributary.Tributary.png \ %{buildroot}%{_datadir}/icons/hicolor/${size}/apps/io.github.tributary.Tributary.png done %check desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml %files %license LICENSE %doc README.md %{_bindir}/tributary %{_datadir}/applications/io.github.tributary.Tributary.desktop %{_metainfodir}/io.github.tributary.Tributary.metainfo.xml %{_datadir}/icons/hicolor/*/apps/io.github.tributary.Tributary.png %changelog * Fri May 08 2026 John-Michael Mulesa - 0.5.0-1 - Added support for multiple music directories with automatic migration (#31) - Implemented XSPF playlist import/export with fingerprint-based reconciliation - Added default smart playlists: Recently Added, Recently Played, and Top 25 - Added Chromecast local file streaming via internal axum-based HTTP server (#1) - Added asynchronous USB mass storage file transfer module (#8) - Implemented window position persistence and Windows 11 Snap Layout support - Added macOS "Open With" and Linux MIME type file associations (#36) - Fixed tracklist column recycling bug causing stale data during scrolling - Fixed playlist timestamp format to use RFC3339 strings instead of epoch seconds - Fixed Chromecast playback state logic and play/pause toggle synchronization - Fixed broken cover-art links for Jellyfin search results missing primary images - Removed non-functional 'Recently Played' smart-playlist sort variants - Redacted sensitive auth tokens from application debug logs for remote backends * Thu Apr 23 2026 John-Michael Mulesa - 0.4.1-1 - Added: Nextcloud Music (Subsonic) compatibility with legacy hex-encoded password auth fallback - Changed: Modularized window.rs into 6 sub-modules for improved maintainability - Fixed: macOS .app bundle issues including missing files, GStreamer "not-negotiated" errors, and code-signing - Fixed: Remote sources failing to show tracks on first connection due to selection timing - Fixed: Windows "About" dialog missing icon by updating icon theme cache - Performance: Jellyfin library fetch optimized via increased page size and concurrent fetching - Security: Redacted plaintext passwords from logs and hardened AuthMode Debug implementation