kodi: 19.4 -> 20.0

This commit is contained in:
Aaron Andersen 2022-11-18 20:54:59 -05:00
parent e3a07ea752
commit 2b315453e9
31 changed files with 70 additions and 171 deletions

View file

@ -1,88 +0,0 @@
From 620c3eb38f0dbea6e877e37e97508513e87a0732 Mon Sep 17 00:00:00 2001
From: Jeremy Fleischman <jeremyfleischman@gmail.com>
Date: Sun, 27 Mar 2022 00:44:52 -0700
Subject: [PATCH] Add new KODI_WEBSERVER_EXTRA_WHITELIST cmake var to allow
access to more directories
(This is a backport of
https://github.com/xbmc/xbmc/commit/a6dedce7ba1f03bdd83b019941d1e369a06f7888
to Kodi 19.4 Matrix)
This is useful for NixOS, which often ends up creating a `KODI_HOME`
with symlinks to other files (including the chorus2 interface). Kodi's
webserver cautiously refuses to follow these symlinks, and you end up
getting 404s rather than the web page.
See https://forum.kodi.tv/showthread.php?tid=366338&pid=3079493 for a
discussion of this on the Kodi forum.
---
CMakeLists.txt | 1 +
xbmc/CompileInfo.cpp.in | 5 +++++
xbmc/CompileInfo.h | 1 +
xbmc/utils/FileUtils.cpp | 6 +++++-
4 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2d5369798df23..d5ef6d9390ef0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -243,6 +243,7 @@ add_custom_command(OUTPUT ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp
-DAPP_BUILD_DATE=${APP_BUILD_DATE}
-DAPP_SHARED_LIBRARY_SUFFIX="${APP_SHARED_LIBRARY_SUFFIX}"
-Dprefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
+ -DKODI_WEBSERVER_EXTRA_WHITELIST="${KODI_WEBSERVER_EXTRA_WHITELIST}"
-P ${CMAKE_SOURCE_DIR}/cmake/scripts/common/GenerateVersionedFiles.cmake
DEPENDS ${CMAKE_SOURCE_DIR}/version.txt
export-files
diff --git a/xbmc/CompileInfo.cpp.in b/xbmc/CompileInfo.cpp.in
index f81fe77902236..4f19203a89cde 100644
--- a/xbmc/CompileInfo.cpp.in
+++ b/xbmc/CompileInfo.cpp.in
@@ -105,3 +105,8 @@ std::vector<std::string> CCompileInfo::GetAvailableWindowSystems()
{
return StringUtils::Split("@CORE_PLATFORM_NAME_LC@", ' ');
}
+
+const std::vector<std::string> CCompileInfo::GetWebserverExtraWhitelist()
+{
+ return StringUtils::Split("@KODI_WEBSERVER_EXTRA_WHITELIST@", ',');
+}
diff --git a/xbmc/CompileInfo.h b/xbmc/CompileInfo.h
index 553a0194ee77f..e2521324e6576 100644
--- a/xbmc/CompileInfo.h
+++ b/xbmc/CompileInfo.h
@@ -32,4 +32,5 @@ class CCompileInfo
static const char* GetVersionCode();
static std::vector<std::string> GetAvailableWindowSystems();
static std::vector<ADDON::RepoInfo> LoadOfficialRepoInfos();
+ static const std::vector<std::string> GetWebserverExtraWhitelist();
};
diff --git a/xbmc/utils/FileUtils.cpp b/xbmc/utils/FileUtils.cpp
index e51f3d631c256..fc717c9608098 100644
--- a/xbmc/utils/FileUtils.cpp
+++ b/xbmc/utils/FileUtils.cpp
@@ -6,6 +6,7 @@
* See LICENSES/README.md for more information.
*/
+#include "CompileInfo.h"
#include "FileUtils.h"
#include "ServiceBroker.h"
#include "guilib/GUIKeyboardFactory.h"
@@ -261,12 +262,15 @@ bool CFileUtils::CheckFileAccessAllowed(const std::string &filePath)
"/.ssh/",
};
// ALLOW kodi paths
- const std::vector<std::string> whitelist = {
+ std::vector<std::string> whitelist = {
CSpecialProtocol::TranslatePath("special://home"),
CSpecialProtocol::TranslatePath("special://xbmc"),
CSpecialProtocol::TranslatePath("special://musicartistsinfo")
};
+ auto kodiExtraWhitelist = CCompileInfo::GetWebserverExtraWhitelist();
+ whitelist.insert(whitelist.end(), kodiExtraWhitelist.begin(), kodiExtraWhitelist.end());
+
// image urls come in the form of image://... sometimes with a / appended at the end
// and can be embedded in a music or video file image://music@...
// strip this off to get the real file path

View file

@ -9,7 +9,7 @@
{ attrPath }: { attrPath }:
let let
url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz"; url = "http://mirrors.kodi.tv/addons/nexus/addons.xml.gz";
updateScript = writeShellScript "update.sh" '' updateScript = writeShellScript "update.sh" ''
set -ex set -ex

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "1.0.3.1"; version = "1.0.3.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/script.module.arrow/script.module.arrow-${version}.zip";
sha256 = "0xa16sb2hls59l4gsg1xwb1qbkhcvbykq02l05n5rcm0alg80l3l"; sha256 = "sha256-dFCAHlWgslxsAVQAPP3aDM6Fw+I9PP0ITUVTKJY2QXU=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "1.1.8"; version = "1.1.8";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
hash = "sha256-1f+oEHEhSsDMXH7WssSVjjuDjK3UNyMiNhaw7mh/xjI="; hash = "sha256-1f+oEHEhSsDMXH7WssSVjjuDjK3UNyMiNhaw7mh/xjI=";
}; };

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "2022.9.24"; version = "2022.9.24";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "kIPGEjmnHlgVb11W2RKBlrMy3/+kUOcQZiLCcnHCcno="; sha256 = "sha256-kIPGEjmnHlgVb11W2RKBlrMy3/+kUOcQZiLCcnHCcno=";
}; };
passthru = { passthru = {

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "4.0.0+matrix.1"; version = "4.0.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "1jsd165mb1b8jdan2jbjd3y3xa0xam2cxcccmwazkybpa0r6a7dj"; sha256 = "sha256-sh1lMlB3+fkVr4yxzkRVHag+/GhySWFVk2iFVYsJTcs=";
}; };
passthru = { passthru = {

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "2.8.2"; version = "2.8.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4="; sha256 = "sha256-iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "0.6.0+matrix.1"; version = "0.6.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "026i5rx9rmxcc18ixp6qhbryqdl4pn7cbwqicrishivan6apnacd"; sha256 = "sha256-jSl7lbFqR6hjZhHzxY69hDbs84LY3B5RYKzXnHou0Qg=";
}; };
passthru = { passthru = {

View file

@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.18.2+matrix.1"; version = "0.18.2+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-QBG7V70Dwmfq8ISILxGNvtmQT9fJp2e5gs2C9skRwIw="; sha256 = "sha256-QBG7V70Dwmfq8ISILxGNvtmQT9fJp2e5gs2C9skRwIw=";
}; };

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "3.4.0"; version = "3.4.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "wS1d1L18v4+RGwxDh7OpKRHB2A4qYwiq6b5mAz7l8Pk="; sha256 = "sha256-wS1d1L18v4+RGwxDh7OpKRHB2A4qYwiq6b5mAz7l8Pk=";
}; };
passthru = { passthru = {

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "0.5.10+matrix.1"; version = "0.5.10+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "FcOktwtOT7kDM+3y9qPDk3xU1qVeCduyAdUzebtJzv4="; sha256 = "sha256-FcOktwtOT7kDM+3y9qPDk3xU1qVeCduyAdUzebtJzv4=";
}; };
passthru = { passthru = {

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "1.1.4"; version = "1.1.4";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "eWzMqsE8H0wUvPyd3wvjiaXEg4+sgkQ3CQYjE0VS+9g="; sha256 = "sha256-eWzMqsE8H0wUvPyd3wvjiaXEg4+sgkQ3CQYjE0VS+9g=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "0.1.3.1"; version = "0.1.3.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x"; sha256 = "sha256-nWz5CPoE0uVsZvWjI4q6y4ZKUnraTjTXLSJ1mK4YopI=";
}; };
passthru = { passthru = {

View file

@ -1,4 +1,4 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, genesis-plus-gx }: { lib, buildKodiBinaryAddon, fetchFromGitHub, libretro, genesis-plus-gx }:
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "kodi-libretro-genplus"; pname = "kodi-libretro-genplus";
@ -8,7 +8,7 @@ buildKodiBinaryAddon rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-game"; owner = "kodi-game";
repo = "game.libretro.genplus"; repo = "game.libretro.genplus";
rev = "${version}-${rel}"; rev = "${version}-Matrix";
sha256 = "sha256-F3bt129lBZKlDtp7X0S0q10T9k9C2zNeHG+yIP3818Q="; sha256 = "sha256-F3bt129lBZKlDtp7X0S0q10T9k9C2zNeHG+yIP3818Q=";
}; };

