diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/curl3/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/curl3/package.mk
new file mode 100644
index 0000000000..f98d353753
--- /dev/null
+++ b/packages/addons/addon-depends/dotnet-runtime-depends/curl3/package.mk
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+. $(get_pkg_directory curl)/package.mk
+
+PKG_NAME="curl3"
+PKG_URL=""
+PKG_LONGDESC="curl for dotnet"
+
+unpack() {
+ mkdir -p $PKG_BUILD
+ cp -r $(get_build_dir curl)/* $PKG_BUILD
+ sed -i 's/CURL_@CURL_LT_SHLIB_VERSIONED_FLAVOUR@4/CURL_@CURL_LT_SHLIB_VERSIONED_FLAVOUR@3/g' $PKG_BUILD/lib/libcurl.vers.in
+}
+
+makeinstall_target() {
+ :
+}
+
+post_makeinstall_target() {
+ :
+}
diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/curl3/sources/trigger_unpack b/packages/addons/addon-depends/dotnet-runtime-depends/curl3/sources/trigger_unpack
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/krb5/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/krb5/package.mk
new file mode 100644
index 0000000000..eb257a44ad
--- /dev/null
+++ b/packages/addons/addon-depends/dotnet-runtime-depends/krb5/package.mk
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+PKG_NAME="krb5"
+PKG_VERSION="1.16.1-final"
+PKG_SHA256="d46a676bd6cfe58b8684ffd881bc7ed2c9c90cb43ccfa45a9500530e84aa262b"
+PKG_ARCH="any"
+PKG_LICENSE="MIT"
+PKG_SITE="http://web.mit.edu/kerberos/"
+PKG_URL="https://github.com/krb5/krb5/archive/krb5-$PKG_VERSION.tar.gz"
+PKG_SOURCE_DIR="krb5-krb5-$PKG_VERSION"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_LONGDESC="The Kerberos network authentication protocol"
+PKG_TOOLCHAIN="autotools"
+
+PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_regcomp=yes \
+ ac_cv_printf_positional=yes \
+ krb5_cv_attr_constructor_destructor=yes,yes"
+
+post_unpack() {
+ rm -rf $PKG_BUILD/doc
+ mv $PKG_BUILD/src/* $PKG_BUILD
+}
diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/lttng-ust/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/lttng-ust/package.mk
new file mode 100644
index 0000000000..b1f8c520b6
--- /dev/null
+++ b/packages/addons/addon-depends/dotnet-runtime-depends/lttng-ust/package.mk
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+PKG_NAME="lttng-ust"
+PKG_VERSION="2.10.1"
+PKG_SHA256="8503bb36c95fc3473eb6323b84645e9d95ff52758ad199d2fe7ca80277f81b95"
+PKG_ARCH="any"
+PKG_LICENSE="LGPLv2.1"
+PKG_SITE="https://lttng.org/"
+PKG_URL="https://github.com/lttng/lttng-ust/archive/v$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain userspace-rcu"
+PKG_LONGDESC="LTTng is an open source tracing framework for Linux"
+PKG_TOOLCHAIN="autotools"
+
+PKG_CONFIGURE_OPTS_TARGET="--disable-man-pages"
diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/userspace-rcu/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/userspace-rcu/package.mk
new file mode 100644
index 0000000000..994299e2d4
--- /dev/null
+++ b/packages/addons/addon-depends/dotnet-runtime-depends/userspace-rcu/package.mk
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+PKG_NAME="userspace-rcu"
+PKG_VERSION="0.10.1"
+PKG_SHA256="4ddbca9927b459b7a295dec612cf43df5886d398161d50c59d0097995e368a3b"
+PKG_ARCH="any"
+PKG_LICENSE="LGPLv2.1"
+PKG_SITE="http://liburcu.org"
+PKG_URL="https://github.com/urcu/userspace-rcu/archive/v$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_LONGDESC="userspace read-copy-update library"
+PKG_TOOLCHAIN="autotools"
+
+PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
+ --enable-static"
+
+pre_configure_target() {
+ CFLAGS="$CFLAGS -fPIC"
+}
diff --git a/packages/addons/addon-depends/emby-depends/imagemagick/package.mk b/packages/addons/addon-depends/emby-depends/imagemagick/package.mk
index 2a7646ec91..114d94355c 100644
--- a/packages/addons/addon-depends/emby-depends/imagemagick/package.mk
+++ b/packages/addons/addon-depends/emby-depends/imagemagick/package.mk
@@ -2,23 +2,18 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="imagemagick"
-PKG_VERSION="7.0.7-32"
-PKG_SHA256="f1785adf8bbf378b47e789c74c2fd9ebdd5ec1c4de12e53306f8f6eb5b55d656"
+PKG_VERSION="7.0.8-6"
+PKG_SHA256="17320a2019c89c1dc6de15e36ef5455a1a023ad2dc729823c2041acdea5f38ba"
PKG_ARCH="any"
PKG_LICENSE="http://www.imagemagick.org/script/license.php"
PKG_SITE="http://www.imagemagick.org/"
PKG_URL="https://github.com/ImageMagick/ImageMagick/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_DIR="ImageMagick-$PKG_VERSION"
-PKG_DEPENDS_TARGET="toolchain libX11"
-PKG_SECTION="graphics"
+PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Software suite to create, edit, compose, or convert bitmap images"
-PKG_CONFIGURE_OPTS_TARGET="--enable-static \
+PKG_CONFIGURE_OPTS_TARGET="--disable-openmp \
+ --disable-static \
--enable-shared \
- --with-quantum-depth=8 \
- --enable-hdri=no \
- --disable-openmp"
-
-makeinstall_target() {
- make install DESTDIR=$INSTALL
-}
+ --with-utilities=no \
+ --with-x=no"
diff --git a/packages/addons/service/emby/changelog.txt b/packages/addons/service/emby/changelog.txt
index 28da3b2115..a08e38eef0 100644
--- a/packages/addons/service/emby/changelog.txt
+++ b/packages/addons/service/emby/changelog.txt
@@ -1,3 +1,6 @@
+121
+- Update to 3.5.1.0 for netcore
+
120
- Use ffmpeg instead of ffmpegx
diff --git a/packages/addons/service/emby/package.mk b/packages/addons/service/emby/package.mk
index 82dafe714d..fb20f7a71a 100644
--- a/packages/addons/service/emby/package.mk
+++ b/packages/addons/service/emby/package.mk
@@ -2,13 +2,14 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="emby"
-PKG_VERSION="3.4.1.6"
-PKG_SHA256="8eb129f538cefec612239932fd85ddc6bd5221cd97613e142f41f2126412ea04"
-PKG_REV="120"
+PKG_VERSION="3.5.1.0"
+PKG_SHA256="378c2b23f9c7359434c7790581b885b2c8c526ba3377502b86260b18b927e48c"
+PKG_REV="121"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://emby.media"
-PKG_URL="https://github.com/MediaBrowser/Emby/releases/download/$PKG_VERSION/Emby.Mono.zip"
+PKG_URL="https://github.com/MediaBrowser/Emby.Releases/releases/download/$PKG_VERSION/embyserver-netcore_$PKG_VERSION.zip"
+PKG_SOURCE_DIR="system"
PKG_DEPENDS_TARGET="toolchain imagemagick"
PKG_SECTION="service"
PKG_SHORTDESC="Emby Server: a personal media server"
@@ -18,26 +19,17 @@ PKG_TOOLCHAIN="manual"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Emby Server"
PKG_ADDON_TYPE="xbmc.service"
-PKG_ADDON_REQUIRES="tools.ffmpeg-tools:0.0.0 tools.mono:0.0.0"
+PKG_ADDON_REQUIRES="tools.ffmpeg-tools:0.0.0 tools.dotnet-runtime:0.0.0"
PKG_MAINTAINER="Anton Voyl (awiouy)"
-unpack() {
- mkdir -p $PKG_BUILD
-}
-
addon() {
- mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
- unzip -q $SOURCES/$PKG_NAME/$PKG_SOURCE_NAME \
- -d $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
-
- sed -i 's/libMagickWand-6./libMagickWand-7./g' \
- $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/ImageMagickSharp.dll.config
-
- sed -i 's/libsqlite3.so/libsqlite3.so.0/g' \
- $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/SQLitePCLRaw.provider.sqlite3.dll.config
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/emby
+ cp -r $PKG_BUILD/* \
+ -d $ADDON_BUILD/$PKG_ADDON_ID/emby
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
- cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-7.Q8.so.? \
- $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-7.Q8.so \
+ cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-7.Q16HDRI.so.? \
$ADDON_BUILD/$PKG_ADDON_ID/lib/
+ cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-7.Q16HDRI.so \
+ $ADDON_BUILD/$PKG_ADDON_ID/lib/CORE_RL_Wand_.so
}
diff --git a/packages/addons/service/emby/source/bin/emby-update b/packages/addons/service/emby/source/bin/emby-update
deleted file mode 100644
index 1305822e76..0000000000
--- a/packages/addons/service/emby/source/bin/emby-update
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
-
-. /etc/profile
-oe_setup_addon service.emby
-
-# set version to use
-if [ -z "$1" ]; then
-# if no input
- echo -e "\nUsage:"
- echo -e "${0##*/} 3.4.1.0"
- echo -e "${0##*/} latest"
- echo -e "\n====== last releases ======"
- curl --silent "https://api.github.com/repos/MediaBrowser/Emby/releases" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | head -n 20
- echo -e "==========================="
- exit 0
-
-# if input = latest
-elif [ "$1" = "latest" ]; then
- EMBY_VERSION=$(curl --silent "https://api.github.com/repos/MediaBrowser/Emby/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
- echo "latest is $EMBY_VERSION"
- read -p "continue (y/n)? " EMBY_CONT
- if [ $EMBY_CONT = "Y" ] || [ $EMBY_CONT = "y" ]; then
- echo ""
- else
- exit 0
- fi
-
-# if input = 1.2.3.4
-else
- EMBY_VERSION="$1"
-fi
-
-echo "1. stopping Emby service" && sleep 1
- systemctl stop service.emby
-
-echo "2. download Emby version $EMBY_VERSION" && sleep 1
- rm -f /storage/.kodi/temp/Emby.Mono.zip
- curl --progress-bar --fail -L -o /storage/.kodi/temp/Emby.Mono.zip https://github.com/MediaBrowser/Emby/releases/download/$EMBY_VERSION/Emby.Mono.zip || exit 1
-
-echo "3. removing old install" && sleep 1
- rm -rf $ADDON_DIR/Emby/system/*
-
-echo "4. extracting Emby" && sleep 1
- unzip -q /storage/.kodi/temp/Emby.Mono.zip -d $ADDON_DIR/Emby/system
-
-echo "5. restarting Emby service" && sleep 1
- systemctl start service.emby
-
-echo "... done"
-exit 0
diff --git a/packages/addons/service/emby/source/bin/emby.start b/packages/addons/service/emby/source/bin/emby.start
index bfaa739cc0..7c674a5cb8 100644
--- a/packages/addons/service/emby/source/bin/emby.start
+++ b/packages/addons/service/emby/source/bin/emby.start
@@ -6,13 +6,7 @@
. /etc/profile
oe_setup_addon service.emby
-chmod +x $ADDON_DIR/bin/*
-mkdir -p $ADDON_HOME
-
-if [ "$emby_ffmpeg" != "false" ]
-then
- emby_flags="-ffmpeg /storage/.kodi/addons/tools.ffmpeg-tools/bin/ffmpeg -ffprobe /storage/.kodi/addons/tools.ffmpeg-tools/bin/ffprobe"
-fi
-
-mono $ADDON_DIR/Emby.Mono/MediaBrowser.Server.Mono.exe -programdata $ADDON_HOME \
- $emby_flags
+LD_PRELOAD="$ADDON_DIR/lib/libMagickCore-7.Q16HDRI.so.6 \
+ $ADDON_DIR/lib/CORE_RL_Wand_.so" \
+nice -n "$emby_nice" \
+le_dotnet $ADDON_DIR/emby/EmbyServer.dll -programdata $ADDON_HOME
diff --git a/packages/addons/service/emby/source/default.py b/packages/addons/service/emby/source/default.py
index 252cf5c277..0b9d649ccd 100644
--- a/packages/addons/service/emby/source/default.py
+++ b/packages/addons/service/emby/source/default.py
@@ -16,5 +16,5 @@ class Monitor(xbmc.Monitor):
subprocess.call(['systemctl', 'restart', self.id])
-if __name__ == "__main__":
+if __name__ == '__main__':
Monitor().waitForAbort()
diff --git a/packages/addons/service/emby/source/resources/language/English/strings.po b/packages/addons/service/emby/source/resources/language/English/strings.po
index 37e80a8c99..609e47bd59 100644
--- a/packages/addons/service/emby/source/resources/language/English/strings.po
+++ b/packages/addons/service/emby/source/resources/language/English/strings.po
@@ -10,5 +10,5 @@ msgid "Configuration"
msgstr ""
msgctxt "#30001"
-msgid "Use dedicated ffmpeg/ffprobe"
+msgid "Priority (nice, 0=max, 19=min)"
msgstr ""
diff --git a/packages/addons/service/emby/source/resources/settings.xml b/packages/addons/service/emby/source/resources/settings.xml
index 0d08d8d297..2325485e41 100644
--- a/packages/addons/service/emby/source/resources/settings.xml
+++ b/packages/addons/service/emby/source/resources/settings.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/addons/service/emby/source/settings-default.xml b/packages/addons/service/emby/source/settings-default.xml
new file mode 100644
index 0000000000..8d35529581
--- /dev/null
+++ b/packages/addons/service/emby/source/settings-default.xml
@@ -0,0 +1,3 @@
+
+ 10
+
diff --git a/packages/addons/tools/dotnet-runtime/icon/icon.png b/packages/addons/tools/dotnet-runtime/icon/icon.png
new file mode 100644
index 0000000000..7b53b77cd0
Binary files /dev/null and b/packages/addons/tools/dotnet-runtime/icon/icon.png differ
diff --git a/packages/addons/tools/dotnet-runtime/package.mk b/packages/addons/tools/dotnet-runtime/package.mk
new file mode 100644
index 0000000000..0766ba8530
--- /dev/null
+++ b/packages/addons/tools/dotnet-runtime/package.mk
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+case "$ARCH" in
+ "aarch64")
+ PKG_NC_ARCH="arm64"
+ PKG_SHA256="09c4b9c369c7f98066ba493a36a5c256eb102031739bec4862b58299590b5a18"
+ ;;
+ "arm")
+ PKG_NC_ARCH="arm"
+ PKG_SHA256="bdbb9739092098c1e572bbdcc9799bdfb17de75fbf7f4e72898dbf63d424e14f"
+ ;;
+ "x86_64")
+ PKG_NC_ARCH="x64"
+ PKG_SHA256="0d0db92d1d4779ad28562ca445acd3701e61bcef957ae3dbdcc97a7c0e8f10c5"
+ ;;
+esac
+
+PKG_NAME="dotnet-runtime"
+PKG_VERSION="2.1.2"
+PKG_REV="100"
+PKG_ARCH="any"
+PKG_LICENSE="MIT"
+PKG_SITE="https://dotnet.github.io/"
+PKG_URL="https://download.microsoft.com/download/1/f/7/1f7755c5-934d-4638-b89f-1f4ffa5afe89/dotnet-runtime-2.1.2-linux-$PKG_NC_ARCH.tar.gz"
+PKG_SOURCE_NAME="$PKG_NAME-$PKG_VERSION-$ARCH.tar.gz"
+PKG_DEPENDS_TARGET="toolchain curl curl3 krb5 lttng-ust"
+PKG_SECTION="tools"
+PKG_SHORTDESC=".NET Core Runtime"
+PKG_LONGDESC=".NET Core Runtime ($PKG_VERSION) runs applications built with .NET Core, a cross-platform .NET implementation."
+PKG_TOOLCHAIN="manual"
+
+PKG_IS_ADDON="yes"
+PKG_ADDON_NAME=".Net Core Runtime"
+PKG_ADDON_TYPE="xbmc.python.script"
+PKG_MAINTAINER="Anton Voyl (awiouy)"
+
+unpack() {
+ mkdir -p $PKG_BUILD
+ $SCRIPTS/extract $PKG_NAME $PKG_BUILD
+}
+
+addon() {
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
+ cp -r $PKG_BUILD/* \
+ $ADDON_BUILD/$PKG_ADDON_ID/bin
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/libs
+ cp -L $(get_build_dir curl3)/.$TARGET_NAME/lib/.libs/libcurl.so.? \
+ $(get_build_dir krb5)/.install_pkg/usr/lib/libcom_err.so.? \
+ $(get_build_dir krb5)/.install_pkg/usr/lib/libgssapi_krb5.so.? \
+ $(get_build_dir krb5)/.install_pkg/usr/lib/libk5crypto.so.? \
+ $(get_build_dir krb5)/.install_pkg/usr/lib/libkrb5.so.? \
+ $(get_build_dir krb5)/.install_pkg/usr/lib/libkrb5support.so.? \
+ $(get_build_dir lttng-ust)/.install_pkg/usr/lib/liblttng-ust.so.? \
+ $(get_build_dir lttng-ust)/.install_pkg/usr/lib/liblttng-ust-tracepoint.so.? \
+ $ADDON_BUILD/$PKG_ADDON_ID/libs
+}
diff --git a/packages/addons/tools/dotnet-runtime/source/bin/le_dotnet b/packages/addons/tools/dotnet-runtime/source/bin/le_dotnet
new file mode 100644
index 0000000000..2bf6a7287e
--- /dev/null
+++ b/packages/addons/tools/dotnet-runtime/source/bin/le_dotnet
@@ -0,0 +1,10 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
+
+. /etc/profile
+oe_setup_addon tools.dotnet-runtime
+
+DOTNET_SYSTEM_GLOBALIZATION_INVARIANT="1" \
+LD_LIBRARY_PATH="$ADDON_DIR/libs:$LD_LIBRARY_PATH" \
+dotnet "$@"