From b273f59ada01412951e0738f0a4d3ec2a8f4c83d Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sat, 10 Jul 2021 03:05:45 +0000 Subject: [PATCH 1/9] jellyfin: initial release Co-authored-by: CvH <1355173+CvH@users.noreply.github.com> --- .../addons/service/jellyfin/changelog.txt | 2 + .../addons/service/jellyfin/icon/icon.png | Bin 0 -> 45337 bytes packages/addons/service/jellyfin/package.mk | 33 +++++++++ .../jellyfin/source/bin/jellyfin-downloader | 65 ++++++++++++++++++ .../jellyfin/source/bin/jellyfin-start | 21 ++++++ .../addons/service/jellyfin/source/default.py | 46 +++++++++++++ .../resources/language/English/strings.po | 14 ++++ .../jellyfin/source/resources/settings.xml | 6 ++ .../jellyfin/source/settings-default.xml | 3 + .../source/system.d/service.jellyfin.service | 13 ++++ 10 files changed, 203 insertions(+) create mode 100644 packages/addons/service/jellyfin/changelog.txt create mode 100644 packages/addons/service/jellyfin/icon/icon.png create mode 100644 packages/addons/service/jellyfin/package.mk create mode 100644 packages/addons/service/jellyfin/source/bin/jellyfin-downloader create mode 100644 packages/addons/service/jellyfin/source/bin/jellyfin-start create mode 100644 packages/addons/service/jellyfin/source/default.py create mode 100644 packages/addons/service/jellyfin/source/resources/language/English/strings.po create mode 100644 packages/addons/service/jellyfin/source/resources/settings.xml create mode 100644 packages/addons/service/jellyfin/source/settings-default.xml create mode 100644 packages/addons/service/jellyfin/source/system.d/service.jellyfin.service diff --git a/packages/addons/service/jellyfin/changelog.txt b/packages/addons/service/jellyfin/changelog.txt new file mode 100644 index 0000000000..fe01f1b4fe --- /dev/null +++ b/packages/addons/service/jellyfin/changelog.txt @@ -0,0 +1,2 @@ +100 +- Initial release diff --git a/packages/addons/service/jellyfin/icon/icon.png b/packages/addons/service/jellyfin/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fe8a6246430e3b6e07e3e9ab01e8c8d374e102e0 GIT binary patch literal 45337 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

