bandwhich: 0.23.0 -> 0.23.1; move to by-name; nixfmt; useFetchCargoVendor (#356934)
[NixPkgs.git] / pkgs / applications / video / jellyfin-media-player / default.nix
blob6c25495b03418f86892e0aa387a936818379aee9
1 { lib
2 , fetchFromGitHub
3 , mkDerivation
4 , stdenv
5 , Cocoa
6 , CoreAudio
7 , CoreFoundation
8 , MediaPlayer
9 , SDL2
10 , cmake
11 , libGL
12 , libX11
13 , libXrandr
14 , libvdpau
15 , mpv
16 , ninja
17 , pkg-config
18 , python3
19 , qtbase
20 , qtwayland
21 , qtwebchannel
22 , qtwebengine
23 , qtx11extras
24 , withDbus ? stdenv.hostPlatform.isLinux
27 mkDerivation rec {
28   pname = "jellyfin-media-player";
29   version = "1.11.1";
31   src = fetchFromGitHub {
32     owner = "jellyfin";
33     repo = "jellyfin-media-player";
34     rev = "v${version}";
35     sha256 = "sha256-Jsn4kWQzUaQI9MpbsLJr6JSJk9ZSnMEcrebQ2DYegSU=";
36   };
38   patches = [
39     # disable update notifications since the end user can't simply download the release artifacts to update
40     ./disable-update-notifications.patch
41   ];
43   buildInputs = [
44     SDL2
45     libGL
46     libX11
47     libXrandr
48     libvdpau
49     mpv
50     qtbase
51     qtwebchannel
52     qtwebengine
53     qtx11extras
54   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
55     qtwayland
56   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
57     Cocoa
58     CoreAudio
59     CoreFoundation
60     MediaPlayer
61   ];
63   nativeBuildInputs = [
64     cmake
65     ninja
66     pkg-config
67     python3
68   ];
70   cmakeFlags = [
71     "-DQTROOT=${qtbase}"
72     "-GNinja"
73   ] ++ lib.optionals (!withDbus) [
74     "-DLINUX_X11POWER=ON"
75   ];
77   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
78     mkdir -p $out/bin $out/Applications
79     mv "$out/Jellyfin Media Player.app" $out/Applications
80     ln -s "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player" $out/bin/jellyfinmediaplayer
81   '';
83   meta = with lib; {
84     homepage = "https://github.com/jellyfin/jellyfin-media-player";
85     description = "Jellyfin Desktop Client based on Plex Media Player";
86     license = with licenses; [ gpl2Only mit ];
87     platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
88     maintainers = with maintainers; [ jojosch kranzes ];
89     mainProgram = "jellyfinmediaplayer";
90   };