Merge pull request #130887 from aanderse/kodi-pythonpath
kodi: set proper PYTHONPATH for addons
This commit is contained in:
commit
927edc89c6
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "1z49b8va7wdyr714c8ixb2sldi0igffcjj3xpbmga58ph0z985vy";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.certifi";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.certifi";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "1jsd165mb1b8jdan2jbjd3y3xa0xam2cxcccmwazkybpa0r6a7dj";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.chardet";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.chardet";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -14,8 +14,11 @@ buildKodiAddon rec {
|
||||
six
|
||||
];
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.dateutil";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.dateutil";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "0pm86m8kh2p0brps3xzxcmmabvb4izkglzkj8dsn33br3vlc7cm7";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.idna";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.idna";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "0y4xn3ygwv1kb7gya7iwdga0g9sa89snpnram0wwqzqn8wn2lyb4";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.inputstreamhelper";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.inputstreamhelper";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -10,8 +10,11 @@ buildKodiAddon rec {
|
||||
sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.kodi-six";
|
||||
passthru = {
|
||||
pythonPath = "libs";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.kodi-six";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.myconnpy";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.myconnpy";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -11,6 +11,8 @@ buildKodiAddon rec {
|
||||
sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
|
||||
};
|
||||
|
||||
passthru.pythonPath = "lib/api";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
|
||||
description = "A comic book reader";
|
||||
|
@ -16,8 +16,11 @@ buildKodiAddon rec {
|
||||
urllib3
|
||||
];
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.requests";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.requests";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.signals";
|
||||
passthru= {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.signals";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,8 +9,11 @@ buildKodiAddon rec {
|
||||
sha256 = "1d2k6gbsnhdadcl1xc7igz4m71z2fcnpln5ppfjv455cmkk110vf";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.urllib3";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.urllib3";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -14,8 +14,11 @@ buildKodiAddon rec {
|
||||
six
|
||||
];
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.websocket";
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.websocket";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -16,8 +16,11 @@ buildKodiAddon rec {
|
||||
inputstreamhelper
|
||||
];
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.youtube";
|
||||
passthru = {
|
||||
pythonPath = "resources/lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.youtube";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -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. `<extension point="xbmc.python.module" library="lib" />` -> 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
|
||||
|
Loading…
Reference in New Issue
Block a user