|)iNa1CVICdt7$$hTkgX!t(|5QCRFE!=Alz2z| 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

    Gw6__?F&ontH7>_3ZgGW$Ed9 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/dev/null + exit 0; +fi + +# remove install status and folders +if [ -f $ADDON_DIR/extract.ok ]; then + rm $ADDON_DIR/extract.ok +fi + +if [ -d $ADDON_DIR/libs ]; then + rm -rf $ADDON_DIR/libs +fi + +if [ -d $ADDON_DIR/tmp_download ]; then + rm -rf $ADDON_DIR/tmp_download +fi + +# create tmp download dir +mkdir -p $ADDON_DIR/tmp_download +cd $ADDON_DIR/tmp_download + +echo "Downloading Jellyfin" + +# download Jellyfin +rm -f ${CONTROL_FILE} ${DATA_FILE} +( + curl -L -# -O -C - https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/@JELLYFIN_VERSION@/${JELLYFIN_FILE} 2>${DATA_FILE} + touch ${CONTROL_FILE} +) | \ + while [ : ]; do + [ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' < ${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog= + kodi-send --action="Notification(Downloading Jellyfin,\"${prog:-0.0%}\",3000,${ICON})" >/dev/null + [ -f ${CONTROL_FILE} ] && break + sleep 4 + done + +rm -f ${CONTROL_FILE} ${DATA_FILE} + +# extract Jellyfin +kodi-send --action="Notification(Extracting Jellyfin,Starting,1000,${ICON})" >/dev/null + +# extract JELLYFIN_FILE to libs directory +mkdir $ADDON_DIR/libs +tar xf ${JELLYFIN_FILE} -C $ADDON_DIR/libs --strip-components=2 + +# cleanup +cd $ADDON_DIR +rm -rf $ADDON_DIR/tmp_download +touch $ADDON_DIR/extract.ok +kodi-send --action="Notification(Extracting Jellyfin,Finished,1000,${ICON})" >/dev/null diff --git a/packages/addons/service/jellyfin/source/bin/jellyfin-start b/packages/addons/service/jellyfin/source/bin/jellyfin-start new file mode 100644 index 0000000000..b38f8c4026 --- /dev/null +++ b/packages/addons/service/jellyfin/source/bin/jellyfin-start @@ -0,0 +1,21 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) + +. /etc/profile +oe_setup_addon service.jellyfin + +# check if jellyfin is already successful installed +if [ ! -f "$ADDON_DIR/extract.ok" ]; then + cd $ADDON_DIR + jellyfin-downloader +fi + +libs="${ADDON_DIR}/libs" +ff="/storage/.kodi/addons/tools.ffmpeg-tools/bin" + +exec \ +nice -n "$jellyfin_nice" \ +dotnet "${libs}/jellyfin.dll" \ + --datadir "${ADDON_HOME}" \ + --ffmpeg "${ff}/ffmpeg" diff --git a/packages/addons/service/jellyfin/source/default.py b/packages/addons/service/jellyfin/source/default.py new file mode 100644 index 0000000000..b97536c2ab --- /dev/null +++ b/packages/addons/service/jellyfin/source/default.py @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +import json +import subprocess +import xbmc +import xbmcaddon +import xbmcgui + + +def jsonrpc(request): + return json.loads(xbmc.executeJSONRPC(json.dumps(request))) + + +def disable_conflicting(conficting, + message='{that} conflicts with {this} and has been disabled'): + is_enabled = {'jsonrpc': '2.0', 'method': 'Addons.GetAddonDetails', 'id': 1, + 'params': {'addonid': conficting, 'properties': ['enabled']}} + disable = {'jsonrpc': '2.0', 'method': 'Addons.SetAddonEnabled', 'id': 1, + 'params': {'addonid': conficting, 'enabled': False}} + try: + if jsonrpc(is_enabled)['result']['addon']['enabled']: + this = xbmcaddon.Addon().getAddonInfo('name') + that = xbmcaddon.Addon(conficting).getAddonInfo('name') + jsonrpc(disable) + dialog = xbmcgui.Dialog() + dialog.ok(this, message.format( + this=this, that=that)) + del dialog + except KeyError: + pass + + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + + +if __name__ == '__main__': + disable_conflicting('service.emby') + Monitor().waitForAbort() diff --git a/packages/addons/service/jellyfin/source/resources/language/English/strings.po b/packages/addons/service/jellyfin/source/resources/language/English/strings.po new file mode 100644 index 0000000000..7b7065e349 --- /dev/null +++ b/packages/addons/service/jellyfin/source/resources/language/English/strings.po @@ -0,0 +1,14 @@ +# Kodi Media Center language file +# Addon Name: jellyfin +# Addon id: service.jellyfin +# Addon Provider: Team LibreELEC +msgid "" +msgstr "" + +msgctxt "#30000" +msgid "Configuration" +msgstr "" + +msgctxt "#30001" +msgid "Priority (nice, 0=max, 19=min)" +msgstr "" diff --git a/packages/addons/service/jellyfin/source/resources/settings.xml b/packages/addons/service/jellyfin/source/resources/settings.xml new file mode 100644 index 0000000000..2d559b14de --- /dev/null +++ b/packages/addons/service/jellyfin/source/resources/settings.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/addons/service/jellyfin/source/settings-default.xml b/packages/addons/service/jellyfin/source/settings-default.xml new file mode 100644 index 0000000000..f83e31b2be --- /dev/null +++ b/packages/addons/service/jellyfin/source/settings-default.xml @@ -0,0 +1,3 @@ + + 10 + diff --git a/packages/addons/service/jellyfin/source/system.d/service.jellyfin.service b/packages/addons/service/jellyfin/source/system.d/service.jellyfin.service new file mode 100644 index 0000000000..9e30bdfcb3 --- /dev/null +++ b/packages/addons/service/jellyfin/source/system.d/service.jellyfin.service @@ -0,0 +1,13 @@ +[Unit] +Description=Jellyfin - The Free Software Media System +Documentation=https://jellyfin.org/ +Wants=multi-user.target +After=multi-user.target + +[Service] +SyslogIdentifier=%N +ExecStart=/bin/sh /storage/.kodi/addons/%N/bin/jellyfin-start +Restart=always + +[Install] +WantedBy=multi-user.target From 712d893cd3dd891d872ec1b77ed3936a9aef030e Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sat, 10 Jul 2021 09:09:12 +0000 Subject: [PATCH 2/9] dotnet3-runtime: initial addon Co-authored-by: CvH <1355173+CvH@users.noreply.github.com> --- .../dotnet3-runtime/package.mk | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/addons/addon-depends/dotnet-runtime-depends/dotnet3-runtime/package.mk diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/dotnet3-runtime/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/dotnet3-runtime/package.mk new file mode 100644 index 0000000000..dca1421513 --- /dev/null +++ b/packages/addons/addon-depends/dotnet-runtime-depends/dotnet3-runtime/package.mk @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="dotnet3-runtime" +PKG_VERSION="3.1.16" +PKG_LICENSE="MIT" +PKG_SITE="https://dotnet.microsoft.com/" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="ASP.NET Core Runtime runs applications built with .NET Core, a cross-platform .NET implementation." +PKG_TOOLCHAIN="manual" + +case "${ARCH}" in + "aarch64") + PKG_SHA256="b76c049484efd86466d2e1cd88994521633c399d090adb1c6804128603816abe" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/64353333-3080-45f7-a3d5-33e391e4596c/e9d5d53cb318628485e8d1fbd26ec30d/aspnetcore-runtime-3.1.16-linux-arm64.tar.gz" + ;; + "arm") + PKG_SHA256="a0163cd5c5ceae228bfffb40053f3509e155a110c23e81c38705757a870e24cc" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/bd734390-3b5f-402a-826f-e0eae538b8ba/5914dd937ede96cb9297e6e7a80f46f3/aspnetcore-runtime-3.1.16-linux-arm.tar.gz" + ;; + "x86_64") + PKG_SHA256="b1a2f61d8a49e2a3ca5eb9daa103b83eb49ea1bcf14914560e601222e94a3022" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/c20a5ac5-5174-46b8-a875-b916a416050d/b2ddd212a183260569178d880899bd94/aspnetcore-runtime-3.1.16-linux-x64.tar.gz" + ;; +esac +PKG_SOURCE_NAME="aspnetcore3-runtime_${PKG_VERSION}_${ARCH}.tar.gz" From af7283bdb0bb17e9f57c0c549561aa4d9ae7a9fa Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sat, 10 Jul 2021 09:07:47 +0000 Subject: [PATCH 3/9] dotnet-runtime: enables both ASP.NET 3.x and ASP.NET 5.x and addon (114) .NET 3.1.16 which includes both .NET and ASP.NET Core Runtimes have been relocated to the dotnet3-runtime package to enable both 3.x, 5.x to be available to applications. Also added .NET Runtime 5.0.7 and ASP.NET Core Runtime 5.0.7 The following additional packages have been added as dependancies of this package. - add aspnet5-runtime (used by Jellyfin) - add dotnet3-runtime (used by Emby4) - add dotnet5-runtime (used by Jellyfin) --- .../addons/tools/dotnet-runtime/changelog.txt | 4 +++ .../addons/tools/dotnet-runtime/package.mk | 33 ++++++------------- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/packages/addons/tools/dotnet-runtime/changelog.txt b/packages/addons/tools/dotnet-runtime/changelog.txt index 76b27338b9..4bed217e70 100644 --- a/packages/addons/tools/dotnet-runtime/changelog.txt +++ b/packages/addons/tools/dotnet-runtime/changelog.txt @@ -1,3 +1,7 @@ +114 +- Add .NET Runtime 5.0.7 +- Add ASP.NET Core Runtime 5.0.7 + 113 - Update to ASP.NET Core Runtime 3.1.16 diff --git a/packages/addons/tools/dotnet-runtime/package.mk b/packages/addons/tools/dotnet-runtime/package.mk index 9a080e88a7..6521c9098c 100644 --- a/packages/addons/tools/dotnet-runtime/package.mk +++ b/packages/addons/tools/dotnet-runtime/package.mk @@ -2,42 +2,29 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="dotnet-runtime" -PKG_VERSION="3.1.16" -PKG_REV="113" +PKG_REV="114" PKG_ARCH="any" PKG_LICENSE="MIT" PKG_SITE="https://dotnet.microsoft.com/" -PKG_DEPENDS_TARGET="toolchain icu" +PKG_DEPENDS_TARGET="toolchain icu aspnet5-runtime dotnet3-runtime dotnet5-runtime icu" 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_SHORTDESC="ASP.NET Core Runtime" +PKG_LONGDESC="ASP.NET Core Runtimes ($(get_pkg_version dotnet3-runtime)) and ($(get_pkg_version dotnet5-runtime)) enables you to run existing console/web/server applications." PKG_TOOLCHAIN="manual" PKG_IS_ADDON="yes" -PKG_ADDON_NAME=".Net Core Runtime" +PKG_ADDON_NAME="ASP.Net Core Runtimes" PKG_ADDON_PROJECTS="any !RPi1" PKG_ADDON_TYPE="xbmc.python.script" PKG_MAINTAINER="Anton Voyl (awiouy)" -case "${ARCH}" in - "aarch64") - PKG_SHA256="b76c049484efd86466d2e1cd88994521633c399d090adb1c6804128603816abe" - PKG_URL="https://download.visualstudio.microsoft.com/download/pr/64353333-3080-45f7-a3d5-33e391e4596c/e9d5d53cb318628485e8d1fbd26ec30d/aspnetcore-runtime-3.1.16-linux-arm64.tar.gz" - ;; - "arm") - PKG_SHA256="a0163cd5c5ceae228bfffb40053f3509e155a110c23e81c38705757a870e24cc" - PKG_URL="https://download.visualstudio.microsoft.com/download/pr/bd734390-3b5f-402a-826f-e0eae538b8ba/5914dd937ede96cb9297e6e7a80f46f3/aspnetcore-runtime-3.1.16-linux-arm.tar.gz" - ;; - "x86_64") - PKG_SHA256="b1a2f61d8a49e2a3ca5eb9daa103b83eb49ea1bcf14914560e601222e94a3022" - PKG_URL="https://download.visualstudio.microsoft.com/download/pr/c20a5ac5-5174-46b8-a875-b916a416050d/b2ddd212a183260569178d880899bd94/aspnetcore-runtime-3.1.16-linux-x64.tar.gz" - ;; -esac -PKG_SOURCE_NAME="aspnetcore-runtime_${PKG_VERSION}_${ARCH}.tar.gz" - addon() { mkdir -p ${ADDON_BUILD}/${PKG_ADDON_ID}/bin - cp -r ${PKG_BUILD}/* \ + cp -r $(get_build_dir dotnet3-runtime)/* \ + ${ADDON_BUILD}/${PKG_ADDON_ID}/bin + cp -r $(get_build_dir dotnet5-runtime)/* \ + ${ADDON_BUILD}/${PKG_ADDON_ID}/bin + cp -r $(get_build_dir aspnet5-runtime)/* \ ${ADDON_BUILD}/${PKG_ADDON_ID}/bin mkdir -p ${ADDON_BUILD}/${PKG_ADDON_ID}/lib From ec94e742ae387c98255574b3b30ed97d8d0cc65f Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sat, 10 Jul 2021 07:48:15 +0000 Subject: [PATCH 4/9] dotnet5-runtime: initial addon Co-authored-by: CvH <1355173+CvH@users.noreply.github.com> --- .../dotnet5-runtime/package.mk | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/addons/addon-depends/dotnet-runtime-depends/dotnet5-runtime/package.mk diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/dotnet5-runtime/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/dotnet5-runtime/package.mk new file mode 100644 index 0000000000..18cc0d0416 --- /dev/null +++ b/packages/addons/addon-depends/dotnet-runtime-depends/dotnet5-runtime/package.mk @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="dotnet5-runtime" +PKG_VERSION="5.0.7" +PKG_LICENSE="MIT" +PKG_SITE="https://dotnet.microsoft.com/" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC=".NET Runtime runs applications built with .NET Core, a cross-platform .NET implementation." +PKG_TOOLCHAIN="manual" + +case "${ARCH}" in + "aarch64") + PKG_SHA256="375956c3d326f5030a1eff2cafdba8b994ed0e1b87db2dd812ce17e0bca5fb27" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/a9a37d9f-6158-43a4-a610-f0f9e8c2cb73/c69c6d22c668cb09b2d00bea8209335b/dotnet-runtime-5.0.7-linux-arm64.tar.gz" + ;; + "arm") + PKG_SHA256="fcc811f37cb6914bf3aa1c96040b1a46fad42939e6b1e1e7e0f513a9be1de680" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/09a24e9f-0096-454a-b761-70cdf9504775/eafe9578bbedd15c9319b7580d5a20d9/dotnet-runtime-5.0.7-linux-arm.tar.gz" + ;; + "x86_64") + PKG_SHA256="ed864299f0e736f9d284b655e62d8a29aee97c14741ef8baf13d5ff493f83a47" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/f229fc63-747e-46c8-89ac-88563c2e0b7d/8e59115deda958a26e1546f603cbad9a/dotnet-runtime-5.0.7-linux-x64.tar.gz" + ;; +esac +PKG_SOURCE_NAME="dotnet-runtime_${PKG_VERSION}_${ARCH}.tar.gz" From 87503cb36ecbe4d8d99ff4a537f3dfd1c3a48db9 Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sat, 10 Jul 2021 09:09:46 +0000 Subject: [PATCH 5/9] aspnet5-runtime: initial addon Co-authored-by: CvH <1355173+CvH@users.noreply.github.com> --- .../aspnet5-runtime/package.mk | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/addons/addon-depends/dotnet-runtime-depends/aspnet5-runtime/package.mk diff --git a/packages/addons/addon-depends/dotnet-runtime-depends/aspnet5-runtime/package.mk b/packages/addons/addon-depends/dotnet-runtime-depends/aspnet5-runtime/package.mk new file mode 100644 index 0000000000..991cec7ff9 --- /dev/null +++ b/packages/addons/addon-depends/dotnet-runtime-depends/aspnet5-runtime/package.mk @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="aspnet5-runtime" +PKG_VERSION="5.0.7" +PKG_LICENSE="MIT" +PKG_SITE="https://dotnet.microsoft.com/" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="ASP.NET Core Runtime enables you to run existing web/server applications." +PKG_TOOLCHAIN="manual" + +case "${ARCH}" in + "aarch64") + PKG_SHA256="219f233d4e23e2381d93dc99a7cbdbe55c55e45da2e025b5d139d1338d11d62a" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/d0a22fa3-b916-49ce-8284-97131b424cb3/cb884163ad34b83f1ae1dbd33e09d77a/aspnetcore-runtime-5.0.7-linux-arm64.tar.gz" + ;; + "arm") + PKG_SHA256="c14e64527f2bf7356d1de154132a07b86de4a30c62129e138f3ca95a43c2dd54" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/2f690848-1342-4768-a7d7-45fa476a4a22/50dd1c50ed7864140b04fec057bb8bd6/aspnetcore-runtime-5.0.7-linux-arm.tar.gz" + ;; + "x86_64") + PKG_SHA256="22f9f93b4d6a00e76980918b721f7f62654421d7582d486e830ec478c365707c" + PKG_URL="https://download.visualstudio.microsoft.com/download/pr/d6be94b3-458f-43c4-8bb5-9ba261de8c9c/bbe13b54208d088b5fdf428759b5bc0a/aspnetcore-runtime-5.0.7-linux-x64.tar.gz" + ;; +esac +PKG_SOURCE_NAME="aspnetcore-runtime_${PKG_VERSION}_${ARCH}.tar.gz" From b28a019e09d7514d2117c93df09fcece12f63e4b Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sun, 11 Jul 2021 00:23:39 +0000 Subject: [PATCH 6/9] x265: update INSTALL_PREFIX cmake defaults the install directory to /usr/local on UNIX. - https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html This results is the x265.pc file located in /usr/local/lib/pkgconfig instead of /usr/lib/pkgconfig and not being found when pkg-config is called. --- packages/addons/addon-depends/ffmpegx-depends/x265/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk b/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk index bae256f78d..4ac57301c3 100644 --- a/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk +++ b/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk @@ -14,5 +14,5 @@ PKG_TOOLCHAIN="make" pre_configure_target() { LDFLAGS+=" -ldl" - cmake -G "Unix Makefiles" ./source + cmake -DCMAKE_INSTALL_PREFIX=/usr -G "Unix Makefiles" ./source } From a27a0b96220e92fd2263f2027c8e685a6a1a0c78 Mon Sep 17 00:00:00 2001 From: heitbaum Date: Sun, 11 Jul 2021 01:15:14 +0000 Subject: [PATCH 7/9] ffmpegx: update build and depends without using `--pkg-config-flags="--static"` as a build option the Libs.private: as tagged in a .pc file does not return correct information necessary to link against the archive, an example of this is opus.pc which is tagged as `Libs.private: -lm` Add lame and x265 to the depends to support the "${PKG_FFMPEG_ENCODERS}" --- packages/addons/addon-depends/ffmpegx/package.mk | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/addons/addon-depends/ffmpegx/package.mk b/packages/addons/addon-depends/ffmpegx/package.mk index 292174f55a..49c0aef487 100644 --- a/packages/addons/addon-depends/ffmpegx/package.mk +++ b/packages/addons/addon-depends/ffmpegx/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="06b10a183ce5371f915c6bb15b7b1fffbe046e8275099c96affc29e17645d909" PKG_LICENSE="LGPLv2.1+" PKG_SITE="https://ffmpeg.org" PKG_URL="https://ffmpeg.org/releases/ffmpeg-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain aom bzip2 gnutls libvorbis opus x264 zlib" +PKG_DEPENDS_TARGET="toolchain aom bzip2 gnutls lame libvorbis opus x264 x265 zlib" PKG_LONGDESC="FFmpegx is an complete FFmpeg build to support encoding and decoding." PKG_BUILD_FLAGS="-gold -sysroot" @@ -61,6 +61,12 @@ pre_configure_target() { --enable-hwaccel=vp8_vaapi \ --enable-hwaccel=vp9_vaapi \ --enable-hwaccel=wmv3_vaapi" + + PKG_FFMPEG_X26x_GENERIC="\ + --enable-libx264 \ + --enable-encoder=x264 \ + --enable-libx265 \ + --enable-encoder=x265" fi # Encoders @@ -69,10 +75,7 @@ pre_configure_target() { --enable-libvpx \ --enable-encoder=libvpx_vp8 \ --enable-encoder=libvpx_vp9 \ - --enable-libx264 \ - --enable-encoder=x264 \ - --enable-libx265 \ - --enable-encoder=x265 \ + ${PKG_FFMPEG_X26x_GENERIC} \ --enable-libaom \ --enable-encoder=libaom_av1 \ \ @@ -109,6 +112,7 @@ configure_target() { \ `#Static and Shared` \ --enable-static \ + --pkg-config-flags="--static" \ --disable-shared \ \ `#Licensing options` \ @@ -120,6 +124,8 @@ configure_target() { `#Hardware accelerated decoding encoding` \ ${PKG_FFMPEG_HW_ENCODERS_GENERIC} \ \ + ${PKG_FFMPEG_ENCODERS} \ + \ `#General options` \ --enable-avresample \ --disable-lzma \ From 1e2ae5446ee230ede081783184d84698fc454c32 Mon Sep 17 00:00:00 2001 From: heitbaum Date: Mon, 12 Jul 2021 10:00:19 +0000 Subject: [PATCH 8/9] jellyfin: update downloader to use mktemp --- .../jellyfin/source/bin/jellyfin-downloader | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/packages/addons/service/jellyfin/source/bin/jellyfin-downloader b/packages/addons/service/jellyfin/source/bin/jellyfin-downloader index 9dd3b69a3d..5f2fe0edfb 100644 --- a/packages/addons/service/jellyfin/source/bin/jellyfin-downloader +++ b/packages/addons/service/jellyfin/source/bin/jellyfin-downloader @@ -6,7 +6,7 @@ . /etc/profile oe_setup_addon service.jellyfin -ICON="$ADDON_DIR/resources/icon.png" +ICON="${ADDON_DIR}/resources/icon.png" CONTROL_FILE="/tmp/curl.done" DATA_FILE="/tmp/curl.data" JELLYFIN_FILE="jellyfin_@JELLYFIN_VERSION@.tar.gz" @@ -18,21 +18,24 @@ if [ $(df . | awk 'END {print $4}') -lt 200000 ]; then fi # remove install status and folders -if [ -f $ADDON_DIR/extract.ok ]; then - rm $ADDON_DIR/extract.ok +if [ -f ${ADDON_DIR}/extract.ok ]; then + rm ${ADDON_DIR}/extract.ok fi -if [ -d $ADDON_DIR/libs ]; then - rm -rf $ADDON_DIR/libs -fi - -if [ -d $ADDON_DIR/tmp_download ]; then - rm -rf $ADDON_DIR/tmp_download +if [ -d ${ADDON_DIR}/libs ]; then + rm -rf ${ADDON_DIR}/libs fi # create tmp download dir -mkdir -p $ADDON_DIR/tmp_download -cd $ADDON_DIR/tmp_download +TEMP_DIR=`mktemp -d` + +mkdir -p ${TEMP_DIR}/tmp_download +if [ -d ${TEMP_DIR}/tmp_download ]; then + cd ${TEMP_DIR}/tmp_download +else + kodi-send --action="Notification(Unable to download Jellyfin - no temp directory,30000,${ICON})" >/dev/null + exit 0 +fi echo "Downloading Jellyfin" @@ -55,11 +58,12 @@ rm -f ${CONTROL_FILE} ${DATA_FILE} kodi-send --action="Notification(Extracting Jellyfin,Starting,1000,${ICON})" >/dev/null # extract JELLYFIN_FILE to libs directory -mkdir $ADDON_DIR/libs -tar xf ${JELLYFIN_FILE} -C $ADDON_DIR/libs --strip-components=2 +mkdir ${ADDON_DIR}/libs +tar xf ${JELLYFIN_FILE} -C ${ADDON_DIR}/libs --strip-components=2 # cleanup -cd $ADDON_DIR -rm -rf $ADDON_DIR/tmp_download -touch $ADDON_DIR/extract.ok +cd ${ADDON_DIR} +rm -rf ${TEMP_DIR}/tmp_download +rmdir ${TEMP_DIR} +touch ${ADDON_DIR}/extract.ok kodi-send --action="Notification(Extracting Jellyfin,Finished,1000,${ICON})" >/dev/null From 010b1b57738626764482ca60db4832d9ba4ed7b4 Mon Sep 17 00:00:00 2001 From: heitbaum Date: Tue, 17 Aug 2021 17:41:11 +1000 Subject: [PATCH 9/9] jellyfin: update icon --- .../addons/service/jellyfin/icon/icon.png | Bin 45337 -> 9544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/addons/service/jellyfin/icon/icon.png b/packages/addons/service/jellyfin/icon/icon.png index fe8a6246430e3b6e07e3e9ab01e8c8d374e102e0..07bfcc57578e640e9c590940055a5559ff5f55ab 100644 GIT binary patch literal 9544 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

    |)iNa1CVICdt7$$hTkgX!t(|5QCRFE!=Alz2z| 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

      Gw6__?F&ontH7>_3ZgGW$Ed9 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