From acf6abcafcf0282cbc2ea85e10ce759e5203d445 Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Tue, 20 Jul 2021 19:58:09 -0400 Subject: kodi: set proper PYTHONPATH for addons --- pkgs/applications/video/kodi/wrapper.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'pkgs/applications/video/kodi/wrapper.nix') diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix index 86164682138d..7377e638676e 100644 --- a/pkgs/applications/video/kodi/wrapper.nix +++ b/pkgs/applications/video/kodi/wrapper.nix @@ -1,8 +1,19 @@ -{ lib, makeWrapper, buildEnv, kodi, addons }: +{ lib, makeWrapper, buildEnv, kodi, addons, callPackage }: let + kodiPackages = callPackage ../../../top-level/kodi-packages.nix { inherit kodi; }; + # linux distros are supposed to provide pillow and pycryptodome - requiredPythonPackages = with kodi.pythonPackages; [ pillow pycryptodome] ++ addons; + requiredPythonPath = with kodi.pythonPackages; makePythonPath ([ pillow pycryptodome ]); + + # each kodi addon can potentially export a python module which should be included in PYTHONPATH + # see any addon which supplies `passthru.pythonPath` and the corresponding entry in the addons `addon.xml` + # eg. `` -> pythonPath = "lib"; + additionalPythonPath = + let + addonsWithPythonPath = lib.filter (addon: addon ? pythonPath) addons; + in + lib.concatMapStringsSep ":" (addon: "${addon}${kodiPackages.addonDir}/${addon.namespace}/${addon.pythonPath}") addonsWithPythonPath; in buildEnv { @@ -18,7 +29,7 @@ buildEnv { for exe in kodi{,-standalone} do makeWrapper ${kodi}/bin/$exe $out/bin/$exe \ - --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath requiredPythonPackages} \ + --prefix PYTHONPATH : ${requiredPythonPath}:${additionalPythonPath} \ --prefix KODI_HOME : $out/share/kodi \ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath (lib.concatMap -- cgit 1.4.1