summaryrefslogtreecommitdiffstats
path: root/pkgs/applications
diff options
context:
space:
mode:
authorCarles Pagès <page@ruiec.cat>2019-02-23 02:41:10 +0100
committerGitHub <noreply@github.com>2019-02-23 02:41:10 +0100
commit24c3cbfcd000e68eeeb1152e3aae99c192245cd0 (patch)
tree8faae419de0fca1aaa9b6e3d188bdd725e2b1ede /pkgs/applications
parentb320b34b1557fc662768a3b83e45f46093619147 (diff)
parent6307e2b00f331f2814c3dd3c3800893d2f7f4d96 (diff)
Merge pull request #49445 from sephalon/kodi-v18
Kodi v18 with InputStream Adaptive
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/video/kodi/default.nix53
-rw-r--r--pkgs/applications/video/kodi/plugins.nix35
-rw-r--r--pkgs/applications/video/kodi/wrapper.nix5
3 files changed, 60 insertions, 33 deletions
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 05105b64af74..24a1f07fb0d2 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -18,7 +18,7 @@
, libcec, libcec_platform, dcadec, libuuid
, libcrossguid, libmicrohttpd
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1, libXdmcp
-, libplist, p11-kit, zlib
+, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
, dbusSupport ? true, dbus ? null
, joystickSupport ? true, cwiid ? null
, nfsSupport ? true, libnfs ? null
@@ -40,21 +40,18 @@ assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used i
assert vdpauSupport -> libvdpau != null;
# TODO for Kodi 18.0
-# - cmake is no longer in project/cmake
-# - maybe we can remove auto{conf,make} and libtool from inputs
# - check if dbus support PR has been merged and add dbus as a buildInput
-# - try to use system ffmpeg (kodi 17 works best with bundled 3.1 with patches)
let
- kodiReleaseDate = "20171115";
- kodiVersion = "17.6";
- rel = "Krypton";
+ kodiReleaseDate = "20190129";
+ kodiVersion = "18.0";
+ rel = "Leia";
kodi_src = fetchFromGitHub {
owner = "xbmc";
repo = "xbmc";
rev = "${kodiVersion}-${rel}";
- sha256 = "1pwmmbry7dajwdpmc1mdygjvxna4kl38h32d71g10yf3mdm5wmz3";
+ sha256 = "1ci5jjvqly01lysdp6j6jrnn49z4is9z5kan5zl3cpqm9w7rqarg";
};
kodiDependency = { name, version, rev, sha256, ... } @attrs:
@@ -72,9 +69,9 @@ let
ffmpeg = kodiDependency rec {
name = "FFmpeg";
- version = "3.1.11";
- rev = "${version}-${rel}-17.5"; # TODO: change 17.5 back to ${kodiVersion}
- sha256 = "0nc4sb6v1g3l11v9h5l9n44a8r40186rcbp2xg5c7vg6wcpjid13";
+ version = "4.0.3";
+ rev = "${version}-${rel}-RC5";
+ sha256 = "0l20bysv2y711khwpnpw4dz6mzd37qllki3fnv4dx1lj8ivydrlx";
preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
'';
@@ -86,29 +83,29 @@ let
# we should be able to build these externally and have kodi reference them as buildInputs.
# Doesn't work ATM though so we just use them for the src
- libdvdcss = kodiDependency {
+ libdvdcss = kodiDependency rec {
name = "libdvdcss";
- version = "20160215";
- rev = "2f12236bc1c92f73c21e973363f79eb300de603f";
- sha256 = "198r0q73i55ga1dvyqq9nfcri0zq08b94hy8671lg14i3izx44dd";
+ version = "1.4.2";
+ rev = "${version}-${rel}-Beta-5";
+ sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
buildInputs = [ libdvdread ];
nativeBuildInputs = [ autoreconfHook pkgconfig ];
};
- libdvdnav = kodiDependency {
+ libdvdnav = kodiDependency rec {
name = "libdvdnav";
- version = "20170217";
- rev = "981488f7f27554b103cca10c1fbeba027396c94a";
- sha256 = "089pswc51l3avh95zl4cpsh7gh1innh7b2y4xgx840mcmy46ycr8";
+ version = "6.0.0";
+ rev = "${version}-${rel}-Alpha-3";
+ sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
buildInputs = [ libdvdread ];
nativeBuildInputs = [ autoreconfHook pkgconfig ];
};
- libdvdread = kodiDependency {
+ libdvdread = kodiDependency rec {
name = "libdvdread";
- version = "20160221";
- rev = "17d99db97e7b8f23077b342369d3c22a6250affd";
- sha256 = "1gr5aq1cjr3as9mnwrw29cxn4m6f6pfrxdahkdcjy70q3ldg90sl";
+ version = "6.0.0";
+ rev = "${version}-${rel}-Alpha-3";
+ sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
nativeBuildInputs = [ autoreconfHook pkgconfig ];
};
@@ -136,7 +133,7 @@ in stdenv.mkDerivation rec {
libgcrypt libgpgerror libunistring
libcrossguid cwiid libplist
bluez giflib glib harfbuzz lcms2 libpthreadstubs libXdmcp
- ffmpeg
+ ffmpeg flatbuffers fmt fstrcmp rapidjson
# libdvdcss libdvdnav libdvdread
]
++ lib.optional dbusSupport dbus
@@ -176,14 +173,10 @@ in stdenv.mkDerivation rec {
doCheck = false;
postPatch = ''
- substituteInPlace xbmc/linux/LinuxTimezone.cpp \
+ substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
'';
- preConfigure = ''
- cd project/cmake
- '';
-
postInstall = ''
for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \
@@ -209,6 +202,6 @@ in stdenv.mkDerivation rec {
homepage = https://kodi.tv/;
license = licenses.gpl2;
platforms = platforms.linux;
- maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg ];
+ maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg sephalon ];
};
}
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix
index 196852933a98..e3ee1b38916b 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/plugins.nix
@@ -1,7 +1,7 @@
{ stdenv, callPackage, fetchurl, fetchFromGitHub, unzip
, cmake, kodiPlain, libcec_platform, tinyxml
, steam, libusb, pcre-cpp, jsoncpp, libhdhomerun, zlib
-, python2Packages }:
+, python2Packages, expat, glib, nspr, nss }:
with stdenv.lib;
@@ -64,7 +64,8 @@ let self = rec {
'';
} // args));
- mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [], ... }@args:
+ mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [],
+ extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args:
toKodiPlugin (stdenv.mkDerivation (rec {
name = "kodi-plugin-${plugin}-${version}";
@@ -84,6 +85,7 @@ let self = rec {
installPhase = let n = namespace; in ''
make install
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
+ ${extraInstallPhase}
'';
} // args));
@@ -470,4 +472,33 @@ let self = rec {
};
});
+ inputstream-adaptive = mkKodiABIPlugin rec {
+
+ plugin = "inputstream-adaptive";
+ namespace = "inputstream.adaptive";
+ version = "2.3.12";
+
+ src = fetchFromGitHub {
+ owner = "peak3d";
+ repo = "inputstream.adaptive";
+ rev = "${version}";
+ sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
+ };
+
+ extraBuildInputs = [ expat ];
+
+ extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
+
+ extraInstallPhase = let n = namespace; in ''
+ ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so
+ '';
+
+ meta = {
+ homepage = https://github.com/peak3d/inputstream.adaptive;
+ description = "Kodi inputstream addon for several manifest types";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ sephalon ];
+ };
+ };
+
}; in self
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index d0dc9274a105..b4365eed949b 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -14,7 +14,10 @@ buildEnv {
do
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
- --prefix KODI_HOME : $out/share/kodi
+ --prefix KODI_HOME : $out/share/kodi \
+ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+ (stdenv.lib.concatMap
+ (plugin: plugin.extraRuntimeDependencies) plugins)}"
done
'';