uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
|
|
@ -0,0 +1,88 @@
|
|||
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
|
||||
26
pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
Normal file
26
pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, requests, vfs-libarchive }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "a4ksubtitles";
|
||||
namespace = "service.subtitles.a4ksubtitles";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "a4k-openproject";
|
||||
repo = "a4kSubtitles";
|
||||
rev = "${namespace}/${namespace}-${version}";
|
||||
sha256 = "0fg5mcvxdc3hqybp1spy7d1nnqirwhcvrblbwksikym9m3qgw2m5";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
vfs-libarchive
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://a4k-openproject.github.io/a4kSubtitles/";
|
||||
description = "Multi-Source Subtitles Addon";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{ writeShellScript
|
||||
, nix
|
||||
, curl
|
||||
, gzip
|
||||
, xmlstarlet
|
||||
, common-updater-scripts
|
||||
}:
|
||||
|
||||
{ attrPath }:
|
||||
|
||||
let
|
||||
url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz";
|
||||
updateScript = writeShellScript "update.sh" ''
|
||||
set -ex
|
||||
|
||||
attrPath=$1
|
||||
namespace=$(${nix}/bin/nix-instantiate $systemArg --eval -E "with import ./. {}; $attrPath.namespace" | tr -d '"')
|
||||
version=$(${curl}/bin/curl -s -L ${url} | ${gzip}/bin/gunzip -c | ${xmlstarlet}/bin/xml select -T -t -m "//addons/addon[@id='$namespace']" -v @version)
|
||||
|
||||
${common-updater-scripts}/bin/update-source-version "$attrPath" "$version"
|
||||
'';
|
||||
in
|
||||
[ updateScript attrPath ]
|
||||
28
pkgs/applications/video/kodi/addons/archive_tool/default.nix
Normal file
28
pkgs/applications/video/kodi/addons/archive_tool/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, vfs-libarchive }:
|
||||
buildKodiAddon rec {
|
||||
pname = "archive_tool";
|
||||
namespace = "script.module.archive_tool";
|
||||
version = "2.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zach-morris";
|
||||
repo = "script.module.archive_tool";
|
||||
rev = version;
|
||||
sha256 = "0hbkyk59xxfjv6vzfjplahmqxi5564qjlwyq6k8ijy6jjcwnd3p7";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
vfs-libarchive
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/zach-morris/script.module.archive_tool";
|
||||
description = "A set of common python functions to work with the Kodi archive virtual file system (vfs) binary addons";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/video/kodi/addons/arrow/default.nix
Normal file
30
pkgs/applications/video/kodi/addons/arrow/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }:
|
||||
buildKodiAddon rec {
|
||||
pname = "arrow";
|
||||
namespace = "script.module.arrow";
|
||||
version = "1.0.3.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0xa16sb2hls59l4gsg1xwb1qbkhcvbykq02l05n5rcm0alg80l3l";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil
|
||||
typing_extensions
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.arrow";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/razzeee/script.module.arrow";
|
||||
description = "Better dates & times for Python";
|
||||
license = licenses.asl20;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
31
pkgs/applications/video/kodi/addons/arteplussept/default.nix
Normal file
31
pkgs/applications/video/kodi/addons/arteplussept/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "arteplussept";
|
||||
namespace = "plugin.video.arteplussept";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
hash = "sha256-IYodi0Uz16Qg4MHCz/K06pEXblrsBxHD25fb6LrW8To=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil
|
||||
requests
|
||||
xbmcswift2
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.arteplussept";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/known-as-bmf/plugin.video.arteplussept";
|
||||
description = "Watch videos available on Arte+7";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/certifi/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/certifi/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "certifi";
|
||||
namespace = "script.module.certifi";
|
||||
version = "2020.12.05+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1z49b8va7wdyr714c8ixb2sldi0igffcjj3xpbmga58ph0z985vy";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.certifi";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://certifi.io";
|
||||
description = "Python package for providing Mozilla's CA Bundle";
|
||||
license = licenses.mpl20;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/chardet/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/chardet/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "chardet";
|
||||
namespace = "script.module.chardet";
|
||||
version = "4.0.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1jsd165mb1b8jdan2jbjd3y3xa0xam2cxcccmwazkybpa0r6a7dj";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.chardet";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Freso/script.module.chardet";
|
||||
description = "Universal encoding detector";
|
||||
license = licenses.lgpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchFromGitHub, toKodiAddon, addonDir }:
|
||||
let
|
||||
drv = stdenv.mkDerivation {
|
||||
pname = "controller-topology-project";
|
||||
version = "unstable-2022-01-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "controller-topology-project";
|
||||
rev = "e2a9bac903f21b2acfeee374070cfc97d03aba2d";
|
||||
sha256 = "sha256-o6uKxOjEYNAK27drvNOokOFPdjkOEnr49mBre9ycM0w=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# remove addons already included in the base kodi package
|
||||
rm -r addons/game.controller.default
|
||||
rm -r addons/game.controller.snes
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out${addonDir}
|
||||
cp -r addons/* $out${addonDir}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-game/controller-topology-project";
|
||||
description = "Models how controllers connect to and map to each other for all gaming history";
|
||||
license = with licenses; [ odbl ];
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
};
|
||||
in
|
||||
toKodiAddon drv
|
||||
30
pkgs/applications/video/kodi/addons/dateutil/default.nix
Normal file
30
pkgs/applications/video/kodi/addons/dateutil/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "dateutil";
|
||||
namespace = "script.module.dateutil";
|
||||
version = "2.8.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.dateutil";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://dateutil.readthedocs.io/en/stable/";
|
||||
description = "Extensions to the standard Python datetime module";
|
||||
license = with licenses; [ asl20 bsd3 ];
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
26
pkgs/applications/video/kodi/addons/defusedxml/default.nix
Normal file
26
pkgs/applications/video/kodi/addons/defusedxml/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "defusedxml";
|
||||
namespace = "script.module.defusedxml";
|
||||
version = "0.6.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "026i5rx9rmxcc18ixp6qhbryqdl4pn7cbwqicrishivan6apnacd";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.defusedxml";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tiran/defusedxml";
|
||||
description = "defusing XML bombs and other exploits";
|
||||
license = licenses.psfl;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
26
pkgs/applications/video/kodi/addons/future/default.nix
Normal file
26
pkgs/applications/video/kodi/addons/future/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "future";
|
||||
namespace = "script.module.future";
|
||||
version = "0.18.2+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-QBG7V70Dwmfq8ISILxGNvtmQT9fJp2e5gs2C9skRwIw=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.future";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://python-future.org";
|
||||
description = "The missing compatibility layer between Python 2 and Python 3";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/video/kodi/addons/iagl/default.nix
Normal file
30
pkgs/applications/video/kodi/addons/iagl/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, fetchzip, dateutil, requests, routing, vfs-libarchive, archive_tool, youtube }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "iagl";
|
||||
namespace = "plugin.program.iagl";
|
||||
version = "3.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zach-morris";
|
||||
repo = "plugin.program.iagl";
|
||||
rev = version;
|
||||
sha256 = "sha256-Ha9wUHURPql6xew5bUd33DpgRt+8vwIHocxPopmXj4c=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil
|
||||
requests
|
||||
routing
|
||||
vfs-libarchive
|
||||
archive_tool
|
||||
youtube
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/zach-morris/plugin.program.iagl";
|
||||
description = "Launch Games from the Internet using Kodi";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/idna/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/idna/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "idna";
|
||||
namespace = "script.module.idna";
|
||||
version = "2.10.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0pm86m8kh2p0brps3xzxcmmabvb4izkglzkj8dsn33br3vlc7cm7";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.idna";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Freso/script.module.idna";
|
||||
description = "Internationalized Domain Names for Python";
|
||||
license = licenses.bsd3;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss, gtest }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-adaptive";
|
||||
namespace = "inputstream.adaptive";
|
||||
version = "19.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.adaptive";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-YYIPPxM8zVIugqLz0YntVZt1N+dReH+7V1Lkeif2wIY=";
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [ gtest ];
|
||||
|
||||
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/${addonDir}/${n}/libssd_wv.so
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/xbmc/inputstream.adaptive";
|
||||
description = "Kodi inputstream addon for several manifest types";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, kodi, bzip2, zlib }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-ffmpegdirect";
|
||||
namespace = "inputstream.ffmpegdirect";
|
||||
version = "19.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.ffmpegdirect";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-yVMo3cRsIww1y0jGrqRag2Bc1x98+e86AHlnY1O9klE=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/xbmc/inputstream.ffmpegdirect/";
|
||||
description = "InputStream Client for streams that can be opened by either FFmpeg's libavformat or Kodi's cURL";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, rtmpdump, zlib }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-rtmp";
|
||||
namespace = "inputstream.rtmp";
|
||||
version = "19.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.rtmp";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-BNc9HJ4Yq1WTxTr7AUHBB9yDz8oefy2EtFRwVYVGcaY=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ openssl rtmpdump zlib ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/xbmc/inputstream.rtmp/";
|
||||
description = "Client for RTMP streams";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "inputstreamhelper";
|
||||
namespace = "script.module.inputstreamhelper";
|
||||
version = "0.5.10+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "FcOktwtOT7kDM+3y9qPDk3xU1qVeCduyAdUzebtJzv4=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.inputstreamhelper";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
|
||||
description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
50
pkgs/applications/video/kodi/addons/jellyfin/default.nix
Normal file
50
pkgs/applications/video/kodi/addons/jellyfin/default.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ lib, addonDir, buildKodiAddon, fetchFromGitHub, kodi, requests, dateutil, six, kodi-six, signals, websocket }:
|
||||
let
|
||||
python = kodi.pythonPackages.python.withPackages (p: with p; [ pyyaml ]);
|
||||
in
|
||||
buildKodiAddon rec {
|
||||
pname = "jellyfin";
|
||||
namespace = "plugin.video.jellyfin";
|
||||
version = "0.7.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jellyfin";
|
||||
repo = "jellyfin-kodi";
|
||||
rev = "v${version}";
|
||||
sha256 = "06glhnpayldficvvhlkbxg7zizl2wqms66fnc3p63nm3y7mqa9dd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
# ZIP does not support timestamps before 1980 - https://bugs.python.org/issue34097
|
||||
substituteInPlace build.py \
|
||||
--replace "with zipfile.ZipFile('{}/{}'.format(target, archive_name), 'w') as z:" "with zipfile.ZipFile('{}/{}'.format(target, archive_name), 'w', strict_timestamps=False) as z:"
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
${python}/bin/python3 build.py --version=py3
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mv /build/source/addon.xml $out${addonDir}/${namespace}/
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
dateutil
|
||||
six
|
||||
kodi-six
|
||||
signals
|
||||
websocket
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://jellyfin.org/";
|
||||
description = "A whole new way to manage and view your media library";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/video/kodi/addons/joystick/default.nix
Normal file
22
pkgs/applications/video/kodi/addons/joystick/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml, udev }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.joystick";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ tinyxml udev ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Binary addon for raw joystick input.";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
24
pkgs/applications/video/kodi/addons/keymap/default.nix
Normal file
24
pkgs/applications/video/kodi/addons/keymap/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, addonDir, buildKodiAddon, fetchzip, defusedxml, kodi-six }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "keymap";
|
||||
namespace = "script.keymap";
|
||||
version = "1.1.3+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1icrailzpf60nw62xd0khqdp66dnr473m2aa9wzpmkk3qj1ay6jv";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
defusedxml
|
||||
kodi-six
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tamland/xbmc-keymap-editor";
|
||||
description = "A GUI for configuring mappings for remotes, keyboard and other inputs supported by Kodi";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
{ stdenv, fetchFromGitHub, cmake, kodi, libcec_platform, tinyxml }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kodi-platform";
|
||||
version = "17.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = pname;
|
||||
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
|
||||
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ kodi libcec_platform tinyxml ];
|
||||
}
|
||||
26
pkgs/applications/video/kodi/addons/kodi-six/default.nix
Normal file
26
pkgs/applications/video/kodi/addons/kodi-six/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "kodi-six";
|
||||
namespace = "script.module.kodi-six";
|
||||
version = "0.1.3.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "libs";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.kodi-six";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/romanvm/kodi.six";
|
||||
description = "Wrappers around Kodi Python API for seamless Python 2/3 compatibility";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, genesis-plus-gx }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "kodi-libretro-genplus";
|
||||
namespace = "game.libretro.genplus";
|
||||
version = "1.7.4.31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "game.libretro.genplus";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "0lcii32wzpswjjkwhv250l238g31akr66dhkbv8gj4v1i4z7hry8";
|
||||
};
|
||||
|
||||
extraCMakeFlags = [
|
||||
"-DGENPLUS_LIB=${genesis-plus-gx}/lib/retroarch/cores/genesis_plus_gx_libretro.so"
|
||||
];
|
||||
|
||||
extraBuildInputs = [ genesis-plus-gx ];
|
||||
propagatedBuildInputs = [
|
||||
libretro
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-game/game.libretro.genplus";
|
||||
description = "Genesis Plus GX GameClient for Kodi";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, mgba }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "kodi-libretro-mgba";
|
||||
namespace = "game.libretro.mgba";
|
||||
version = "0.9.2.31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "game.libretro.mgba";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-eZLuNhLwMTtzpLGkymc9cLC83FQJWZ2ZT0iyz4sY4EA=";
|
||||
};
|
||||
|
||||
extraCMakeFlags = [
|
||||
"-DMGBA_LIB=${mgba}/lib/retroarch/cores/mgba_libretro.so"
|
||||
];
|
||||
|
||||
extraBuildInputs = [ mgba ];
|
||||
propagatedBuildInputs = [
|
||||
libretro
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-game/game.libretro.mgba";
|
||||
description = "mGBA for Kodi";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, snes9x }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "kodi-libretro-snes9x";
|
||||
namespace = "game.libretro.snes9x";
|
||||
version = "1.60.0.29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "game.libretro.snes9x";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1wyfkg4fncc604alnbaqk92fi1h80n7bwiqfkb8479x5517byab1";
|
||||
};
|
||||
|
||||
extraCMakeFlags = [
|
||||
"-DSNES9X_LIB=${snes9x}/lib/retroarch/cores/snes9x_libretro.so"
|
||||
];
|
||||
|
||||
extraBuildInputs = [ snes9x ];
|
||||
propagatedBuildInputs = [
|
||||
libretro
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-game/game.libretro.snes9x";
|
||||
description = "Snes9X GameClient for Kodi";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
24
pkgs/applications/video/kodi/addons/libretro/default.nix
Normal file
24
pkgs/applications/video/kodi/addons/libretro/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml }:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "libretro";
|
||||
namespace = "game.libretro";
|
||||
version = "19.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "game.libretro";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1831wbbc4a545lr4mg1fm4sbx75k5lkrfqaa5fh308aar0nm974d";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ tinyxml ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-game/game.libretro";
|
||||
description = "Libretro wrapper for Kodi's Game API";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/myconnpy/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/myconnpy/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "myconnpy";
|
||||
namespace = "script.module.myconnpy";
|
||||
version = "8.0.18+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.myconnpy";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://dev.mysql.com/doc/connector-python/en/index.html";
|
||||
description = "MySQL Connector/Python";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
29
pkgs/applications/video/kodi/addons/netflix/default.nix
Normal file
29
pkgs/applications/video/kodi/addons/netflix/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstream-adaptive, inputstreamhelper, requests, myconnpy }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "netflix";
|
||||
namespace = "plugin.video.netflix";
|
||||
version = "1.18.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CastagnaIT";
|
||||
repo = namespace;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-nunjcVapWWTxYtILEcrkfJiWvSz71zyxSCbWQ4aCfLM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
signals
|
||||
inputstream-adaptive
|
||||
inputstreamhelper
|
||||
requests
|
||||
myconnpy
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
|
||||
description = "Netflix VOD Services Add-on";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
28
pkgs/applications/video/kodi/addons/orftvthek/default.nix
Normal file
28
pkgs/applications/video/kodi/addons/orftvthek/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, future, kodi-six, simplejson, inputstreamhelper }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "orftvthek";
|
||||
namespace = "plugin.video.orftvthek";
|
||||
version = "0.12.3+matrix.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "s0faking";
|
||||
repo = namespace;
|
||||
rev = version;
|
||||
sha256 = "sha256-GB9VkC9Vbi7TJXl/vF3ViF/tAcHGH0KxYQ0zkfMLZCY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
future
|
||||
kodi-six
|
||||
simplejson
|
||||
inputstreamhelper
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/s0faking/plugin.video.orftvthek";
|
||||
description = "An addon that gives you access to the ORF TVthek Video Platform";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
21
pkgs/applications/video/kodi/addons/osmc-skin/default.nix
Normal file
21
pkgs/applications/video/kodi/addons/osmc-skin/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "osmc-skin";
|
||||
namespace = "skin.osmc";
|
||||
version = "18.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmc";
|
||||
repo = namespace;
|
||||
rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
|
||||
sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/osmc/skin.osmc";
|
||||
description = "The default skin for OSMC";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.cc-by-nc-sa-30;
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/video/kodi/addons/pdfreader/default.nix
Normal file
22
pkgs/applications/video/kodi/addons/pdfreader/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "pdfreader";
|
||||
namespace = "plugin.image.pdf";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "i96751414";
|
||||
repo = "plugin.image.pdfreader";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
|
||||
};
|
||||
|
||||
passthru.pythonPath = "lib/api";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
|
||||
description = "A comic book reader";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, jsoncpp, libhdhomerun }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-hdhomerun";
|
||||
namespace = "pvr.hdhomerun";
|
||||
version = "19.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hdhomerun";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-sYVb4nhUz2j19yv3/cyLyUAC+1K0c05+iAMEfpPifjs=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ jsoncpp libhdhomerun ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
|
||||
description = "Kodi's HDHomeRun PVR client addon";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
21
pkgs/applications/video/kodi/addons/pvr-hts/default.nix
Normal file
21
pkgs/applications/video/kodi/addons/pvr-hts/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-hts";
|
||||
namespace = "pvr.hts";
|
||||
version = "19.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hts";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-Lc3B1TdQ4oQIEIyKuQju+5cpInF5i2u4WFe3okFhe+I=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hts";
|
||||
description = "Kodi's Tvheadend HTSP client addon";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub
|
||||
, xz, pugixml, zlib
|
||||
, inputstream-adaptive, inputstream-ffmpegdirect, inputstream-rtmp
|
||||
}:
|
||||
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-iptvsimple";
|
||||
namespace = "pvr.iptvsimple";
|
||||
version = "19.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.iptvsimple";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-APRj/Z/GtRXNSVX5kB0o09FTa9me2ESzrZ/Q+QNrw0w=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [
|
||||
xz
|
||||
pugixml
|
||||
zlib
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
inputstream-adaptive
|
||||
inputstream-ffmpegdirect
|
||||
inputstream-rtmp
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
|
||||
description = "Kodi's IPTV Simple client addon";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
|
||||
buildKodiAddon rec {
|
||||
pname = "requests-cache";
|
||||
namespace = "script.module.requests-cache";
|
||||
version = "0.5.2+matrix.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0fgl4jayq6hbhqxg16nfy9qizwf54c8nvg0icv93knaj13zfzkz8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.requests-cache";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/reclosedev/requests-cache";
|
||||
description = "Persistent cache for requests library";
|
||||
license = licenses.bsd2;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/video/kodi/addons/requests/default.nix
Normal file
32
pkgs/applications/video/kodi/addons/requests/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
|
||||
buildKodiAddon rec {
|
||||
pname = "requests";
|
||||
namespace = "script.module.requests";
|
||||
version = "2.25.1+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "00qhykizvspzfwgl7qz9cyxrazs54jgin40g49v5nzmjq3qf62hb";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
certifi
|
||||
chardet
|
||||
idna
|
||||
urllib3
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.requests";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://python-requests.org";
|
||||
description = "Python HTTP for Humans";
|
||||
license = licenses.asl20;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/routing/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/routing/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "routing";
|
||||
namespace = "script.module.routing";
|
||||
version = "0.2.3+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1qhp40xd8mbcvzwlamqw1j5l224ry086593948g24drpqiiyc8x6";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.routing";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tamland/kodi-plugin-routing";
|
||||
description = "A routing module for kodi plugins";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/signals/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/signals/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "signals";
|
||||
namespace = "script.module.addon.signals";
|
||||
version = "0.0.6+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs";
|
||||
};
|
||||
|
||||
passthru= {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.signals";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ruuk/script.module.addon.signals";
|
||||
description = "Provides signal/slot mechanism for inter-addon communication";
|
||||
license = licenses.lgpl21Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
26
pkgs/applications/video/kodi/addons/simplejson/default.nix
Normal file
26
pkgs/applications/video/kodi/addons/simplejson/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "simplejson";
|
||||
namespace = "script.module.simplejson";
|
||||
version = "3.17.0+matrix.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-XLE4x0qr3CFwWqh1BfSg9q+w6pWgFBXG7TyVJWeGQIs=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.simplejson";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/simplejson/simplejson";
|
||||
description = "Simple, fast, extensible JSON encoder/decoder for Python";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
23
pkgs/applications/video/kodi/addons/six/default.nix
Normal file
23
pkgs/applications/video/kodi/addons/six/default.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "six";
|
||||
namespace = "script.module.six";
|
||||
version = "1.15.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0c8vb0c4vhknkqqgvzj8l2ddgcm4iah0ca686slxbxbp800cydnf";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.six";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://pypi.org/project/six/";
|
||||
description = "Python 2 and 3 compatibility utilities";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiBinaryAddon, fetchFromGitHub, libusb1 }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.steamcontroller";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = namespace;
|
||||
rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
|
||||
sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libusb1 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Binary addon for steam controller.";
|
||||
platforms = platforms.all;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, steam }:
|
||||
buildKodiAddon {
|
||||
pname = "steam-launcher";
|
||||
namespace = "script.steam.launcher";
|
||||
version = "3.5.1";
|
||||
|
||||
src = fetchFromGitHub rec {
|
||||
owner = "teeedubb";
|
||||
repo = owner + "-xbmc-repo";
|
||||
rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
|
||||
sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ steam ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
|
||||
description = "Launch Steam in Big Picture Mode from Kodi";
|
||||
longDescription = ''
|
||||
This add-on will close/minimise Kodi, launch Steam in Big
|
||||
Picture Mode and when Steam BPM is exited (either by quitting
|
||||
Steam or returning to the desktop) Kodi will
|
||||
restart/maximise. Running pre/post Steam scripts can be
|
||||
configured via the addon.
|
||||
'';
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, requests, requests-cache, routing }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "steam-library";
|
||||
namespace = "plugin.program.steam.library";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aanderse";
|
||||
repo = namespace;
|
||||
rev = "v${version}";
|
||||
sha256 = "1ai8k55bamzkx7awk3dl8ksw93pan3h9b1xlylcldy7a0ddldzdg";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
requests-cache
|
||||
routing
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/aanderse/plugin.program.steam.library";
|
||||
description = "View your entire Steam library right from Kodi";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
27
pkgs/applications/video/kodi/addons/svtplay/default.nix
Normal file
27
pkgs/applications/video/kodi/addons/svtplay/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "svtplay";
|
||||
namespace = "plugin.video.svtplay";
|
||||
version = "5.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nilzen";
|
||||
repo = "xbmc-" + pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
|
||||
description = "Watch content from SVT Play";
|
||||
longDescription = ''
|
||||
With this addon you can stream content from SVT Play
|
||||
(svtplay.se). The plugin fetches the video URL from the SVT
|
||||
Play website and feeds it to the Kodi video player. HLS (m3u8)
|
||||
is the preferred video format by the plugin.
|
||||
'';
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
31
pkgs/applications/video/kodi/addons/trakt-module/default.nix
Normal file
31
pkgs/applications/video/kodi/addons/trakt-module/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, six, arrow }:
|
||||
buildKodiAddon rec {
|
||||
pname = "trakt-module";
|
||||
namespace = "script.module.trakt";
|
||||
version = "4.4.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "19kjhrykx92sy67cajxjckzdwgq47ipwml0bx9vmdr9d191h14p8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
six
|
||||
arrow
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.trakt-module";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Razzeee/script.module.trakt";
|
||||
description = "Python trakt.py library packed for Kodi";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/video/kodi/addons/trakt/default.nix
Normal file
30
pkgs/applications/video/kodi/addons/trakt/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, trakt-module, dateutil }:
|
||||
buildKodiAddon rec {
|
||||
pname = "trakt";
|
||||
namespace = "script.trakt";
|
||||
version = "3.5.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "07fb0wjcr8ggidswrjs1r1hzi6grykiyi855bgm7pjzzk95kl99v";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil
|
||||
trakt-module
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.trakt";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://kodi.wiki/view/Add-on:Trakt";
|
||||
description = "Trakt.tv movie and TV show scrobbler for Kodi";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "typing_extensions";
|
||||
namespace = "script.module.typing_extensions";
|
||||
version = "3.7.4.3";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0p28hchj05hmccs6b2836kh4vqdqnl169409f2845d0nw9y4wkqq";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.typing_extensions";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/python/typing/tree/master/typing_extensions";
|
||||
description = "Python typing extensions";
|
||||
license = licenses.psfl;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/urllib3/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/urllib3/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "urllib3";
|
||||
namespace = "script.module.urllib3";
|
||||
version = "1.26.4+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1d2k6gbsnhdadcl1xc7igz4m71z2fcnpln5ppfjv455cmkk110vf";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.urllib3";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://urllib3.readthedocs.io/en/latest/";
|
||||
description = "HTTP library with thread-safe connection pooling, file post, and more";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libarchive, xz, bzip2, zlib, lz4, lzo, openssl }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.libarchive";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LibArchive Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
Normal file
22
pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, libssh, zlib }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.sftp";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ openssl libssh zlib ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "SFTP Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/video/kodi/addons/websocket/default.nix
Normal file
30
pkgs/applications/video/kodi/addons/websocket/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six, addonDir }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "websocket";
|
||||
namespace = "script.module.websocket";
|
||||
version = "0.58.0+matrix.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0j2fcrn3hc6207g0k0gx5ypj4j3ww9pd7rnlzq1fgdig00laa8y7";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.websocket";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/websocket-client/websocket-client";
|
||||
description = "A WebSocket client for Python";
|
||||
license = licenses.lgpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/addons/xbmcswift2/default.nix
Normal file
25
pkgs/applications/video/kodi/addons/xbmcswift2/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "xbmcswift2";
|
||||
namespace = "script.module.xbmcswift2";
|
||||
version = "19.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "XBMC-Addons";
|
||||
repo = namespace;
|
||||
rev = version;
|
||||
sha256 = "sha256-Z+rHz3wncoNvV1pwhRzJFB/X0H6wdfwg88otVh27wg8=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
pythonPath = "lib";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/XBMC-Addons/script.module.xbmcswift2";
|
||||
description = "Framework to ease development of Kodi addons";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
41
pkgs/applications/video/kodi/addons/youtube/default.nix
Normal file
41
pkgs/applications/video/kodi/addons/youtube/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, buildKodiAddon, fetchpatch, fetchzip, addonUpdateScript, six, requests, inputstreamhelper }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "youtube";
|
||||
namespace = "plugin.video.youtube";
|
||||
version = "6.8.18+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "F950rnE/YxwWI0ieHC2TdGNSfrQDHlStnxLbA6UjEaM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
requests
|
||||
inputstreamhelper
|
||||
];
|
||||
|
||||
passthru = {
|
||||
pythonPath = "resources/lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.youtube";
|
||||
};
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This patch can be removed once https://github.com/anxdpanic/plugin.video.youtube/pull/260 has been merged.
|
||||
(fetchpatch {
|
||||
name = "fix-addon-path";
|
||||
url = "https://patch-diff.githubusercontent.com/raw/anxdpanic/plugin.video.youtube/pull/260.patch";
|
||||
sha256 = "11c9sfwl5kvfll2jws5b4i46s60v6gkfns4al13p4m5ch9rk06hs";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/anxdpanic/plugin.video.youtube";
|
||||
description = "YouTube is one of the biggest video-sharing websites of the world";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/video/kodi/build-kodi-addon.nix
Normal file
25
pkgs/applications/video/kodi/build-kodi-addon.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ stdenv, toKodiAddon, addonDir }:
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, sourceDir ? ""
|
||||
, ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
extraRuntimeDependencies = [ ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cd ./$sourceDir
|
||||
d=$out${addonDir}/${namespace}
|
||||
mkdir -p $d
|
||||
sauce="."
|
||||
[ -d ${namespace} ] && sauce=${namespace}
|
||||
cp -R "$sauce/"* $d
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
} // attrs))
|
||||
40
pkgs/applications/video/kodi/build-kodi-binary-addon.nix
Normal file
40
pkgs/applications/video/kodi/build-kodi-binary-addon.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ stdenv, toKodiAddon, addonDir, cmake, kodi, kodi-platform, libcec_platform }:
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, version
|
||||
, extraNativeBuildInputs ? []
|
||||
, extraBuildInputs ? []
|
||||
, extraRuntimeDependencies ? []
|
||||
, extraCMakeFlags ? []
|
||||
, extraInstallPhase ? "", ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
nativeBuildInputs = [ cmake ] ++ extraNativeBuildInputs;
|
||||
buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
|
||||
|
||||
inherit extraRuntimeDependencies;
|
||||
|
||||
# disables check ensuring install prefix is that of kodi
|
||||
cmakeFlags = [
|
||||
"-DOVERRIDE_PATHS=1"
|
||||
] ++ extraCMakeFlags;
|
||||
|
||||
# kodi checks for addon .so libs existance in the addon folder (share/...)
|
||||
# and the non-wrapped kodi lib/... folder before even trying to dlopen
|
||||
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
|
||||
installPhase = let n = namespace; in ''
|
||||
runHook preInstall
|
||||
|
||||
make install
|
||||
|
||||
[[ -f $out/lib/addons/${n}/${n}.so ]] && ln -s $out/lib/addons/${n}/${n}.so $out${addonDir}/${n}/${n}.so || true
|
||||
[[ -f $out/lib/addons/${n}/${n}.so.${version} ]] && ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version} || true
|
||||
|
||||
${extraInstallPhase}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
} // attrs))
|
||||
14
pkgs/applications/video/kodi/default.nix
Normal file
14
pkgs/applications/video/kodi/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ callPackage, ... } @ args:
|
||||
let
|
||||
unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
|
||||
kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = unwrapped; };
|
||||
in
|
||||
unwrapped.overrideAttrs (oldAttrs: {
|
||||
passthru = oldAttrs.passthru // {
|
||||
packages = kodiPackages;
|
||||
withPackages = func: callPackage ./wrapper.nix {
|
||||
kodi = unwrapped;
|
||||
addons = kodiPackages.requiredKodiAddons (func kodiPackages);
|
||||
};
|
||||
};
|
||||
})
|
||||
259
pkgs/applications/video/kodi/unwrapped.nix
Normal file
259
pkgs/applications/video/kodi/unwrapped.nix
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
|
||||
, pkg-config, cmake, yasm, python3Packages
|
||||
, libgcrypt, libgpg-error, libunistring
|
||||
, boost, avahi, lame
|
||||
, gettext, pcre-cpp, yajl, fribidi, which
|
||||
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
|
||||
, gtest, ncurses, spdlog
|
||||
, libxml2, systemd
|
||||
, alsa-lib, libGLU, libGL, fontconfig, freetype, ftgl
|
||||
, libjpeg, libpng, libtiff
|
||||
, libmpeg2, libsamplerate, libmad
|
||||
, libogg, libvorbis, flac, libxslt
|
||||
, lzo, libcdio, libmodplug, libass, libbluray, libudfread
|
||||
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
|
||||
, curl, bzip2, zip, unzip, glxinfo
|
||||
, libcec, libcec_platform, dcadec, libuuid
|
||||
, libcrossguid, libmicrohttpd
|
||||
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
|
||||
, libplist, p11-kit, zlib, flatbuffers, fstrcmp, rapidjson
|
||||
, lirc
|
||||
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
|
||||
, dbusSupport ? true, dbus
|
||||
, joystickSupport ? true, cwiid
|
||||
, nfsSupport ? true, libnfs
|
||||
, pulseSupport ? true, libpulseaudio
|
||||
, rtmpSupport ? true, rtmpdump
|
||||
, sambaSupport ? true, samba
|
||||
, udevSupport ? true, udev
|
||||
, usbSupport ? false, libusb-compat-0_1
|
||||
, vdpauSupport ? true, libvdpau
|
||||
, waylandSupport ? false, wayland, wayland-protocols
|
||||
, waylandpp ? null, libxkbcommon
|
||||
, gbmSupport ? false, mesa, libinput
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
|
||||
assert gbmSupport || waylandSupport || x11Support;
|
||||
|
||||
let
|
||||
kodiReleaseDate = "20220303";
|
||||
kodiVersion = "19.4";
|
||||
rel = "Matrix";
|
||||
|
||||
kodi_src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "xbmc";
|
||||
rev = "${kodiVersion}-${rel}";
|
||||
sha256 = "sha256-XDtmY3KthiD91kvueQRSamBcdM7fBpRntmZX6KRsCzE=";
|
||||
};
|
||||
|
||||
ffmpeg = stdenv.mkDerivation rec {
|
||||
pname = "kodi-ffmpeg";
|
||||
version = "4.3.2"; # see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ffmpeg/FFMPEG-VERSION
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "FFmpeg";
|
||||
rev = "${version}-${rel}-19.2";
|
||||
sha256 = "14s215sgc93ds1mrdbkgb7fvy94lpgv2ldricyxzis0gbzqfgs4f";
|
||||
};
|
||||
preConfigure = ''
|
||||
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
|
||||
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
|
||||
sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
|
||||
'';
|
||||
cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"-DCROSSCOMPILING=ON"
|
||||
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
|
||||
"-DPKG_CONFIG_EXECUTABLE=pkg-config"
|
||||
];
|
||||
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
|
||||
++ lib.optional vdpauSupport libvdpau;
|
||||
nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
|
||||
};
|
||||
|
||||
# We can build these externally but FindLibDvd.cmake forces us to build it
|
||||
# them, so we currently just use them for the src.
|
||||
libdvdcss = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "libdvdcss";
|
||||
rev = "1.4.2-Leia-Beta-5";
|
||||
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
|
||||
};
|
||||
|
||||
libdvdnav = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "libdvdnav";
|
||||
rev = "6.0.0-Leia-Alpha-3";
|
||||
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
|
||||
};
|
||||
|
||||
libdvdread = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "libdvdread";
|
||||
rev = "6.0.0-Leia-Alpha-3";
|
||||
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
|
||||
};
|
||||
|
||||
kodi_platforms = lib.optional gbmSupport "gbm"
|
||||
++ lib.optional waylandSupport "wayland"
|
||||
++ lib.optional x11Support "x11";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "kodi";
|
||||
version = kodiVersion;
|
||||
|
||||
src = kodi_src;
|
||||
|
||||
# This is a backport of
|
||||
# https://github.com/xbmc/xbmc/commit/a6dedce7ba1f03bdd83b019941d1e369a06f7888
|
||||
# to Kodi 19.4 Matrix.
|
||||
# This can be removed once a new release of Kodi comes out and we upgrade
|
||||
# to it.
|
||||
patches = [
|
||||
./add-KODI_WEBSERVER_EXTRA_WHITELIST.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnutls libidn libtasn1 nasm p11-kit
|
||||
libxml2 python3Packages.python
|
||||
boost libmicrohttpd
|
||||
gettext pcre-cpp yajl fribidi libva libdrm
|
||||
openssl gperf tinyxml2 taglib libssh
|
||||
gtest ncurses spdlog
|
||||
alsa-lib libGL libGLU fontconfig freetype ftgl
|
||||
libjpeg libpng libtiff
|
||||
libmpeg2 libsamplerate libmad
|
||||
libogg libvorbis flac libxslt systemd
|
||||
lzo libcdio libmodplug libass libbluray libudfread
|
||||
sqlite libmysqlclient avahi lame
|
||||
curl bzip2 zip unzip glxinfo
|
||||
libcec libcec_platform dcadec libuuid
|
||||
libgcrypt libgpg-error libunistring
|
||||
libcrossguid libplist
|
||||
bluez giflib glib harfbuzz lcms2 libpthreadstubs
|
||||
ffmpeg flatbuffers fstrcmp rapidjson
|
||||
lirc
|
||||
mesa # for libEGL
|
||||
]
|
||||
++ lib.optional x11Support [
|
||||
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
|
||||
libXinerama libXrandr.dev libXtst libXfixes
|
||||
]
|
||||
++ lib.optional dbusSupport dbus
|
||||
++ lib.optional joystickSupport cwiid
|
||||
++ lib.optional nfsSupport libnfs
|
||||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional rtmpSupport rtmpdump
|
||||
++ lib.optional sambaSupport samba
|
||||
++ lib.optional udevSupport udev
|
||||
++ lib.optional usbSupport libusb-compat-0_1
|
||||
++ lib.optional vdpauSupport libvdpau
|
||||
++ lib.optionals waylandSupport [
|
||||
wayland
|
||||
waylandpp.dev
|
||||
wayland-protocols
|
||||
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
|
||||
libxkbcommon.dev
|
||||
]
|
||||
++ lib.optional gbmSupport [
|
||||
libxkbcommon.dev
|
||||
mesa.dev
|
||||
libinput.dev
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
doxygen
|
||||
makeWrapper
|
||||
which
|
||||
pkg-config
|
||||
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
|
||||
jre_headless yasm gettext python3Packages.python flatbuffers
|
||||
|
||||
# for TexturePacker
|
||||
giflib zlib libpng libjpeg lzo
|
||||
] ++ lib.optionals waylandSupport [ wayland-protocols waylandpp.bin ];
|
||||
|
||||
depsBuildBuild = [
|
||||
buildPackages.stdenv.cc
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
|
||||
"-Dlibdvdcss_URL=${libdvdcss}"
|
||||
"-Dlibdvdnav_URL=${libdvdnav}"
|
||||
"-Dlibdvdread_URL=${libdvdread}"
|
||||
"-DGIT_VERSION=${kodiReleaseDate}"
|
||||
"-DENABLE_EVENTCLIENTS=ON"
|
||||
"-DENABLE_INTERNAL_CROSSGUID=OFF"
|
||||
"-DENABLE_OPTICAL=ON"
|
||||
"-DLIRC_DEVICE=/run/lirc/lircd"
|
||||
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
|
||||
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
|
||||
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
|
||||
# When wrapped KODI_HOME will likely contain symlinks to static assets
|
||||
# that Kodi's built in webserver will cautiously refuse to serve up
|
||||
# (because their realpaths are outside of KODI_HOME and the other
|
||||
# whitelisted directories). This adds the entire nix store to the Kodi
|
||||
# webserver whitelist to avoid this problem.
|
||||
"-DKODI_WEBSERVER_EXTRA_WHITELIST=${builtins.storeDir}"
|
||||
] ++ lib.optional waylandSupport [
|
||||
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
|
||||
];
|
||||
|
||||
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
|
||||
# I'm guessing there is a thing waiting to time out
|
||||
doCheck = false;
|
||||
|
||||
preConfigure = ''
|
||||
cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
|
||||
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
|
||||
# Need these tools on the build system when cross compiling,
|
||||
# hacky, but have found no other way.
|
||||
CXX=$CXX_FOR_BUILD LD=ld make -C tools/depends/native/JsonSchemaBuilder
|
||||
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
|
||||
|
||||
CXX=$CXX_FOR_BUILD LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
|
||||
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
|
||||
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
for p in $(ls $out/bin/) ; do
|
||||
wrapProgram $out/bin/$p \
|
||||
--prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ]
|
||||
++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
|
||||
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
|
||||
([ curl systemd libmad libvdpau libcec libcec_platform libass ]
|
||||
++ lib.optional nfsSupport libnfs
|
||||
++ lib.optional rtmpSupport rtmpdump)}"
|
||||
done
|
||||
|
||||
substituteInPlace $out/share/xsessions/kodi.desktop \
|
||||
--replace kodi-standalone $out/bin/kodi-standalone
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckPhase = "$out/bin/kodi --version";
|
||||
|
||||
passthru = {
|
||||
pythonPackages = python3Packages;
|
||||
ffmpeg = ffmpeg;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Media center";
|
||||
homepage = "https://kodi.tv/";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.kodi.members;
|
||||
};
|
||||
}
|
||||
39
pkgs/applications/video/kodi/wrapper.nix
Normal file
39
pkgs/applications/video/kodi/wrapper.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ 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
|
||||
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 {
|
||||
name = "${kodi.name}-env";
|
||||
|
||||
paths = [ kodi ] ++ addons;
|
||||
pathsToLink = [ "/share" ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
mkdir $out/bin
|
||||
for exe in kodi{,-standalone}
|
||||
do
|
||||
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
|
||||
--prefix PYTHONPATH : ${requiredPythonPath}:${additionalPythonPath} \
|
||||
--prefix KODI_HOME : $out/share/kodi \
|
||||
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
|
||||
(lib.concatMap
|
||||
(plugin: plugin.extraRuntimeDependencies or []) addons)}"
|
||||
done
|
||||
'';
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue