diff options
Diffstat (limited to 'package/kodi')
8 files changed, 138 insertions, 105 deletions
diff --git a/package/kodi/Makefile b/package/kodi/Makefile index 4e9a57a4c..9fb6deccb 100644 --- a/package/kodi/Makefile +++ b/package/kodi/Makefile @@ -4,36 +4,39 @@ include $(ADK_TOPDIR)/rules.mk PKG_NAME:= kodi -PKG_VERSION:= 18.0a1 +PKG_VERSION:= 21.0b2 PKG_RELEASE:= 1 -PKG_HASH:= 8892498d5248eea29c30db7c128a5910afc60d1b0b894aea472604bb879a0310 +PKG_HASH:= b9d6ecbb8769cdfe00cbbe5da5c330a7624eee50cffb87d87f6271033f1ee74b PKG_DESCR:= software media player PKG_SECTION:= mm/video -PKG_DEPENDS:= python2 libsquish libressl libxz libfmt rapidjson -PKG_DEPENDS+= libass libmpeg2 libmad libmodplug libcurl +PKG_DEPENDS:= python3 libsquish libressl libxz libfmt rapidjson +PKG_DEPENDS+= libass libmpeg2 libmad libmodplug libcurl libxshmfence PKG_DEPENDS+= libflac libbz2 libtiff libnettle librtmp liblzo PKG_DEPENDS+= yajl tinyxml libsqlite libpcrecpp libncurses libpng PKG_DEPENDS+= libpcre libcdio libfreetype libsamplerate libuuid -PKG_DEPENDS+= taglib libjasper libmp3lame libgpg-error python2-mod-sqlite -PKG_DEPENDS+= glib libdcadec bcm28xx-vc-gl-libs libffmpeg libxvidcore -PKG_BUILDDEP:= python2 libass ffmpeg rtmpdump bcm28xx-vc +PKG_DEPENDS+= taglib libjasper libmp3lame libgpg-error giflib +PKG_DEPENDS+= glib libdcadec libffmpeg libxvidcore libiconv harfbuzz +PKG_DEPENDS+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon +PKG_DEPENDS+= xkeyboard-config tinyxml2 libdisplay-info libudfread +PKG_BUILDDEP:= python3 libass ffmpeg rtmpdump libiconv libudfread PKG_BUILDDEP+= libmpeg2 libmad libjpeg-turbo fmt rapidjson -PKG_BUILDDEP+= curl flac bzip2 libtiff yajl cmake-host -PKG_BUILDDEP+= tinyxml sqlite pcre libcdio freetype libpng -PKG_BUILDDEP+= libsamplerate taglib libjasper -PKG_BUILDDEP+= glib libmodplug libgpg-error xvidcore +PKG_BUILDDEP+= curl flac bzip2 libtiff yajl cmake-host libdisplay-info +PKG_BUILDDEP+= tinyxml tinyxml2 sqlite pcre libcdio freetype libpng +PKG_BUILDDEP+= libsamplerate taglib libjasper giflib xkeyboard-config +PKG_BUILDDEP+= glib libmodplug libgpg-error xvidcore libxshmfence PKG_BUILDDEP+= swig-host liblzo-host libpng-host libjpeg-turbo-host PKG_BUILDDEP+= zip-host unzip-host giflib-host libsquish libdcadec -PKG_BUILDDEP+= libcrossguid libressl xz bzip2 liblzo +PKG_BUILDDEP+= libcrossguid libressl xz bzip2 liblzo harfbuzz +PKG_BUILDDEP+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon PKG_NEEDS:= threads c++ data iconv PKG_URL:= http://kodi.tv/ PKG_SITES:= https://github.com/xbmc/xbmc/archive/ -DISTFILES:= $(PKG_VERSION)-Leia.tar.gz -WRKDIST= ${WRKDIR}/xbmc-$(PKG_VERSION)-Leia +DISTFILES:= $(PKG_VERSION)-Omega.tar.gz +WRKDIST= ${WRKDIR}/xbmc-$(PKG_VERSION)-Omega WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj -PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi3p raspberry-pi3p-64 +PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi4 raspberry-pi4-64 rockpi4-plus raspberry-pi5 PKG_FLAVOURS_KODI:= WITH_ALSA WITH_CEC WITH_PULSEAUDIO WITH_SMB PKG_FLAVOURS_KODI+= WITH_MICROHTTPD WITH_SSH WITH_AVAHI @@ -71,7 +74,12 @@ CMAKE_FLAGS+= -DENABLE_CCACHE=OFF \ -DENABLE_DVDCSS=ON \ -DENABLE_INTERNAL_CROSSGUID=OFF \ -DENABLE_INTERNAL_FFMPEG=OFF \ + -DENABLE_INTERNAL_RapidJSON=OFF \ -DWITH_FFMPEG=$(STAGING_TARGET_DIR)/usr \ + -DPYTHON_EXECUTABLE=$(STAGING_HOST_DIR)/usr/bin/python3 \ + -DPYTHON_INCLUDE_DIRS=$(STAGING_TARGET_DIR)/usr/include/python3.11 \ + -DPYTHON_PATH=$(STAGING_TARGET_DIR)/usr/lib/python3.11 \ + -DPYTHON_VER=3.11 \ -DKODI_DEPENDSBUILD=OFF \ -DENABLE_OPENSSL=ON \ -DENABLE_MYSQLCLIENT=OFF \ @@ -87,17 +95,31 @@ CMAKE_FLAGS+= -DENABLE_CCACHE=OFF \ -DENABLE_OPTICAL=OFF \ -DENABLE_DBUS=OFF \ -DENABLE_EVENTCLIENTS=OFF \ - -DENABLE_UDEV=OFF \ + -DENABLE_UDEV=ON \ -DENABLE_PLIST=OFF \ -DNATIVEPREFIX=$(STAGING_HOST_DIR)/usr \ - -DDEPENDS_PATH=$(STAGING_HOST_DIR) \ - -DWITH_TEXTUREPACKER=$(STAGING_HOST_DIR)/usr/bin/TexturePacker - -ifeq ($(ADK_TARGET_BOARD_BCM28XX),y) -CMAKE_FLAGS+= -DCORE_PLATFORM_NAME=rbpi \ + -DDEPENDS_PATH=$(STAGING_TARGET_DIR)/usr \ + -DWITH_TEXTUREPACKER=$(STAGING_HOST_DIR)/usr/bin/TexturePacker \ + -DWITH_JSONSCHEMABUILDER=$(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder \ + -DCMAKE_EXE_LINKER_FLAGS=-latomic \ + -DLIBDVDCSS_URL=$(DL_DIR)/libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz \ + -DLIBDVDNAV_URL=$(DL_DIR)/libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz \ + -DLIBDVDREAD_URL=$(DL_DIR)/libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz + +ifeq ($(ADK_TARGET_ARCH_AARCH64),y) +CMAKE_FLAGS+= -DWITH_ARCH=aarch64 \ + -DWITH_CPU=aarch64 \ + -DENABLE_NEON=OFF +endif +ifeq ($(ADK_TARGET_ARCH_ARM),y) -DWITH_ARCH=arm \ -DWITH_CPU=arm \ - -DENABLE_NEON=ON \ + -DENABLE_NEON=ON +endif + +ifeq ($(ADK_TARGET_BOARD_BCM28XX),y) +CMAKE_FLAGS+= -DCORE_PLATFORM_NAME=gbm \ + -DAPP_RENDER_SYSTEM=gles \ -DENABLE_OPENGL=OFF \ -DENABLE_X11=OFF \ -DENABLE_OPENGLES=ON @@ -140,19 +162,27 @@ CMAKE_FLAGS+= -DENABLE_SSH=OFF endif XAKE_FLAGS+= VERBOSE=1 +TARGET_LDFLAGS+= -latomic -liconv + +KODI_LIBDVDCSS_VERSION = 1.4.3-Next-Nexus-Alpha2-2 +KODI_LIBDVDNAV_VERSION = 6.1.1-Next-Nexus-Alpha2-2 +KODI_LIBDVDREAD_VERSION = 6.1.3-Next-Nexus-Alpha2-2 pre-configure: - (cd $(WRKSRC)/tools/depends/native/JsonSchemaBuilder && PATH='$(HOST_PATH)' cmake .) - PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/JsonSchemaBuilder - cp $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/JsonSchemaBuilder \ - $(STAGING_HOST_DIR)/usr/bin - (cd $(WRKSRC)/tools/depends/native/TexturePacker && PATH='$(HOST_PATH)' cmake \ - -DCORE_SOURCE_DIR=$(WRKSRC) \ - -DCMAKE_MODULE_PATH=$(WRKSRC)/cmake/modules \ - -DCMAKE_CXX_FLAGS="$(HOST_CXXFLAGS)" .) - PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/TexturePacker - cp $(WRKSRC)/tools/depends/native/TexturePacker/TexturePacker \ - $(STAGING_HOST_DIR)/usr/bin + #(cd $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src && PATH='$(HOST_PATH)' cmake .) + #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src + #cp $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder \ + # $(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder + #(cd $(WRKSRC)/tools/depends/native/TexturePacker/src && PATH='$(HOST_PATH)' cmake \ + # -DKODI_SOURCE_DIR=$(WRKSRC) \ + # -DCMAKE_MODULE_PATH=$(WRKSRC)/cmake/modules \ + # -DCMAKE_CXX_FLAGS="$(HOST_CXXFLAGS)" .) + #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/TexturePacker/src + #cp $(WRKSRC)/tools/depends/native/TexturePacker/src/TexturePacker \ + # $(STAGING_HOST_DIR)/usr/bin + (cd $(DL_DIR) && wget -O libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz https://github.com/xbmc/libdvdcss/archive/refs/tags/$(KODI_LIBDVDCSS_VERSION).tar.gz) + (cd $(DL_DIR) && wget -O libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz https://github.com/xbmc/libdvdnav/archive/refs/tags/$(KODI_LIBDVDNAV_VERSION).tar.gz) + (cd $(DL_DIR) && wget -O libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz https://github.com/xbmc/libdvdread/archive/refs/tags/$(KODI_LIBDVDREAD_VERSION).tar.gz) kodi-install: $(INSTALL_DIR) $(STAGING_TARGET_DIR)/usr/share/kodi diff --git a/package/kodi/files/kodi.init b/package/kodi/files/kodi.init index 04ed8ea83..c3dfdf893 100644 --- a/package/kodi/files/kodi.init +++ b/package/kodi/files/kodi.init @@ -15,10 +15,10 @@ start) if [ ! -d /data/kodi ]; then mkdir /data/kodi fi - cd / && /usr/lib/kodi/kodi-rbpi & + cd / && /usr/lib/kodi/kodi-gbm & ;; stop) - kill $(pgrep -f /usr/lib/kodi/kodi-rbpi) + kill $(pgrep -f /usr/lib/kodi/kodi-gbm) ;; restart) sh $0 stop diff --git a/package/kodi/patches/patch-CMakeLists_txt b/package/kodi/patches/patch-CMakeLists_txt new file mode 100644 index 000000000..7fa65595b --- /dev/null +++ b/package/kodi/patches/patch-CMakeLists_txt @@ -0,0 +1,27 @@ +--- xbmc-21.0b2-Omega.orig/CMakeLists.txt 2023-12-09 22:24:46.000000000 +0100 ++++ xbmc-21.0b2-Omega/CMakeLists.txt 2024-01-31 10:45:45.831435209 +0100 +@@ -178,7 +178,6 @@ endforeach() + # Required tools. Keep in alphabetical order please + set(required_buildtools FlatC + JsonSchemaBuilder +- TexturePacker + ) + + # Optional build tools +@@ -468,7 +467,6 @@ endif() + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR}/gen_skin.timestamp + COMMAND ${CMAKE_COMMAND} -DBUNDLEDIR=${_bundle_dir} +- -DTEXTUREPACKER_EXECUTABLE=$<TARGET_FILE:TexturePacker::TexturePacker::Executable> + -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/GeneratedPackSkins.cmake + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR} + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR}/gen_skin.timestamp +@@ -481,7 +479,7 @@ add_custom_target(gen_skin_pack DEPENDS + + # Packaging target. This generates system addon, xbt creation, copy files to build tree + add_custom_target(generate-packaging ALL +- DEPENDS TexturePacker::TexturePacker::Executable export-files gen_skin_pack gen_system_addons) ++ DEPENDS export-files gen_skin_pack gen_system_addons) + # Make sure we build any libs before we look to export-files. + # We may need to export some shared libs/data (eg Python) + add_dependencies(export-files ${GLOBAL_TARGET_DEPS}) diff --git a/package/kodi/patches/patch-cmake_KodiConfig_cmake_in b/package/kodi/patches/patch-cmake_KodiConfig_cmake_in deleted file mode 100644 index 3ebae759b..000000000 --- a/package/kodi/patches/patch-cmake_KodiConfig_cmake_in +++ /dev/null @@ -1,20 +0,0 @@ ---- xbmc-18.0a1-Leia.orig/cmake/KodiConfig.cmake.in 2018-03-04 10:21:28.000000000 +0100 -+++ xbmc-18.0a1-Leia/cmake/KodiConfig.cmake.in 2018-05-23 08:10:01.842094111 +0200 -@@ -8,7 +8,7 @@ if(NOT @APP_NAME_UC@_PREFIX) - set(@APP_NAME_UC@_PREFIX @APP_PREFIX@) - endif() - if(NOT @APP_NAME_UC@_INCLUDE_DIR) -- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@) -+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@) - endif() - if(NOT @APP_NAME_UC@_LIB_DIR) - set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@) -@@ -20,7 +20,7 @@ set(APP_RENDER_SYSTEM @APP_RENDER_SYSTEM - if(NOT WIN32) - set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@") - endif() --list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake) -+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake) - - string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") - add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) diff --git a/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt b/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt deleted file mode 100644 index 2b62c1465..000000000 --- a/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt +++ /dev/null @@ -1,20 +0,0 @@ ---- xbmc-18.0a1-Leia.orig/tools/depends/native/TexturePacker/CMakeLists.txt 2018-03-04 10:21:28.000000000 +0100 -+++ xbmc-18.0a1-Leia/tools/depends/native/TexturePacker/CMakeLists.txt 2018-05-26 06:54:36.060611270 +0200 -@@ -33,7 +33,7 @@ set(SOURCES src/md5.cpp - src/decoder/GifHelper.cpp - src/decoder/JPGDecoder.cpp - src/decoder/PNGDecoder.cpp -- ${CMAKE_SOURCE_DIR}/xbmc/guilib/XBTF.cpp) -+ ${CORE_SOURCE_DIR}/xbmc/guilib/XBTF.cpp) - - set(CMAKE_POSITITION_INDEPENDENT_CODE 1) - -@@ -42,7 +42,7 @@ target_include_directories(TexturePacker - PRIVATE ${PNG_INCLUDE_DIRS} - ${JPEG_INCLUDE_DIR} - ${GIF_INCLUDE_DIR} -- ${CMAKE_SOURCE_DIR}/xbmc -+ ${CORE_SOURCE_DIR}/xbmc - ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}/src/decoder) - target_link_libraries(TexturePacker diff --git a/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp b/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp new file mode 100644 index 000000000..67e51c6e9 --- /dev/null +++ b/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp @@ -0,0 +1,15 @@ +--- xbmc-19.3-Matrix.orig/tools/depends/native/TexturePacker/src/decoder/GifHelper.cpp 2021-10-24 12:09:58.000000000 +0200 ++++ xbmc-19.3-Matrix/tools/depends/native/TexturePacker/src/decoder/GifHelper.cpp 2022-02-26 00:09:15.499548854 +0100 +@@ -18,11 +18,11 @@ + * + */ + +-#include "GifHelper.h" + + #include <algorithm> + #include <cstdlib> + #include <cstring> ++#include "GifHelper.h" + + #define UNSIGNED_LITTLE_ENDIAN(lo, hi) ((lo) | ((hi) << 8)) + #define GIF_MAX_MEMORY 82944000U // about 79 MB, which is equivalent to 10 full hd frames. diff --git a/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp b/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp deleted file mode 100644 index fa943b89a..000000000 --- a/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp +++ /dev/null @@ -1,30 +0,0 @@ ---- xbmc-18.0a1-Leia.orig/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2018-03-04 10:21:28.000000000 +0100 -+++ xbmc-18.0a1-Leia/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2018-05-26 06:48:45.750618626 +0200 -@@ -1213,7 +1213,8 @@ void CAESinkALSA::EnumerateDevicesEx(AED - * found by the enumeration process. Skip them as well ("hw", "dmix", - * "plughw", "dsnoop"). */ - -- else if (baseName != "default" -+ else if (true) -+/* baseName != "default" - && baseName != "sysdefault" - && baseName != "surround40" - && baseName != "surround41" -@@ -1223,7 +1224,7 @@ void CAESinkALSA::EnumerateDevicesEx(AED - && baseName != "hw" - && baseName != "dmix" - && baseName != "plughw" -- && baseName != "dsnoop") -+ && baseName != "dsnoop")*/ - { - EnumerateDevice(list, name, desc ? desc : name, config); - } -@@ -1380,7 +1381,7 @@ void CAESinkALSA::EnumerateDevice(AEDevi - info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") - { - /* We already know this is HDMI, strip it */ -- info.m_displayName.erase(info.m_displayName.size()-5); -+ /*info.m_displayName.erase(info.m_displayName.size()-5);*/ - } - - /* "CONEXANT Analog", "USB Audio", "HDMI 0", "ALC889 Digital" ... */ diff --git a/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp b/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp new file mode 100644 index 000000000..27c420df8 --- /dev/null +++ b/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp @@ -0,0 +1,31 @@ +--- xbmc-21.0b2-Omega.orig/xbmc/platform/linux/CPUInfoLinux.cpp 2023-12-09 22:24:46.000000000 +0100 ++++ xbmc-21.0b2-Omega/xbmc/platform/linux/CPUInfoLinux.cpp 2024-01-30 15:52:43.704683194 +0100 +@@ -19,10 +19,7 @@ + #include <sstream> + #include <vector> + +-#if (defined(__arm__) && defined(HAS_NEON)) || defined(__aarch64__) +-#include <asm/hwcap.h> +-#include <sys/auxv.h> +-#elif defined(__i386__) || defined(__x86_64__) ++#if defined(__i386__) || defined(__x86_64__) + #include <cpuid.h> + #endif + +@@ -279,16 +276,6 @@ CCPUInfoLinux::CCPUInfoLinux() + + m_cpuModel = m_cpuModel.substr(0, m_cpuModel.find(char(0))); // remove extra null terminations + +-#if defined(HAS_NEON) && defined(__arm__) +- if (getauxval(AT_HWCAP) & HWCAP_NEON) +- m_cpuFeatures |= CPU_FEATURE_NEON; +-#endif +- +-#if defined(HAS_NEON) && defined(__aarch64__) +- if (getauxval(AT_HWCAP) & HWCAP_ASIMD) +- m_cpuFeatures |= CPU_FEATURE_NEON; +-#endif +- + // Set MMX2 when SSE is present as SSE is a superset of MMX2 and Intel doesn't set the MMX2 cap + if (m_cpuFeatures & CPU_FEATURE_SSE) + m_cpuFeatures |= CPU_FEATURE_MMX2; |