ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / po / popcorntime / package.nix
blob28fd5b60e6898b53667aeef10889fda261f8a10a
1 { autoPatchelfHook
2 , fetchurl
3 , gcc-unwrapped
4 , gsettings-desktop-schemas
5 , gtk3
6 , lib
7 , libGL
8 , makeDesktopItem
9 , makeWrapper
10 , nwjs
11 , stdenv
12 , unzip
13 , udev
14 , wrapGAppsHook3
15 , copyDesktopItems
18 stdenv.mkDerivation rec {
19   pname = "popcorntime";
20   version = "0.5.1";
22   src = fetchurl {
23     url = "https://github.com/popcorn-official/popcorn-desktop/releases/download/v${version}/Popcorn-Time-${version}-linux64.zip";
24     hash = "sha256-lCsIioR252GWP/+wNwkTw5PLSal/M9x6mlR/EKOd/hs=";
25   };
27   nativeBuildInputs = [
28     autoPatchelfHook
29     makeWrapper
30     unzip
31     wrapGAppsHook3
32     copyDesktopItems
33   ];
35   buildInputs = [
36     gcc-unwrapped
37     gsettings-desktop-schemas
38     gtk3
39     nwjs
40     udev
41   ];
43   sourceRoot = ".";
45   dontWrapGApps = true;
46   dontUnpack = true;
48   makeWrapperArgs = [
49     "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gcc-unwrapped.lib gtk3 udev libGL ]}"
50     "--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]}"
51   ];
53   desktopItem = makeDesktopItem {
54       name = pname;
55       exec = pname;
56       icon = pname;
57       comment = meta.description;
58       genericName = meta.description;
59       type = "Application";
60       desktopName = "Popcorn-Time";
61       categories = [ "Video" "AudioVideo" ];
62     };
64   # Extract and copy executable in $out/bin
65   installPhase = ''
66     mkdir -p $out/share/applications $out/bin $out/opt/bin $out/share/icons/hicolor/scalable/apps/
67     # we can't unzip it in $out/lib, because nw.js will start with
68     # an empty screen. Therefore it will be unzipped in a non-typical
69     # folder and symlinked.
70     unzip -q $src -d $out/opt/popcorntime
72     ln -s $out/opt/popcorntime/Popcorn-Time $out/bin/popcorntime
74     ln -s $out/opt/popcorntime/src/app/images/icon.png $out/share/icons/hicolor/scalable/apps/popcorntime.png
76     ln -s ${desktopItem}/share/applications/popcorntime.desktop $out/share/applications/popcorntime.desktop
77   '';
79   # GSETTINGS_SCHEMAS_PATH is not set in installPhase
80   preFixup = ''
81     wrapProgram $out/bin/popcorntime \
82       ''${makeWrapperArgs[@]} \
83       ''${gappsWrapperArgs[@]}
84   '';
86   meta = with lib; {
87     homepage = "https://github.com/popcorn-official/popcorn-desktop";
88     description = "An application that streams movies and TV shows from torrents";
89     platforms = [ "x86_64-linux" ];
90     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
91     license = lib.licenses.gpl3;
92     maintainers = with maintainers; [ onny ];
93     mainProgram = "popcorntime";
94   };