package/kodi: bump version to 21.0-Omega

Added new dependency to libdisplay-info for gbm support:
ce9626479c

Added new required dependency to tinyxml2:
9e983ed044
Please note that parts of kodi still use tinyxml so both dependencies
are needed.

Added new required dependency to libudfread: Since upstream commit
5f9b9cfa26
kodi does not build anymore without libudfread.

Upstream removed the bundled groovy/apache commons binaries:
d6bc920e05

- JsonSchemaBuilder fixes:

Upstream moved CMakeLists.txt to src/ subfolder:
7e87d98ca5

- TexturePacker fixes:

texturepacker now depends on c++17:
54bd6d7ab5

Since the host version of texturepacker is a build dependency of kodi:
https://github.com/xbmc/xbmc/blob/Omega/CMakeLists.txt#L187
https://github.com/xbmc/xbmc/blob/Omega/CMakeLists.txt#L472
we add a new dependency to BR2_HOST_GCC_AT_LEAST_9.

Upstream moved CMakeLists.txt to src/ subfolder
e336a75f42

Due to this update we can remove all of our patches for texturepacker.

- Kodi fixes:

Set KODI_SOURCE_DIR variable to root directory of the source tarball.
When building natively, outside of a meta buildsystem like Buildroot,
kodi builds its own tools as part of its build process. TexturePacker
needs cmake modules available from the top of the Kodi source tree, a
source file in a sub-directory at the top-level source tree, which
itself needs includes from the same sub-dir. The Kodi build process sets
KODI_SOURCE_DIR so that TexturePacker can find those files.

In Buildroot, as we cross-build, we build the tools explicitly, without
using the Kodi build process, and thus we must set KODI_SOURCE_DIR to the
root directory of the source tarball. LibreELEC added something similar:
70abdd27a2

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Bernd Kuhls 2024-04-07 13:44:32 +02:00 committed by Thomas Petazzoni
parent ee0ae230e4
commit c619346111
8 changed files with 35 additions and 63 deletions

View File

@ -835,8 +835,6 @@ package/kexec-lite/0001-clean-restart.patch lib_patch.Upstream
package/keyutils/0001-fix-install-rule.patch lib_patch.Upstream
package/keyutils/0002-cifs.patch lib_patch.Sob lib_patch.Upstream
package/kmod/0001-fix-O_CLOEXEC.patch lib_patch.Upstream
package/kodi-texturepacker/0001-texturepacker.patch lib_patch.Upstream
package/kodi-texturepacker/0002-fix-texture-packer-cmake-source-dir.patch lib_patch.Upstream
package/kodi/S50kodi Shellcheck lib_sysv.Variables
package/latencytop/0001-makefile.patch lib_patch.Upstream
package/lbase64/0001-retro-compatible-with-Lua-5.1.patch lib_patch.Upstream

View File

@ -6,20 +6,20 @@
# Not possible to directly refer to kodi variables, because of
# first/second expansion trickery...
KODI_JSONSCHEMABUILDER_VERSION = 20.5-Nexus
KODI_JSONSCHEMABUILDER_VERSION = 21.0-Omega
KODI_JSONSCHEMABUILDER_SITE = $(call github,xbmc,xbmc,$(KODI_JSONSCHEMABUILDER_VERSION))
KODI_JSONSCHEMABUILDER_SOURCE = kodi-$(KODI_JSONSCHEMABUILDER_VERSION).tar.gz
KODI_JSONSCHEMABUILDER_DL_SUBDIR = kodi
KODI_JSONSCHEMABUILDER_LICENSE = GPL-2.0
KODI_JSONSCHEMABUILDER_LICENSE_FILES = LICENSE.md
HOST_KODI_JSONSCHEMABUILDER_SUBDIR = tools/depends/native/JsonSchemaBuilder
HOST_KODI_JSONSCHEMABUILDER_SUBDIR = tools/depends/native/JsonSchemaBuilder/src
HOST_KODI_JSONSCHEMABUILDER_CONF_OPTS = \
-DCMAKE_MODULE_PATH=$(@D)/project/cmake/modules
define HOST_KODI_JSONSCHEMABUILDER_INSTALL_CMDS
$(INSTALL) -m 755 -D \
$(@D)/tools/depends/native/JsonSchemaBuilder/JsonSchemaBuilder \
$(@D)/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder \
$(HOST_DIR)/bin/kodi-JsonSchemaBuilder
endef

View File

