alvr: 20.11.1 -> 20.12.1 (#374869)
[NixPkgs.git] / pkgs / applications / audio / snapcast / default.nix
blobf6cbf58d89543695505c24c0999b49e852bc973e
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   cmake,
6   pkg-config,
7   alsa-lib,
8   asio,
9   avahi,
10   boost,
11   flac,
12   libogg,
13   libvorbis,
14   libopus,
15   soxr,
16   IOKit,
17   AudioToolbox,
18   aixlog,
19   popl,
20   pulseaudioSupport ? false,
21   libpulseaudio,
22   nixosTests,
23   openssl,
26 stdenv.mkDerivation rec {
27   pname = "snapcast";
28   version = "0.30.0";
30   src = fetchFromGitHub {
31     owner = "badaix";
32     repo = "snapcast";
33     rev = "v${version}";
34     hash = "sha256-EJgpZz4PnXfge0rkVH1F7cah+i9AvDJVSUVqL7qChDM=";
35   };
37   nativeBuildInputs = [
38     cmake
39     pkg-config
40   ];
41   # snapcast also supports building against tremor but as we have libogg, that's
42   # not needed
43   buildInputs =
44     [
45       boost
46       asio
47       avahi
48       flac
49       libogg
50       libvorbis
51       libopus
52       aixlog
53       popl
54       soxr
55       openssl
56     ]
57     ++ lib.optional pulseaudioSupport libpulseaudio
58     ++ lib.optional stdenv.hostPlatform.isLinux alsa-lib
59     ++ lib.optionals stdenv.hostPlatform.isDarwin [
60       IOKit
61       AudioToolbox
62     ];
64   TARGET = lib.optionalString stdenv.hostPlatform.isDarwin "MACOS";
66   # Upstream systemd unit files are pretty awful, so we provide our own in a
67   # NixOS module. It might make sense to get that upstreamed...
68   postInstall = ''
69     install -d $out/share/doc/snapcast
70     cp -r ../doc/* ../*.md $out/share/doc/snapcast
71   '';
73   passthru.tests.snapcast = nixosTests.snapcast;
75   meta = with lib; {
76     description = "Synchronous multi-room audio player";
77     homepage = "https://github.com/badaix/snapcast";
78     maintainers = with maintainers; [ fpletz ];
79     platforms = platforms.linux ++ platforms.darwin;
80     license = licenses.gpl3Plus;
81   };