mastodon: 4.3.1 -> 4.3.2 (#361487)
[NixPkgs.git] / pkgs / by-name / sp / spotifyd / package.nix
blob45e43876ae0c20271ab014b013f6c17d74ad18b7
2   lib,
3   stdenv,
4   config,
5   fetchFromGitHub,
6   rustPackages,
7   pkg-config,
8   openssl,
9   withALSA ? stdenv.hostPlatform.isLinux,
10   alsa-lib,
11   withJack ? stdenv.hostPlatform.isLinux,
12   libjack2,
13   withPulseAudio ? config.pulseaudio or stdenv.hostPlatform.isLinux,
14   libpulseaudio,
15   withPortAudio ? stdenv.hostPlatform.isDarwin,
16   portaudio,
17   withMpris ? stdenv.hostPlatform.isLinux,
18   withKeyring ? true,
19   dbus,
20   withPipe ? true,
21   nix-update-script,
22   testers,
23   spotifyd,
26 rustPackages.rustPlatform.buildRustPackage rec {
27   pname = "spotifyd";
28   version = "0.3.5-unstable-2024-10-21";
30   src = fetchFromGitHub {
31     owner = "Spotifyd";
32     repo = "spotifyd";
33     rev = "b25538f5c4dfc5b376927e7edf71c7c988492ace";
34     hash = "sha256-50eUVax3yqwncQUWgCPc0PHVUuUERQ9iORSSajPHB9c=";
35   };
37   cargoHash = "sha256-3aEBLPyf72o9gF58j9OANpcqD/IClb2alfAEKRFzatU=";
39   nativeBuildInputs = [ pkg-config ];
41   buildInputs =
42     lib.optionals stdenv.hostPlatform.isLinux [ openssl ]
43     ++ lib.optional (withALSA || withJack) alsa-lib
44     ++ lib.optional withJack libjack2
45     ++ lib.optional withPulseAudio libpulseaudio
46     ++ lib.optional withPortAudio portaudio
47     # The `dbus_keying` feature works on other platforms, but only requires
48     # `dbus` on Linux
49     ++ lib.optional ((withMpris || withKeyring) && stdenv.hostPlatform.isLinux) dbus;
51   buildNoDefaultFeatures = true;
52   buildFeatures =
53     lib.optional withALSA "alsa_backend"
54     ++ lib.optional withJack "rodiojack_backend"
55     ++ lib.optional withPulseAudio "pulseaudio_backend"
56     ++ lib.optional withPortAudio "portaudio_backend"
57     ++ lib.optional withMpris "dbus_mpris"
58     ++ lib.optional withPipe "pipe_backend"
59     ++ lib.optional withKeyring "dbus_keyring";
61   doCheck = false;
63   passthru = {
64     tests.version = testers.testVersion {
65       package = spotifyd;
66       version = builtins.head (lib.splitString "-" version);
67     };
68     updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
69   };
71   meta = {
72     description = "Open source Spotify client running as a UNIX daemon";
73     homepage = "https://spotifyd.rs/";
74     changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
75     license = lib.licenses.gpl3Plus;
76     maintainers = with lib.maintainers; [
77       anderslundstedt
78       Br1ght0ne
79       getchoo
80     ];
81     platforms = lib.platforms.unix;
82     mainProgram = "spotifyd";
83   };