From a452e0e2642bf961d03eaa5ce6b2ee8a9725ecee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 23 May 2022 06:27:25 +0000 Subject: [PATCH] hypnotix: init at 2.6 --- pkgs/applications/video/hypnotix/default.nix | 86 +++++++++++++++++++ .../video/hypnotix/libmpv-path.patch | 18 ++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 106 insertions(+) create mode 100644 pkgs/applications/video/hypnotix/default.nix create mode 100644 pkgs/applications/video/hypnotix/libmpv-path.patch diff --git a/pkgs/applications/video/hypnotix/default.nix b/pkgs/applications/video/hypnotix/default.nix new file mode 100644 index 000000000000..129322809067 --- /dev/null +++ b/pkgs/applications/video/hypnotix/default.nix @@ -0,0 +1,86 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, cinnamon +, gettext +, gobject-introspection +, mpv +, python3 +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "hypnotix"; + version = "2.6"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = "hypnotix"; + rev = version; + hash = "sha256-9HWr8zjUuhj/GZdrt1WwpwYNLEl34S9IJ7ikGZBSw3s="; + }; + + patches = [ + (substituteAll { + src = ./libmpv-path.patch; + libmpv = "${lib.getLib mpv}/lib/libmpv${stdenv.hostPlatform.extensions.sharedLibrary}"; + }) + ]; + + postPatch = '' + substituteInPlace usr/lib/hypnotix/hypnotix.py \ + --replace __DEB_VERSION__ ${version} \ + --replace /usr/share/hypnotix $out/share/hypnotix + ''; + + nativeBuildInputs = [ + gettext + gobject-introspection + python3.pkgs.wrapPython + wrapGAppsHook + ]; + + dontWrapGApps = true; + + buildInputs = [ + cinnamon.xapps + ]; + + pythonPath = with python3.pkgs; [ + imdbpy + pygobject3 + requests + setproctitle + unidecode + xapp + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r usr/lib $out + cp -r usr/share $out + + glib-compile-schemas $out/share/glib-2.0/schemas + + runHook postInstall + ''; + + preFixup = '' + buildPythonPath "$out $pythonPath" + makeWrapper ${python3.interpreter} $out/bin/hypnotix \ + --add-flags $out/lib/hypnotix/hypnotix.py \ + --prefix PYTHONPATH : "$program_PYTHONPATH" \ + ''${gappsWrapperArgs[@]} + ''; + + meta = { + description = "IPTV streaming application"; + homepage = "https://github.com/linuxmint/hypnotix"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ dotlambda ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/applications/video/hypnotix/libmpv-path.patch b/pkgs/applications/video/hypnotix/libmpv-path.patch new file mode 100644 index 000000000000..86337b4930af --- /dev/null +++ b/pkgs/applications/video/hypnotix/libmpv-path.patch @@ -0,0 +1,18 @@ +diff --git a/usr/lib/hypnotix/mpv.py b/usr/lib/hypnotix/mpv.py +index f42a3be..f1fc40b 100644 +--- a/usr/lib/hypnotix/mpv.py ++++ b/usr/lib/hypnotix/mpv.py +@@ -44,12 +44,7 @@ else: + # still better than segfaulting, we are setting LC_NUMERIC to "C". + locale.setlocale(locale.LC_NUMERIC, 'C') + +- sofile = ctypes.util.find_library('mpv') +- if sofile is None: +- raise OSError("Cannot find libmpv in the usual places. Depending on your distro, you may try installing an " +- "mpv-devel or mpv-libs package. If you have libmpv around but this script can't find it, consult " +- "the documentation for ctypes.util.find_library which this script uses to look up the library " +- "filename.") ++ sofile = '@libmpv@' + backend = CDLL(sofile) + fs_enc = sys.getfilesystemencoding() + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e50917ea399a..91f0897eabd3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27024,6 +27024,8 @@ with pkgs; hyperledger-fabric = callPackage ../tools/misc/hyperledger-fabric { }; + hypnotix = callPackage ../applications/video/hypnotix { }; + indigenous-desktop = callPackage ../applications/networking/feedreaders/indigenous-desktop { }; jackline = callPackage ../applications/networking/instant-messengers/jackline { };