@ -1,16 +0,0 @@
Fix host compile
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
diff -uNr xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile
--- xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile 2015-01-25 09:00:48.000000000 +0100
+++ xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile 2015-01-25 13:03:23.606140953 +0100
@@ -36,7 +36,7 @@
-rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
cd $(PLATFORM); cp -a $(SOURCE)/* .
cd $(PLATFORM); ./autogen.sh
- cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
+ cd $(PLATFORM); ./configure --prefix=$(PREFIX) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
$(APP): $(PLATFORM)

View File

@ -1,27 +0,0 @@
Fix stand-alone build
CMake Error at CMakeLists.txt:40 (add_executable):
Cannot find source file:
/home/bernd/buildroot/output/build/host-kodi-texturepacker-18.4-Leia/tools/depends/native/TexturePacker/xbmc/guilib/XBTF.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
.hpp .hxx .in .txx
CMake Error at CMakeLists.txt:40 (add_executable):
No SOURCES given to target: TexturePacker
Downloaded from
https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/mediacenter/kodi/patches/kodi-100.25-hack-fix-texture-packer-cmake-source-dir.patch
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
diff -Naur a/tools/depends/native/TexturePacker/CMakeLists.txt b/tools/depends/native/TexturePacker/CMakeLists.txt
--- a/tools/depends/native/TexturePacker/CMakeLists.txt 2016-12-23 17:10:28.593185862 +0000
+++ b/tools/depends/native/TexturePacker/CMakeLists.txt 2016-12-23 17:10:39.469253011 +0000
@@ -1,3 +1,5 @@
+set(CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../../../..)
+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
if(APPLE)

View File

@ -6,13 +6,13 @@
# Not possible to directly refer to kodi variables, because of
# first/second expansion trickery...
KODI_TEXTUREPACKER_VERSION = 20.5-Nexus
KODI_TEXTUREPACKER_VERSION = 21.0-Omega
KODI_TEXTUREPACKER_SITE = $(call github,xbmc,xbmc,$(KODI_TEXTUREPACKER_VERSION))
KODI_TEXTUREPACKER_SOURCE = kodi-$(KODI_TEXTUREPACKER_VERSION).tar.gz
KODI_TEXTUREPACKER_DL_SUBDIR = kodi
KODI_TEXTUREPACKER_LICENSE = GPL-2.0
KODI_TEXTUREPACKER_LICENSE_FILES = LICENSE.md
HOST_KODI_TEXTUREPACKER_SUBDIR = tools/depends/native/TexturePacker
HOST_KODI_TEXTUREPACKER_SUBDIR = tools/depends/native/TexturePacker/src
HOST_KODI_TEXTUREPACKER_DEPENDENCIES = \
host-giflib \
host-libjpeg \
@ -21,7 +21,7 @@ HOST_KODI_TEXTUREPACKER_DEPENDENCIES = \
HOST_KODI_TEXTUREPACKER_CXXFLAGS = \
$(HOST_CXXFLAGS) \
-std=c++0x \
-std=c++17 \
-DTARGET_POSIX \
-DTARGET_LINUX \
-D_LINUX \
@ -30,11 +30,12 @@ HOST_KODI_TEXTUREPACKER_CXXFLAGS = \
HOST_KODI_TEXTUREPACKER_CONF_OPTS += \
-DCMAKE_CXX_FLAGS="$(HOST_KODI_TEXTUREPACKER_CXXFLAGS)" \
-DCMAKE_MODULE_PATH=$(@D)/cmake/modules \
-DKODI_SOURCE_DIR=$(@D) \
-Wno-dev
define HOST_KODI_TEXTUREPACKER_INSTALL_CMDS
$(INSTALL) -m 755 -D \
$(@D)/tools/depends/native/TexturePacker/TexturePacker \
$(@D)/tools/depends/native/TexturePacker/src/TexturePacker \
$(HOST_DIR)/bin/kodi-TexturePacker
endef

View File

@ -5,12 +5,13 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on !(BR2_i386 && !BR2_X86_CPU_HAS_SSE)
depends on BR2_USE_MMU # libcdio, and others
comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x"
comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x, host gcc >= 9.x"
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_9 \
|| !BR2_HOST_GCC_AT_LEAST_9 \
|| BR2_TOOLCHAIN_USES_MUSL \
|| !BR2_PACKAGE_PYTHON3 \
|| BR2_PACKAGE_PYTHON3_PYC_ONLY
@ -26,6 +27,7 @@ config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
depends on BR2_PACKAGE_HAS_UDEV # libinput
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
select BR2_PACKAGE_LIBDISPLAY_INFO
comment "kodi needs udev support for gbm"
depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
@ -56,6 +58,7 @@ menuconfig BR2_PACKAGE_KODI
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # C++17
depends on BR2_HOST_GCC_AT_LEAST_9 # C++17
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_USES_MUSL
depends on BR2_USE_WCHAR
@ -103,6 +106,7 @@ menuconfig BR2_PACKAGE_KODI
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_TAGLIB
select BR2_PACKAGE_TINYXML
select BR2_PACKAGE_TINYXML2
select BR2_PACKAGE_ZLIB
select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
select BR2_PACKAGE_LIBINPUT if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
@ -162,6 +166,7 @@ config BR2_PACKAGE_KODI_EVENTCLIENTS
config BR2_PACKAGE_KODI_LIBBLURAY
bool "blu-ray"
select BR2_PACKAGE_LIBBLURAY
select BR2_PACKAGE_LIBUDFREAD
help
Enable Blu-ray input support.
Select this if you want to play back Blu-ray content.

View File

@ -1,5 +1,9 @@
# From https://github.com/xbmc/xbmc/blob/Omega/xbmc/interfaces/swig/CMakeLists.txt
sha512 743698979c801f3cfb36545888b5303e1e25dae5692bb45cab7ebbe102a6eda31f09abc6978349ad90ecaf630416fc87eacba7781244855e7e771a3c44041fa0 apache-groovy-binary-4.0.16.zip
sha512 8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaab1111e37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc commons-lang3-3.14.0-bin.tar.gz
sha512 2e94877000dd270b69e2e8cbf49f258a90b4c628b6b6b0814e300a2f0e9c391f0816dceb0707e596ae3b7c9532f93e7a4917df47c77f44b3a810e14042ce5f3f commons-text-1.11.0-bin.tar.gz
# Locally computed
sha256 9bf3257ebf251d20f276b7f90681985a270779150af2fb395d4b593c04002deb kodi-20.5-Nexus.tar.gz
sha256 7f54c1fd8456ac46221fbc85e447362bdc209163c6cb19fca98d106560071b7c kodi-21.0-Omega.tar.gz
sha256 f38c4a4e7a4f4da6d8e83b8852489aa3bb6588a915dc41f5ee89d9aad305a06e kodi-libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz
sha256 584f62a3896794408d46368e2ecf2c6217ab9c676ce85921b2d68b8961f49dfc kodi-libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz
sha256 719130091e3adc9725ba72df808f24a14737a009dca5a4c38c601c0c76449b62 kodi-libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz

View File

@ -6,8 +6,8 @@
# When updating the version, please also update kodi-jsonschemabuilder
# and kodi-texturepacker
KODI_VERSION_MAJOR = 20.5
KODI_VERSION_NAME = Nexus
KODI_VERSION_MAJOR = 21.0
KODI_VERSION_NAME = Omega
KODI_VERSION = $(KODI_VERSION_MAJOR)-$(KODI_VERSION_NAME)
KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
KODI_LICENSE = GPL-2.0
@ -45,6 +45,7 @@ KODI_DEPENDENCIES = \
libfribidi \
libplist \
libpng \
libudfread \
lzo \
openssl \
pcre \
@ -54,6 +55,7 @@ KODI_DEPENDENCIES = \
sqlite \
taglib \
tinyxml \
tinyxml2 \
zlib
# taken from tools/depends/target/*/*-VERSION
@ -61,10 +63,21 @@ 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
KODI_EXTRA_DOWNLOADS += \
https://groovy.jfrog.io/artifactory/dist-release-local/groovy-zips/apache-groovy-binary-4.0.16.zip \
https://dlcdn.apache.org/commons/lang/binaries/commons-lang3-3.14.0-bin.tar.gz \
https://dlcdn.apache.org/commons/text/binaries/commons-text-1.11.0-bin.tar.gz \
$(call github,xbmc,libdvdcss,$(KODI_LIBDVDCSS_VERSION))/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \
$(call github,xbmc,libdvdnav,$(KODI_LIBDVDNAV_VERSION))/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \
$(call github,xbmc,libdvdread,$(KODI_LIBDVDREAD_VERSION))/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz
define KODI_PROVIDE_JAVA_TARBALLS
mkdir -p $(@D)/buildroot-build/build/download
cp $(KODI_DL_DIR)/apache-groovy-binary-4.0.16.zip $(@D)/buildroot-build/build/download
cp $(KODI_DL_DIR)/commons-lang3-3.14.0-bin.tar.gz $(@D)/buildroot-build/build/download
cp $(KODI_DL_DIR)/commons-text-1.11.0-bin.tar.gz $(@D)/buildroot-build/build/download
endef
KODI_POST_EXTRACT_HOOKS = KODI_PROVIDE_JAVA_TARBALLS
KODI_CONF_OPTS += \
-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) $(KODI_C_FLAGS)" \
-DENABLE_APP_AUTONAME=OFF \
@ -104,7 +117,7 @@ endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM),y)
KODI_CORE_PLATFORM_NAME += gbm
KODI_DEPENDENCIES += libgbm libinput libxkbcommon
KODI_DEPENDENCIES += libdisplay-info libgbm libinput libxkbcommon
endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND),y)
@ -368,12 +381,6 @@ else
KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=OFF
endif
ifeq ($(BR2_PACKAGE_LIBUDFREAD),y)
KODI_DEPENDENCIES += libudfread
else
KODI_CONF_OPTS += -DENABLE_INTERNAL_UDFREAD=OFF
endif
# Remove versioncheck addon, updating Kodi is done by building a new
# buildroot image.
KODI_ADDON_MANIFEST = $(TARGET_DIR)/usr/share/kodi/system/addon-manifest.xml