diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix new file mode 100644 index 000000000000..5f064cf4e885 --- /dev/null +++ b/pkgs/applications/audio/spotifyd/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl +, withALSA ? true, alsaLib ? null +, withPulseAudio ? false, libpulseaudio ? null +, withPortAudio ? false, portaudio ? null +}: + +rustPlatform.buildRustPackage rec { + pname = "spotifyd"; + version = "0.2.11"; + + src = fetchFromGitHub { + owner = "Spotifyd"; + repo = "spotifyd"; + rev = "${version}"; + sha256 = "1iybk9xrrvhrcl2xl5r2xhyn1ydhrgwnnb8ldhsw5c16b32z03q1"; + }; + + cargoSha256 = "0879p1h32259schmy8j3xnwpw3sw80f8mrj8s6b5aihi3yyzz521"; + + cargoBuildFlags = [ + "--no-default-features" + "--features" + "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}" + ]; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ openssl ] + ++ stdenv.lib.optional withALSA alsaLib + ++ stdenv.lib.optional withPulseAudio libpulseaudio + ++ stdenv.lib.optional withPortAudio portaudio; + + meta = with stdenv.lib; { + description = "An open source Spotify client running as a UNIX daemon"; + homepage = "https://github.com/Spotifyd/spotifyd"; + license = with licenses; [ gpl3 ]; + maintainers = [ maintainers.anderslundstedt ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 03ae106c481a..55ae0f3fa67b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18496,6 +18496,12 @@ in spectral = qt5.callPackage ../applications/networking/instant-messengers/spectral { }; + spotifyd = callPackage ../applications/audio/spotifyd { + withALSA = stdenv.isLinux; + withPulseAudio = config.pulseaudio or true; + withPortAudio = stdenv.isDarwin; + }; + super-productivity = callPackage ../applications/networking/super-productivity { }; wlc = callPackage ../development/libraries/wlc { };