chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / sp / spotifyd / package.nix
blob45cce2754754a09af1eb5b778cec7869c24409f3
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   nix-update-script,
21   testers,
22   spotifyd,
25 rustPackages.rustPlatform.buildRustPackage rec {
26   pname = "spotifyd";
27   version = "0.3.5-unstable-2024-09-05";
29   src = fetchFromGitHub {
30     owner = "Spotifyd";
31     repo = "spotifyd";
32     rev = "e280d84124d854af3c2f9509ba496b1c2ba6a1ae";
33     hash = "sha256-RFfM/5DY7IG0E79zc8IuXpSNAIjloMWI3ZVbyLxh4O8=";
34   };
36   cargoHash = "sha256-z3zcQD2v71FZg6nEvKfaMiQU/aRAPFNt69b9Rm+jpuY=";
38   nativeBuildInputs = [ pkg-config ];
40   buildInputs =
41     lib.optionals stdenv.hostPlatform.isLinux [ openssl ]
42     ++ lib.optional (withALSA || withJack) alsa-lib
43     ++ lib.optional withJack libjack2
44     ++ lib.optional withPulseAudio libpulseaudio
45     ++ lib.optional withPortAudio portaudio
46     # The `dbus_keying` feature works on other platforms, but only requires
47     # `dbus` on Linux
48     ++ lib.optional ((withMpris || withKeyring) && stdenv.hostPlatform.isLinux) dbus;
50   buildNoDefaultFeatures = true;
51   buildFeatures =
52     lib.optional withALSA "alsa_backend"
53     ++ lib.optional withJack "rodiojack_backend"
54     ++ lib.optional withPulseAudio "pulseaudio_backend"
55     ++ lib.optional withPortAudio "portaudio_backend"
56     ++ lib.optional withMpris "dbus_mpris"
57     ++ lib.optional withKeyring "dbus_keyring";
59   doCheck = false;
61   passthru = {
62     tests.version = testers.testVersion {
63       package = spotifyd;
64       version = builtins.head (lib.splitString "-" version);
65     };
66     updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
67   };
69   meta = {
70     description = "Open source Spotify client running as a UNIX daemon";
71     homepage = "https://spotifyd.rs/";
72     changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
73     license = lib.licenses.gpl3Plus;
74     maintainers = with lib.maintainers; [
75       anderslundstedt
76       Br1ght0ne
77       getchoo
78     ];
79     platforms = lib.platforms.unix;
80     mainProgram = "spotifyd";
81   };