chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / su / supersonic / package.nix
blob7964d31d965053a036c24a6e73e956e65664f6ba
1 { lib
2 , stdenv
3 , buildGoModule
4 , fetchFromGitHub
5 , makeDesktopItem
6 , copyDesktopItems
7 , pkg-config
8 , desktopToDarwinBundle
9 , xorg
10 , wayland
11 , wayland-protocols
12 , libxkbcommon
13 , libglvnd
14 , mpv-unwrapped
15 , darwin
16 , waylandSupport ? false
19 assert waylandSupport -> stdenv.hostPlatform.isLinux;
21 buildGoModule rec {
22   pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
23   version = "0.13.1";
25   src = fetchFromGitHub {
26     owner = "dweymouth";
27     repo = "supersonic";
28     rev = "v${version}";
29     hash = "sha256-hJLooKH5jketvPTfTtkNBQL1F9lzBEhDZuUXZRFEcWo=";
30   };
32   vendorHash = "sha256-wT1WvwUUAnMIKa+RlRDD2QGJpZMtoecQCxSJekM6PdM=";
34   nativeBuildInputs = [
35     copyDesktopItems
36     pkg-config
37   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
38     desktopToDarwinBundle
39   ];
41   # go-glfw doesn't support both X11 and Wayland in single build
42   tags = lib.optionals waylandSupport [ "wayland" ];
44   buildInputs = [
45     libglvnd
46     mpv-unwrapped
47   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
48     xorg.libXxf86vm
49     xorg.libX11
50   ] ++ lib.optionals (stdenv.hostPlatform.isLinux && !waylandSupport) [
51     xorg.libXrandr
52     xorg.libXinerama
53     xorg.libXcursor
54     xorg.libXi
55     xorg.libXext
56   ] ++ lib.optionals (stdenv.hostPlatform.isLinux && waylandSupport) [
57     wayland
58     wayland-protocols
59     libxkbcommon
60   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
61     darwin.apple_sdk_11_0.frameworks.Cocoa
62     darwin.apple_sdk_11_0.frameworks.Kernel
63     darwin.apple_sdk_11_0.frameworks.OpenGL
64     darwin.apple_sdk_11_0.frameworks.UserNotifications
65     darwin.apple_sdk_11_0.frameworks.MediaPlayer
66   ];
68   postInstall = ''
69     for dimension in 128 256 512;do
70         dimensions=''${dimension}x''${dimension}
71         mkdir -p $out/share/icons/hicolor/$dimensions/apps
72         cp res/appicon-$dimension.png $out/share/icons/hicolor/$dimensions/apps/${meta.mainProgram}.png
73     done
74   '' + lib.optionalString waylandSupport ''
75     mv $out/bin/supersonic $out/bin/${meta.mainProgram}
76   '';
78   desktopItems = [
79     (makeDesktopItem {
80       name = meta.mainProgram;
81       exec = meta.mainProgram;
82       icon = meta.mainProgram;
83       desktopName = "Supersonic" + lib.optionalString waylandSupport " (Wayland)";
84       genericName = "Subsonic Client";
85       comment = meta.description;
86       type = "Application";
87       categories = [ "Audio" "AudioVideo" ];
88     })
89   ];
91   meta = with lib; {
92     mainProgram = "supersonic" + lib.optionalString waylandSupport "-wayland";
93     description = "A lightweight cross-platform desktop client for Subsonic music servers";
94     homepage = "https://github.com/dweymouth/supersonic";
95     platforms = platforms.linux ++ platforms.darwin;
96     license = licenses.gpl3Plus;
97     maintainers = with maintainers; [ zane sochotnicky ];
98   };