biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / video / hypnotix / default.nix
blobc38b2f5c703f90128831cd3bbf23b49071be48bb
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , substituteAll
5 , xapp
6 , circle-flags
7 , gettext
8 , gobject-introspection
9 , mpv
10 , python3
11 , wrapGAppsHook3
12 , yt-dlp
15 stdenv.mkDerivation rec {
16   pname = "hypnotix";
17   version = "4.6";
19   src = fetchFromGitHub {
20     owner = "linuxmint";
21     repo = "hypnotix";
22     rev = version;
23     hash = "sha256-wDzHCrZTbfIb9dpRoh5qYKQNjONOv34FYdOr4svOLEw=";
24   };
26   patches = [
27     (substituteAll {
28       src = ./libmpv-path.patch;
29       libmpv = "${lib.getLib mpv}/lib/libmpv${stdenv.hostPlatform.extensions.sharedLibrary}";
30     })
31   ];
33   postPatch = ''
34     substituteInPlace usr/lib/hypnotix/hypnotix.py \
35       --replace __DEB_VERSION__ ${version} \
36       --replace /usr/bin/yt-dlp ${yt-dlp}/bin/yt-dlp \
37       --replace /usr/share/circle-flags-svg ${circle-flags}/share/circle-flags-svg \
38       --replace /usr/share/hypnotix $out/share/hypnotix
40     substituteInPlace usr/bin/hypnotix \
41       --replace /usr/lib/hypnotix/hypnotix.py $out/lib/hypnotix/hypnotix.py
42   '';
44   nativeBuildInputs = [
45     gettext
46     gobject-introspection
47     python3.pkgs.wrapPython
48     wrapGAppsHook3
49   ];
51   dontWrapGApps = true;
53   buildInputs = [
54     xapp
55     python3 # for patchShebangs
56   ];
58   pythonPath = with python3.pkgs; [
59     cinemagoer
60     pygobject3
61     requests
62     setproctitle
63     unidecode
64     python-xapp
65   ];
67   installPhase = ''
68     runHook preInstall
70     mkdir -p $out
71     cp -r usr/* $out
73     glib-compile-schemas $out/share/glib-2.0/schemas
75     runHook postInstall
76   '';
78   preFixup = ''
79     buildPythonPath "$out $pythonPath"
81     # yt-dlp is needed for mpv to play YouTube channels.
82     wrapProgram $out/bin/hypnotix \
83       --prefix PATH : "${lib.makeBinPath [ yt-dlp ]}" \
84       --prefix PYTHONPATH : "$program_PYTHONPATH" \
85       ''${gappsWrapperArgs[@]}
86   '';
88   meta = {
89     description = "IPTV streaming application";
90     homepage = "https://github.com/linuxmint/hypnotix";
91     changelog = "https://github.com/linuxmint/hypnotix/blob/${src.rev}/debian/changelog";
92     license = lib.licenses.gpl3Plus;
93     maintainers = with lib.maintainers; [ dotlambda bobby285271 ];
94     platforms = lib.platforms.linux;
95     mainProgram = "hypnotix";
96   };