View file

@ -1,4 +1,4 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, mgba }: { lib, buildKodiBinaryAddon, fetchFromGitHub, libretro, mgba }:
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "kodi-libretro-mgba"; pname = "kodi-libretro-mgba";
@ -8,7 +8,7 @@ buildKodiBinaryAddon rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-game"; owner = "kodi-game";
repo = "game.libretro.mgba"; repo = "game.libretro.mgba";
rev = "${version}-${rel}"; rev = "${version}-Matrix";
sha256 = "sha256-lxpj6Y34apYcE22q4W3Anhigp79r4RgiJ36DbES1kzU="; sha256 = "sha256-lxpj6Y34apYcE22q4W3Anhigp79r4RgiJ36DbES1kzU=";
}; };

View file

@ -1,4 +1,4 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, snes9x }: { lib, buildKodiBinaryAddon, fetchFromGitHub, libretro, snes9x }:
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "kodi-libretro-snes9x"; pname = "kodi-libretro-snes9x";
@ -8,7 +8,7 @@ buildKodiBinaryAddon rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-game"; owner = "kodi-game";
repo = "game.libretro.snes9x"; repo = "game.libretro.snes9x";
rev = "${version}-${rel}"; rev = "${version}-Matrix";
sha256 = "sha256-LniZf8Gae4+4Rgc9OGhMCkOI3IA7CPjVrN/gbz9te38="; sha256 = "sha256-LniZf8Gae4+4Rgc9OGhMCkOI3IA7CPjVrN/gbz9te38=";
}; };

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "8.0.18+matrix.1"; version = "8.0.18+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k"; sha256 = "sha256-E1S1EThukF3noU4LC6MDQseRQhSsZr/9qnPSxH/Do7M=";
}; };
passthru = { passthru = {

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "0.5.2+matrix.2"; version = "0.5.2+matrix.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "0fgl4jayq6hbhqxg16nfy9qizwf54c8nvg0icv93knaj13zfzkz8"; sha256 = "sha256-6M/v/ghS2TnSZhG8bREjxfEfcfLOmvA6hgsa7JUk9Dk=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "2.27.1+matrix.1"; version = "2.27.1+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "QxxVT6XaEYQtAFkZde8EaTXzGO7cjG2pApQZcA32xA0="; sha256 = "sha256-QxxVT6XaEYQtAFkZde8EaTXzGO7cjG2pApQZcA32xA0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "0.2.3+matrix.1"; version = "0.2.3+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "1qhp40xd8mbcvzwlamqw1j5l224ry086593948g24drpqiiyc8x6"; sha256 = "sha256-piPmY8Q3NyIeImmkYhDwmQhBiwwcV0X532xV1DogF+I=";
}; };
passthru = { passthru = {

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "0.0.6+matrix.1"; version = "0.0.6+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs"; sha256 = "sha256-WsLR7iUh5F+LXMISBpWx71dLAtg/AMYF6BsiyKZakuE=";
}; };
passthru= { passthru= {

View file

@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "3.17.0+matrix.2"; version = "3.17.0+matrix.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-XLE4x0qr3CFwWqh1BfSg9q+w6pWgFBXG7TyVJWeGQIs="; sha256 = "sha256-XLE4x0qr3CFwWqh1BfSg9q+w6pWgFBXG7TyVJWeGQIs=";
}; };

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "1.15.0+matrix.1"; version = "1.15.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "0c8vb0c4vhknkqqgvzj8l2ddgcm4iah0ca686slxbxbp800cydnf"; sha256 = "sha256-zjbPAEB39dWpNsgoBqCKpLLXmqBI/v0wnnbCTRhYGzE=";
}; };
passthru.updateScript = addonUpdateScript { passthru.updateScript = addonUpdateScript {

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "4.4.0+matrix.1"; version = "4.4.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "19kjhrykx92sy67cajxjckzdwgq47ipwml0bx9vmdr9d191h14p8"; sha256 = "sha256-6JIAQwot5VZ36gvQym88BD/e/mSyS8WO8VqkPn2GcqY=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "3.5.0"; version = "3.5.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "07fb0wjcr8ggidswrjs1r1hzi6grykiyi855bgm7pjzzk95kl99v"; sha256 = "sha256-OyU6S5r/y3vqW6Wg6OP0+Zn4YchBy8x1i++hzCQHyx0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -5,8 +5,8 @@ buildKodiAddon rec {
version = "3.7.4.3"; version = "3.7.4.3";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "0p28hchj05hmccs6b2836kh4vqdqnl169409f2845d0nw9y4wkqq"; sha256 = "sha256-GE9OfOIWtEKQcAmQZAK1uOFN4DQDiWU0YxUWICGDSFw=";
}; };
passthru = { passthru = {

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "1.26.13+matrix.1"; version = "1.26.13+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "pymhHS1TqRv9o/3zBtmP8QSLMXSgFYno0VaR+YqhJqY="; sha256 = "sha256-pymhHS1TqRv9o/3zBtmP8QSLMXSgFYno0VaR+YqhJqY=";
}; };
passthru = { passthru = {

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "0.58.0+matrix.2"; version = "0.58.0+matrix.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "0j2fcrn3hc6207g0k0gx5ypj4j3ww9pd7rnlzq1fgdig00laa8y7"; sha256 = "sha256-xyOlKAAvtucC/tTm027ifEgiry/9gQneAcIwOGxmTkg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,8 +6,8 @@ buildKodiAddon rec {
version = "6.8.24+matrix.1"; version = "6.8.24+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
sha256 = "/yQML2iK5jcIhN6RJC+WJ8EnH640qFJFdaaVeGPEg9U="; sha256 = "sha256-/yQML2iK5jcIhN6RJC+WJ8EnH640qFJFdaaVeGPEg9U=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, makeWrapper { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
, pkg-config, cmake, yasm, python3Packages , pkg-config, cmake, yasm, python3Packages
, libxcrypt, libgcrypt, libgpg-error, libunistring , libxcrypt, libgcrypt, libgpg-error, libunistring
, boost, avahi, lame , boost, avahi, lame
@ -38,25 +38,27 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
assert gbmSupport || waylandSupport || x11Support; assert gbmSupport || waylandSupport || x11Support;
let let
kodiReleaseDate = "20221204"; kodiReleaseDate = "20230115";
kodiVersion = "19.5"; kodiVersion = "20.0";
rel = "Matrix"; rel = "Nexus";
kodi_src = fetchFromGitHub { kodi_src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "xbmc"; repo = "xbmc";
rev = "${kodiVersion}-${rel}"; rev = "${kodiVersion}-${rel}";
sha256 = "sha256-vprhEPxYpY3/AsUgvPNnhBlh0Dl73ekALAblHaUKzd0="; sha256 = "sha256-0BkbA1iovouwjQVtiKFw3+64i7sMWZNiCUfOQ0EsslY=";
}; };
# see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ to get suggested versions for all dependencies
ffmpeg = stdenv.mkDerivation rec { ffmpeg = stdenv.mkDerivation rec {
pname = "kodi-ffmpeg"; pname = "kodi-ffmpeg";
version = "4.3.2"; # see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ffmpeg/FFMPEG-VERSION version = "4.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "FFmpeg"; repo = "FFmpeg";
rev = "${version}-${rel}-19.2"; rev = "${version}-${rel}-Alpha1";
sha256 = "14s215sgc93ds1mrdbkgb7fvy94lpgv2ldricyxzis0gbzqfgs4f"; sha256 = "sha256-EQHmmWnDw+/udKYq7Nrf00nL7I5XWUtmzdauDryfTII=";
}; };
preConfigure = '' preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} . cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
@ -79,22 +81,22 @@ let
libdvdcss = fetchFromGitHub { libdvdcss = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "libdvdcss"; repo = "libdvdcss";
rev = "1.4.2-Leia-Beta-5"; rev = "1.4.3-Next-Nexus-Alpha2-2";
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl"; sha256 = "sha256-CJMGH50mNAkovccNcol5ArF3zUnZKfbVB9EXyQgu5k4=";
}; };
libdvdnav = fetchFromGitHub { libdvdnav = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "libdvdnav"; repo = "libdvdnav";
rev = "6.0.0-Leia-Alpha-3"; rev = "6.1.1-Next-Nexus-Alpha2-2";
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb"; sha256 = "sha256-m8SCjOokVbwJ7eVfYKHap1pQjVbI+BXaoxhGZQIg0+k=";
}; };
libdvdread = fetchFromGitHub { libdvdread = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "libdvdread"; repo = "libdvdread";
rev = "6.0.0-Leia-Alpha-3"; rev = "6.1.3-Next-Nexus-Alpha2-2";
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59"; sha256 = "sha256-AphBQhXud+a6wm52zjzC5biz53NnqWdgpL2QDt2ZuXc=";
}; };
kodi_platforms = lib.optional gbmSupport "gbm" kodi_platforms = lib.optional gbmSupport "gbm"
@ -107,22 +109,6 @@ in stdenv.mkDerivation {
src = kodi_src; src = kodi_src;
patches = [
# This is a backport of
# https://github.com/xbmc/xbmc/commit/a6dedce7ba1f03bdd83b019941d1e369a06f7888
# to Kodi 19.4 Matrix.
# This can be removed once a new major release of Kodi comes out and we upgrade
# to it.
./add-KODI_WEBSERVER_EXTRA_WHITELIST.patch
# A patch to fix build until the next major release of Kodi comes out and we upgrade
# https://github.com/xbmc/xbmc/pull/22291
(fetchpatch {
url = "https://github.com/xbmc/xbmc/commit/5449652abf0bb9dddd0d796de4120e60f19f89a5.patch";
sha256 = "sha256-vqX08dTSPhIur4aVu2BzXEpAxMOjaadwRNI43GSV9Og=";
})
];
buildInputs = [ buildInputs = [
gnutls libidn libtasn1 nasm p11-kit gnutls libidn libtasn1 nasm p11-kit
libxml2 python3Packages.python libxml2 python3Packages.python
@ -196,6 +182,7 @@ in stdenv.mkDerivation {
"-DGIT_VERSION=${kodiReleaseDate}" "-DGIT_VERSION=${kodiReleaseDate}"
"-DENABLE_EVENTCLIENTS=ON" "-DENABLE_EVENTCLIENTS=ON"
"-DENABLE_INTERNAL_CROSSGUID=OFF" "-DENABLE_INTERNAL_CROSSGUID=OFF"
"-DENABLE_INTERNAL_RapidJSON=OFF"
"-DENABLE_OPTICAL=ON" "-DENABLE_OPTICAL=ON"
"-DLIRC_DEVICE=/run/lirc/lircd" "-DLIRC_DEVICE=/run/lirc/lircd"
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig" "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"

View file

@ -9,7 +9,7 @@ in
let self = rec { let self = rec {
addonDir = "/share/kodi/addons"; addonDir = "/share/kodi/addons";
rel = "Matrix"; rel = "Nexus";
callPackage = newScope self; callPackage = newScope self;