From ec8c0bea85dc9cee7ca8e1aa4dc19eca7aa50541 Mon Sep 17 00:00:00 2001 From: Sean Kovacs Date: Tue, 20 Jan 2026 22:50:30 -0500 Subject: [PATCH] add spotify: riff --- home/default.nix | 6 ++- packages/overlay.nix | 2 + packages/riff/default.nix | 96 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 packages/riff/default.nix diff --git a/home/default.nix b/home/default.nix index 346b53d..394c519 100755 --- a/home/default.nix +++ b/home/default.nix @@ -158,7 +158,6 @@ spotdl browsh mosh - spotify-player gh # development & tooling @@ -183,6 +182,8 @@ # nur.repos.forkprince.helium-nightly qbittorrent nautilus + fractal + tuba # gui applications ( multimedia ) audacity @@ -190,7 +191,8 @@ musescore gimp calibre - spotify-qt + riff + dissent # overrides # (chromium.override { diff --git a/packages/overlay.nix b/packages/overlay.nix index d6357ea..c1fad61 100644 --- a/packages/overlay.nix +++ b/packages/overlay.nix @@ -11,6 +11,8 @@ final: prev: { version = "${final.openmw-git.rev}"; }); + riff = final.callPackage ./riff { }; + linuxPackages_asahi = prev.linuxPackages_asahi.override { _kernelPatches = [ { diff --git a/packages/riff/default.nix b/packages/riff/default.nix new file mode 100644 index 0000000..f25f2db --- /dev/null +++ b/packages/riff/default.nix @@ -0,0 +1,96 @@ +{ + lib, + stdenv, + alsa-lib, + appstream-glib, + blueprint-compiler, + cargo, + desktop-file-utils, + fetchFromGitHub, + gettext, + glib, + gst_all_1, + gtk4, + libadwaita, + libhandy, + libpulseaudio, + meson, + ninja, + nix-update-script, + openssl, + pkg-config, + rustPlatform, + rustc, + wrapGAppsHook4, +}: + +stdenv.mkDerivation rec { + pname = "riff"; + version = "v25.11"; + + src = fetchFromGitHub { + owner = "Diegovsky"; + repo = "riff"; + rev = "refs/tags/${version}"; + hash = "sha256-j5PZXXGInA03V3Lfu+QUgeHw8583XvJZyW67VcDe980="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + hash = "sha256-8gJILK9A97PAb/Q1z+IvW54WuwoZZSKxlJJUt7dwQWE="; + }; + + postPatch = '' + substituteInPlace src/meson.build --replace-fail \ + "cargo_output = 'src' / rust_target / meson.project_name()" \ + "cargo_output = 'src' / '${stdenv.hostPlatform.rust.cargoShortTarget}' / rust_target / meson.project_name()" + ''; + + nativeBuildInputs = [ + appstream-glib + blueprint-compiler + cargo + desktop-file-utils + gettext + glib # for glib-compile-schemas + gtk4 # for gtk-update-icon-cache + meson + ninja + pkg-config + rustPlatform.cargoSetupHook + rustc + wrapGAppsHook4 + ]; + + buildInputs = [ + alsa-lib + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + gtk4 + libadwaita + libhandy + libpulseaudio + openssl + ]; + + # https://github.com/xou816/spot/issues/313 + mesonBuildType = "release"; + + # For https://github.com/xou816/spot/blob/21ee601f655caa4ca9cae1033a27459fe6289318/src/meson.build#L122 + env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Native Spotify client for the GNOME desktop"; + homepage = "https://github.com/Diegovsky/riff"; + changelog = "https://github.com/Diegovsky/riff/releases/tag/${src.rev}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ getchoo ]; + mainProgram = "riff"; + platforms = lib.platforms.linux; + }; +}