{ lib, stdenv, fetchFromGitHub, nix-update-script, cargo, meson, ninja, pkg-config, rustPlatform, rustc, wrapGAppsHook4, cairo, dbus, gdk-pixbuf, glib, gtk4, libadwaita, openssl, pango, pipewire, sqlite, desktop-file-utils, libxml2, libsecret, }: stdenv.mkDerivation (finalAttrs: { pname = "euphonica"; version = "0.98.1-beta.1"; src = fetchFromGitHub { owner = "htkhiem"; repo = "euphonica"; tag = "v${finalAttrs.version}"; hash = "sha256-QFwkHFE+6CcZWwSKIUyf1RVQwHMkVqc4P6NacNgXnH0="; fetchSubmodules = true; }; passthru.updateScript = nix-update-script { # to be dropped once there are stable releases extraArgs = [ "--version=unstable" ]; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; hash = "sha256-qbbmi6qRrrzhMl/JJcnaTlV0gzasM5ssZRX3+exGh0o="; }; mesonBuildType = "release"; nativeBuildInputs = [ cargo meson ninja pkg-config rustPlatform.bindgenHook rustPlatform.cargoSetupHook rustc wrapGAppsHook4 desktop-file-utils ]; buildInputs = [ cairo dbus gdk-pixbuf glib gtk4 libadwaita openssl pango pipewire sqlite libxml2 libsecret ]; meta = { description = "MPD client with delusions of grandeur, made with Rust, GTK and Libadwaita"; homepage = "https://github.com/htkhiem/euphonica"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ paperdigits aaravrav ]; mainProgram = "euphonica"; platforms = with lib.platforms; linux; }; })