smap: init at 0.1.12 (#371402)
[NixPkgs.git] / pkgs / applications / audio / librespot / default.nix
blobbbc55b41de22ebc19a9bc0bfdf0a795a8e9c7ba5
2   lib,
3   rustPlatform,
4   fetchFromGitHub,
5   makeWrapper,
6   pkg-config,
7   stdenv,
8   openssl,
9   withALSA ? stdenv.hostPlatform.isLinux,
10   alsa-lib,
11   alsa-plugins,
12   withPortAudio ? false,
13   portaudio,
14   withPulseAudio ? false,
15   libpulseaudio,
16   withRodio ? true,
19 rustPlatform.buildRustPackage rec {
20   pname = "librespot";
21   version = "0.6.0";
23   src = fetchFromGitHub {
24     owner = "librespot-org";
25     repo = "librespot";
26     rev = "v${version}";
27     sha256 = "sha256-dGQDRb7fgIkXelZKa+PdodIs9DxbgEMlVGJjK/hU3Mo=";
28   };
30   cargoHash = "sha256-GScAUqALoocqvsHz4XgPytI8cl0hiuWjqaO/ItNo4v4=";
32   nativeBuildInputs =
33     [
34       pkg-config
35       makeWrapper
36     ]
37     ++ lib.optionals stdenv.hostPlatform.isDarwin [
38       rustPlatform.bindgenHook
39     ];
41   buildInputs =
42     [ openssl ]
43     ++ lib.optional withALSA alsa-lib
44     ++ lib.optional withPortAudio portaudio
45     ++ lib.optional withPulseAudio libpulseaudio;
47   buildNoDefaultFeatures = true;
48   buildFeatures =
49     lib.optional withRodio "rodio-backend"
50     ++ lib.optional withALSA "alsa-backend"
51     ++ lib.optional withPortAudio "portaudio-backend"
52     ++ lib.optional withPulseAudio "pulseaudio-backend";
54   postFixup = lib.optionalString withALSA ''
55     wrapProgram "$out/bin/librespot" \
56       --set ALSA_PLUGIN_DIR '${alsa-plugins}/lib/alsa-lib'
57   '';
59   meta = with lib; {
60     description = "Open Source Spotify client library and playback daemon";
61     mainProgram = "librespot";
62     homepage = "https://github.com/librespot-org/librespot";
63     changelog = "https://github.com/librespot-org/librespot/blob/v${version}/CHANGELOG.md";
64     license = with licenses; [ mit ];
65     maintainers = with maintainers; [ bennofs ];
66   };