git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #117034 from aanderse/kodi-jellyfin

kodi.packages.jellyfin: init at 0.7.1, a few fixups

commit342c7e724eb7fb1f60da3eaf082cfe6ea0df1e8f authorAaron Andersen <aaron@fosslib.net> dateSun 21 Mar 2021, 22:10 (6 years ago) parent13bee29e3e54e6
8 files changed+141−1
pkgs/applications/video/kodi-packages/dateutil/default.nix+27 pkgs/applications/video/kodi-packages/jellyfin/default.nix+49 pkgs/applications/video/kodi-packages/kodi-six/default.nix+23 pkgs/applications/video/kodi-packages/netflix/default.nix+3−1 pkgs/applications/video/kodi-packages/six/default.nix+23 pkgs/applications/video/kodi/build-kodi-addon.nix+4 pkgs/applications/video/kodi/build-kodi-binary-addon.nix+4 pkgs/top-level/kodi-packages.nix+8
pkgs/applications/video/kodi-packages/dateutil/default.nixnew file+27
@@ -0,0 +1,27 @@
1+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }:
2+
3+buildKodiAddon rec {
4+ pname = "dateutil";
5+ namespace = "script.module.dateutil";
6+ version = "2.8.1+matrix.1";
7+
8+ src = fetchzip {
9+ url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
10+ sha256 = "1jr77017ihs7j3455i72af71wyvs792kbizq4539ccd98far8lm7";
11+ };
12+
13+ propagatedBuildInputs = [
14+ six
15+ ];
16+
17+ passthru.updateScript = addonUpdateScript {
18+ attrPath = "kodi.packages.dateutil";
19+ };
20+
21+ meta = with lib; {
22+ homepage = "https://dateutil.readthedocs.io/en/stable/";
23+ description = "Extensions to the standard Python datetime module";
24+ license = with licenses; [ asl20 bsd3 ];
25+ maintainers = teams.kodi.members;
26+ };
27+}
pkgs/applications/video/kodi-packages/jellyfin/default.nixnew file+49
@@ -0,0 +1,49 @@
1+{ lib, addonDir, buildKodiAddon, fetchFromGitHub, kodi, requests, dateutil, six, kodi-six, signals }:
2+let
3+ python = kodi.pythonPackages.python.withPackages (p: with p; [ pyyaml ]);
4+in
5+buildKodiAddon rec {
6+ pname = "jellyfin";
7+ namespace = "plugin.video.jellyfin";
8+ version = "0.7.1";
9+
10+ src = fetchFromGitHub {
11+ owner = "jellyfin";
12+ repo = "jellyfin-kodi";
13+ rev = "v${version}";
14+ sha256 = "0fx20gmd5xlg59ks4433qh2b3jhbs5qrnc49zi4rkqqr4jr4nhnn";
15+ };
16+
17+ nativeBuildInputs = [
18+ python
19+ ];
20+
21+ prePatch = ''
22+ substituteInPlace .config/generate_xml.py \
23+ --replace "'jellyfin-kodi/release.yaml'" "'release.yaml'" \
24+ --replace "'jellyfin-kodi/addon.xml'" "'addon.xml'"
25+ '';
26+
27+ buildPhase = ''
28+ ${python}/bin/python3 .config/generate_xml.py py3
29+ '';
30+
31+ postInstall = ''
32+ mv /build/source/addon.xml $out${addonDir}/${namespace}/
33+ '';
34+
35+ propagatedBuildInputs = [
36+ requests
37+ dateutil
38+ six
39+ kodi-six
40+ signals
41+ ];
42+
43+ meta = with lib; {
44+ homepage = "https://jellyfin.org/";
45+ description = "A whole new way to manage and view your media library";
46+ license = licenses.gpl3Only;
47+ maintainers = teams.kodi.members;
48+ };
49+}
pkgs/applications/video/kodi-packages/kodi-six/default.nixnew file+23
@@ -0,0 +1,23 @@
1+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
2+
3+buildKodiAddon rec {
4+ pname = "kodi-six";
5+ namespace = "script.module.kodi-six";
6+ version = "0.1.3.1";
7+
8+ src = fetchzip {
9+ url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
10+ sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x";
11+ };
12+
13+ passthru.updateScript = addonUpdateScript {
14+ attrPath = "kodi.packages.kodi-six";
15+ };
16+
17+ meta = with lib; {
18+ homepage = "https://github.com/romanvm/kodi.six";
19+ description = "Wrappers around Kodi Python API for seamless Python 2/3 compatibility";
20+ license = licenses.gpl3Only;
21+ maintainers = teams.kodi.members;
22+ };
23+}
pkgs/applications/video/kodi-packages/netflix/default.nix+3−1
@@ -1,4 +1,5 @@
1−{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstreamhelper, requests, myconnpy }:
1+{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstream-adaptive, inputstreamhelper, requests, myconnpy }:
2+
23buildKodiAddon rec {
34 pname = "netflix";
45 namespace = "plugin.video.netflix";
@@ -13,6 +14,7 @@ buildKodiAddon rec {
1314
1415 propagatedBuildInputs = [
1516 signals
17+ inputstream-adaptive
1618 inputstreamhelper
1719 requests
1820 myconnpy
pkgs/applications/video/kodi-packages/six/default.nixnew file+23
@@ -0,0 +1,23 @@
1+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
2+
3+buildKodiAddon rec {
4+ pname = "six";
5+ namespace = "script.module.six";
6+ version = "1.14.0+matrix.2";
7+
8+ src = fetchzip {
9+ url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
10+ sha256 = "1f9g43j4y5x7b1bgbwqqfj0p2bkqjpycj17dj7a9j271mcr5zhwb";
11+ };
12+
13+ passthru.updateScript = addonUpdateScript {
14+ attrPath = "kodi.packages.six";
15+ };
16+
17+ meta = with lib; {
18+ homepage = "https://pypi.org/project/six/";
19+ description = "Python 2 and 3 compatibility utilities";
20+ license = licenses.mit;
21+ maintainers = teams.kodi.members;
22+ };
23+}
pkgs/applications/video/kodi/build-kodi-addon.nix+4
@@ -11,11 +11,15 @@ toKodiAddon (stdenv.mkDerivation ({
1111 extraRuntimeDependencies = [ ];
1212
1313 installPhase = ''
14+ runHook preInstall
15+
1416 cd $src/$sourceDir
1517 d=$out${addonDir}/${namespace}
1618 mkdir -p $d
1719 sauce="."
1820 [ -d ${namespace} ] && sauce=${namespace}
1921 cp -R "$sauce/"* $d
22+
23+ runHook postInstall
2024 '';
2125} // attrs))
pkgs/applications/video/kodi/build-kodi-binary-addon.nix+4
@@ -24,8 +24,12 @@ toKodiAddon (stdenv.mkDerivation ({
2424 # and the non-wrapped kodi lib/... folder before even trying to dlopen
2525 # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
2626 installPhase = let n = namespace; in ''
27+ runHook preInstall
28+
2729 make install
2830 ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
2931 ${extraInstallPhase}
32+
33+ runHook postInstall
3034 '';
3135} // attrs))
pkgs/top-level/kodi-packages.nix+8
@@ -66,6 +66,8 @@ let self = rec {
6666 snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
6767 };
6868
69+ jellyfin = callPackage ../applications/video/kodi-packages/jellyfin { };
70+
6971 joystick = callPackage ../applications/video/kodi-packages/joystick { };
7072
7173 netflix = callPackage ../applications/video/kodi-packages/netflix { };
@@ -96,18 +98,24 @@ let self = rec {
9698
9799 chardet = callPackage ../applications/video/kodi-packages/chardet { };
98100
101+ dateutil = callPackage ../applications/video/kodi-packages/dateutil { };
102+
99103 idna = callPackage ../applications/video/kodi-packages/idna { };
100104
101105 inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { };
102106
103107 inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { };
104108
109+ kodi-six = callPackage ../applications/video/kodi-packages/kodi-six { };
110+
105111 myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { };
106112
107113 requests = callPackage ../applications/video/kodi-packages/requests { };
108114
109115 signals = callPackage ../applications/video/kodi-packages/signals { };
110116
117+ six = callPackage ../applications/video/kodi-packages/six { };
118+
111119 urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { };
112120
113121}; in self