{ lib, stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, withRodio ? true , withALSA ? true, alsaLib ? null, withPulseAudio ? false, libpulseaudio ? null , withPortAudio ? false, portaudio ? null }: rustPlatform.buildRustPackage rec { pname = "librespot"; version = "0.1.3"; src = fetchFromGitHub { owner = "librespot-org"; repo = "librespot"; rev = "v${version}"; sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5"; }; cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d"; cargoPatches = [ ./cargo-lock.patch ]; cargoBuildFlags = with stdenv.lib; [ "--no-default-features" "--features" (concatStringsSep "," (filter (x: x != "") [ (optionalString withRodio "rodio-backend") (optionalString withALSA "alsa-backend") (optionalString withPulseAudio "pulseaudio-backend") (optionalString withPortAudio "portaudio-backend") ])) ]; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib ++ stdenv.lib.optional withPulseAudio libpulseaudio ++ stdenv.lib.optional withPortAudio portaudio; doCheck = false; meta = with lib; { description = "Open Source Spotify client library and playback daemon"; homepage = "https://github.com/librespot-org/librespot"; license = with licenses; [ mit ]; maintainers = with maintainers; [ bennofs ]; platforms = platforms.unix; }; }