1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 cmake,
6 flac,
7 libpulseaudio,
8 qtbase,
9 qtgraphicaleffects,
10 qtquickcontrols2,
11 qtwayland,
12 wrapQtAppsHook,
13 makeWrapper,
14}:
15
16stdenv.mkDerivation (finalAttrs: {
17 pname = "noson";
18 version = "5.6.13";
19
20 src = fetchFromGitHub {
21 owner = "janbar";
22 repo = "noson-app";
23 rev = finalAttrs.version;
24 hash = "sha256-XJBkPhyDPeyVrcY5Q5W9LtESuVxcbcQ8JoyOzKg+0NU=";
25 };
26
27 nativeBuildInputs = [
28 cmake
29 wrapQtAppsHook
30 makeWrapper
31 ];
32
33 buildInputs = [
34 flac
35 libpulseaudio
36 qtbase
37 qtgraphicaleffects
38 qtquickcontrols2
39 ]
40 ++ lib.optionals stdenv.hostPlatform.isLinux [
41 qtwayland
42 ];
43
44 # wrapQtAppsHook doesn't automatically find noson-gui
45 dontWrapQtApps = true;
46
47 preFixup = ''
48 wrapProgram "$out/bin/noson-app" --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio ]}
49 wrapQtApp "$out/lib/noson/noson-gui"
50 '';
51
52 meta = with lib; {
53 description = "SONOS controller for Linux (and macOS)";
54 homepage = "https://janbar.github.io/noson-app/";
55 mainProgram = "noson-app";
56 platforms = platforms.linux ++ platforms.darwin;
57 license = [ licenses.gpl3Only ];
58 maintainers = with maintainers; [ callahad ];
59 };
60})