package/kodi: bump version to 19.0-Matrix
authorBernd Kuhls <bernd.kuhls@t-online.de>
Tue, 2 Mar 2021 07:07:01 +0000 (08:07 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 6 Mar 2021 20:37:08 +0000 (21:37 +0100)
Rebased patch 0001.

Removed patch 0002, not needed anymore due to use of system ffmpeg
package.

Added patch 0002 to fix build with gcc-4.9, gcc-4.8 stays broken.

Switch from python2 to python3, reworked dependencies.

Rework platform handling following upstream changes, only the choice
of a render system (OpenGL vs. OpenGLES) is needed now, for details
see upstream PR 18534. Add configure options to force detection of the
host version of wayland-scanner.

Use system ffmpeg instead of internal build.

Added dependency to spdlog, for reference see upstream PR 17498.

cpluff was removed upstream.

Add configure option to use host version of flatc.

Add configure option to disable tests, for reference see upstream PR
17489.

Added optional dependency to libudfread, for reference see upstream PR
17612.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/kodi-jsonschemabuilder/kodi-jsonschemabuilder.mk
package/kodi-texturepacker/kodi-texturepacker.mk
package/kodi/0001-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch
package/kodi/0002-Fix-crosscompiling-issues.patch [deleted file]
package/kodi/0002-linux-fix-drm-object-build-with-gcc-4.9.patch [new file with mode: 0644]
package/kodi/Config.in
package/kodi/kodi.hash
package/kodi/kodi.mk

index 2c7f77d050a33956e240a92d66d99d453a6aca64..57062c3c8cc4cb4c43ae35ed97484766f7840f47 100644 (file)
@@ -6,7 +6,7 @@
 
 # Not possible to directly refer to kodi variables, because of
 # first/second expansion trickery...
-KODI_JSONSCHEMABUILDER_VERSION = 18.9-Leia
+KODI_JSONSCHEMABUILDER_VERSION = 19.0-Matrix
 KODI_JSONSCHEMABUILDER_SITE = $(call github,xbmc,xbmc,$(KODI_JSONSCHEMABUILDER_VERSION))
 KODI_JSONSCHEMABUILDER_SOURCE = kodi-$(KODI_JSONSCHEMABUILDER_VERSION).tar.gz
 KODI_JSONSCHEMABUILDER_DL_SUBDIR = kodi
index 7b13904ef4d2b0128fae5fcb517bd76b784361bb..fd4356637972f27e61979ac35720c09b5da87d7c 100644 (file)
@@ -6,7 +6,7 @@
 
 # Not possible to directly refer to kodi variables, because of
 # first/second expansion trickery...
-KODI_TEXTUREPACKER_VERSION = 18.9-Leia
+KODI_TEXTUREPACKER_VERSION = 19.0-Matrix
 KODI_TEXTUREPACKER_SITE = $(call github,xbmc,xbmc,$(KODI_TEXTUREPACKER_VERSION))
 KODI_TEXTUREPACKER_SOURCE = kodi-$(KODI_TEXTUREPACKER_VERSION).tar.gz
 KODI_TEXTUREPACKER_DL_SUBDIR = kodi
index 5abb77e777ed60f0c2dcc85b88d7f4c1ebe5cfd6..057d2254bcf09406513250ef8b857c37b271192f 100644 (file)
@@ -8,18 +8,21 @@ When cross-compiling, the location at build time of the libraries is
 not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
 is here to handle this difference, so use it in kodi-config.cmake.
 
+Upstream status: Reverted (PR 17616)
+
 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 (rebased and simplified for Kodi 17.0-Krypton)
 Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+(rebased for Kodi 19.0-Matrix)
 ---
project/cmake/KodiConfig.cmake.in | 4 ++--
+ cmake/KodiConfig.cmake.in | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in
-index 76626ec..ffb8e1d 100644
+diff --git a/cmake/KodiConfig.cmake.in b/cmake/KodiConfig.cmake.in
+index a06d889fca9d..ff299807ea44 100644
 --- a/cmake/KodiConfig.cmake.in
 +++ b/cmake/KodiConfig.cmake.in
-@@ -8,7 +8,7 @@ if(NOT @APP_NAME_UC@_PREFIX)
+@@ -9,7 +9,7 @@ if(NOT @APP_NAME_UC@_PREFIX)
    set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
  endif()
  if(NOT @APP_NAME_UC@_INCLUDE_DIR)
@@ -28,10 +31,10 @@ index 76626ec..ffb8e1d 100644
  endif()
  if(NOT @APP_NAME_UC@_LIB_DIR)
    set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
-@@ -20,7 +20,7 @@ endif()
- if(NOT WIN32)
-   set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
+@@ -18,7 +18,7 @@ if(NOT @APP_NAME_UC@_DATA_DIR)
+   set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@)
  endif()
+ set(APP_RENDER_SYSTEM @APP_RENDER_SYSTEM@)
 -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)
  
diff --git a/package/kodi/0002-Fix-crosscompiling-issues.patch b/package/kodi/0002-Fix-crosscompiling-issues.patch
deleted file mode 100644 (file)
index 12bb66d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From d2c343a20bb61098d0450b15ea2d1dacd28d954a Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Sun, 12 Aug 2018 15:13:24 +0200
-Subject: [PATCH] Fix crosscompiling issues
-
-The codepath for KODI_DEPENDSBUILD needs to be used in order to provide
-the correct crosscompiling options to ffmpeg. The CMake option
-KODI_DEPENDSBUILD itself can not be enabled because it disables the
-internal build of libdvd*.
-
-To link kodi.bin with the statically built ffmpeg libraries kodi uses
-a wrapper script which calls pkgconfig. Our pkgconfig is patched to
-alter paths which breaks the link command in this case, to fix this
-PKG_CONFIG_SYSROOT_DIR was added.
-
-Also remove configure option --cpu from ffmpeg_conf to fix build
-errors.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- project/cmake/modules/FindFFMPEG.cmake     | 16 +++++++---------
- tools/depends/target/ffmpeg/CMakeLists.txt |  2 +-
- 2 files changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/project/cmake/modules/FindFFMPEG.cmake b/project/cmake/modules/FindFFMPEG.cmake
-index 28cc80710e..1ac8793149 100644
---- a/cmake/modules/FindFFMPEG.cmake
-+++ b/cmake/modules/FindFFMPEG.cmake
-@@ -234,14 +234,12 @@
-                      -DENABLE_VAAPI=${ENABLE_VAAPI}
-                      -DENABLE_VDPAU=${ENABLE_VDPAU})
--  if(KODI_DEPENDSBUILD)
-     set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH}
-                    -DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}
-                    -DCROSSCOMPILING=${CMAKE_CROSSCOMPILING}
-                    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
--                   -DOS=${OS}
-+                   -DOS=linux
-                    -DCMAKE_AR=${CMAKE_AR})
--  endif()
-   set(LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
-   list(APPEND LINKER_FLAGS ${SYSTEM_LDFLAGS})
-@@ -280,12 +278,12 @@
- "#!${BASH_COMMAND}
- if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}${APP_BINARY_SUFFIX}* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]]
- then
--  avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec`
--  avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat`
--  avfilter=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavfilter`
--  avutil=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavutil`
--  swscale=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswscale`
--  swresample=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswresample`
-+  avformat=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec`
-+  avcodec=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat`
-+  avfilter=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavfilter`
-+  avutil=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavutil`
-+  swscale=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswscale`
-+  swresample=`PKG_CONFIG_SYSROOT_DIR=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswresample`
-   gnutls=`PKG_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig/ ${PKG_CONFIG_EXECUTABLE}  --libs-only-l --static --silence-errors gnutls`
-   $@ $avcodec $avformat $avcodec $avfilter $swscale $swresample -lpostproc $gnutls
- else
-diff --git a/tools/depends/target/ffmpeg/CMakeLists.txt b/tools/depends/target/ffmpeg/CMakeLists.txt
-index fda6b0cac4..af3afa6b60 100644
---- a/tools/depends/target/ffmpeg/CMakeLists.txt
-+++ b/tools/depends/target/ffmpeg/CMakeLists.txt
-@@ -13,7 +13,7 @@
- if(CROSSCOMPILING)
-   set(pkgconf "PKG_CONFIG_LIBDIR=${DEPENDS_PATH}/lib/pkgconfig")
-   list(APPEND ffmpeg_conf --pkg-config=${PKG_CONFIG_EXECUTABLE} --pkg-config-flags=--static)
--  list(APPEND ffmpeg_conf --enable-cross-compile --cpu=${CPU} --arch=${CPU} --target-os=${OS})
-+  list(APPEND ffmpeg_conf --enable-cross-compile --arch=${CPU} --target-os=${OS})
-   list(APPEND ffmpeg_conf --ar=${CMAKE_AR} --strip=${CMAKE_STRIP})
-   message(STATUS "CROSS: ${ffmpeg_conf}")
- endif()
diff --git a/package/kodi/0002-linux-fix-drm-object-build-with-gcc-4.9.patch b/package/kodi/0002-linux-fix-drm-object-build-with-gcc-4.9.patch
new file mode 100644 (file)
index 0000000..b9a0efd
--- /dev/null
@@ -0,0 +1,34 @@
+From 4f3b35c58ffb755cd7371faa44e2914fd7be3f0a Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
+Date: Mon, 4 Jan 2021 22:32:28 +0100
+Subject: [PATCH] [linux] fix drm object build with gcc-4.9
+
+Fixes build error introduced by PR18858:
+
+kodi/xbmc/windowing/gbm/drm/DRMObject.cpp: In member function 'std::tuple<bool, long unsigned int> KODI::WINDOWING::GBM::CDRMObject::GetPropertyValue(const string&, const string&) const':
+kodi/xbmc/windowing/gbm/drm/DRMObject.cpp:103:39: error: converting to 'std::tuple<bool, long unsigned int>' from initializer list would use explicit constructor 'constexpr std::tuple<_T1, _T2>::tuple(_U1&&, _U2&&) [with _U1 = bool; _U2 = long long unsigned int&; <template-parameter-2-3> = void; _T1 = bool; _T2 = long unsigned int]'
+     return {true, prop->enums[j].value};
+
+Patch sent upstream: https://github.com/xbmc/xbmc/pull/19020
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ xbmc/windowing/gbm/drm/DRMObject.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xbmc/windowing/gbm/drm/DRMObject.cpp b/xbmc/windowing/gbm/drm/DRMObject.cpp
+index 7d27c6f059..f93f014f7d 100644
+--- a/xbmc/windowing/gbm/drm/DRMObject.cpp
++++ b/xbmc/windowing/gbm/drm/DRMObject.cpp
+@@ -100,7 +100,7 @@ std::tuple<bool, uint64_t> CDRMObject::GetPropertyValue(const std::string& name,
+     if (prop->enums[j].name != valueName)
+       continue;
+-    return {true, prop->enums[j].value};
++    return std::make_tuple(true, prop->enums[j].value);
+   }
+   return std::make_tuple(false, 0);
+-- 
+2.29.2
+
index 745df41e20793f4bd2f59892e0664d5de6b0be91..4fc2f832ac85624c3067d9a590c894724db8cb16 100644 (file)
@@ -5,103 +5,97 @@ 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 python w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.8"
+comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.9"
        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_4_8 \
+               || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \
                || BR2_TOOLCHAIN_USES_MUSL \
-               || !BR2_PACKAGE_PYTHON \
-               || BR2_PACKAGE_PYTHON_PYC_ONLY
+               || !BR2_PACKAGE_PYTHON3 \
+               || BR2_PACKAGE_PYTHON3_PYC_ONLY
 
 config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
        bool
 
-config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_RBPI
+config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
        bool
        default y
-       # List of valid CPUs can be found here:
-       # https://github.com/xbmc/xbmc/blob/Krypton/project/cmake/scripts/rbpi/ArchSetup.cmake#L12
-       depends on BR2_arm1176jzf_s || BR2_cortex_a7 || BR2_cortex_a53
-       depends on BR2_PACKAGE_RPI_USERLAND
+       depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
+       depends on BR2_PACKAGE_MESA3D_GBM
        depends on BR2_PACKAGE_HAS_UDEV # libinput
        select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
+       select BR2_PACKAGE_LIBINPUT
+       select BR2_PACKAGE_LIBXKBCOMMON
 
-config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND_GL
-       bool
-       default y
-       depends on BR2_PACKAGE_HAS_LIBGL
-       depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # waylandpp
-       depends on BR2_HOST_GCC_AT_LEAST_4_9 # waylandpp
-       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # waylandpp
-       depends on BR2_PACKAGE_WAYLAND # waylandpp
-       select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
-
-config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND_GLES
+config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
        bool
        default y
-       depends on BR2_PACKAGE_HAS_LIBGLES
+       depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
        depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # waylandpp
        depends on BR2_HOST_GCC_AT_LEAST_4_9 # waylandpp
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # waylandpp
        depends on BR2_PACKAGE_WAYLAND # waylandpp
        select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
+       select BR2_PACKAGE_LIBXKBCOMMON
+       select BR2_PACKAGE_WAYLANDPP
 
-config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11_OPENGL
+config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11
        bool
        default y
-       depends on BR2_PACKAGE_HAS_LIBEGL
-       depends on BR2_PACKAGE_HAS_LIBGL
+       depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
        depends on BR2_PACKAGE_XORG7
        select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
+       select BR2_PACKAGE_XLIB_LIBXRANDR
 
-comment "kodi needs an OpenGL EGL backend with OpenGL support"
+comment "kodi needs an OpenGL EGL backend with OpenGL or GLES support"
        depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
 
 menuconfig BR2_PACKAGE_KODI
        bool "kodi"
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz
-       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_TOOLCHAIN_USES_MUSL
        depends on BR2_USE_WCHAR
-       depends on !BR2_STATIC_LIBS # gnutls, python and others
+       depends on !BR2_STATIC_LIBS # gnutls, python3 and others
+       depends on BR2_PACKAGE_HAS_LIBEGL
        depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
        depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
-       depends on BR2_PACKAGE_PYTHON
-       depends on !BR2_PACKAGE_PYTHON_PYC_ONLY
+       depends on BR2_PACKAGE_PYTHON3
+       depends on !BR2_PACKAGE_PYTHON3_PYC_ONLY
        select BR2_NEEDS_HOST_JAVA
-       select BR2_PACKAGE_EXPAT
+       select BR2_PACKAGE_FFMPEG
+       select BR2_PACKAGE_FFMPEG_GPL
+       select BR2_PACKAGE_FFMPEG_POSTPROC
+       select BR2_PACKAGE_FFMPEG_SWSCALE
        select BR2_PACKAGE_FLATBUFFERS
        select BR2_PACKAGE_FMT
-       select BR2_PACKAGE_FONTCONFIG
+       select BR2_PACKAGE_FONTCONFIG # needed for libass
        select BR2_PACKAGE_FREETYPE
        select BR2_PACKAGE_FSTRCMP
-       select BR2_PACKAGE_GNUTLS
        select BR2_PACKAGE_LIBASS
        select BR2_PACKAGE_LIBCDIO
        select BR2_PACKAGE_LIBCROSSGUID
        select BR2_PACKAGE_LIBCURL
+       select BR2_PACKAGE_LIBDRM
        select BR2_PACKAGE_LIBFRIBIDI
        select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
        select BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS if !BR2_ENABLE_LOCALE
        select BR2_PACKAGE_LIBPLIST
        select BR2_PACKAGE_LZO
-       select BR2_PACKAGE_NCURSES
        select BR2_PACKAGE_OPENSSL
        select BR2_PACKAGE_PCRE
        select BR2_PACKAGE_PCRE_UCP
-       select BR2_PACKAGE_PYTHON_2TO3
-       select BR2_PACKAGE_PYTHON_BSDDB
-       select BR2_PACKAGE_PYTHON_CURSES
-       select BR2_PACKAGE_PYTHON_PYEXPAT
-       select BR2_PACKAGE_PYTHON_SQLITE
-       select BR2_PACKAGE_PYTHON_SSL
-       select BR2_PACKAGE_PYTHON_UNICODEDATA
-       select BR2_PACKAGE_PYTHON_ZLIB
+       select BR2_PACKAGE_PYTHON3_2TO3
+       select BR2_PACKAGE_PYTHON3_PYEXPAT
+       select BR2_PACKAGE_PYTHON3_SQLITE
+       select BR2_PACKAGE_PYTHON3_SSL
+       select BR2_PACKAGE_PYTHON3_UNICODEDATA
+       select BR2_PACKAGE_PYTHON3_ZLIB
        select BR2_PACKAGE_RAPIDJSON
+       select BR2_PACKAGE_SPDLOG
        select BR2_PACKAGE_SQLITE
        select BR2_PACKAGE_TAGLIB
        select BR2_PACKAGE_TINYXML
@@ -196,34 +190,17 @@ config BR2_PACKAGE_KODI_MYSQL
          Enable MySQL support
 
 choice
-       prompt "platform"
-       default BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
-
-config BR2_PACKAGE_KODI_PLATFORM_RBPI
-       bool "Raspberry Pi"
-       depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_RBPI
-       select BR2_PACKAGE_LIBINPUT
-       select BR2_PACKAGE_LIBXKBCOMMON
+       prompt "render system"
+       default BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
 
-config BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GL
-       bool "Wayland/OpenGL"
-       depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND_GL
+config BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
+       bool "OpenGL"
+       depends on BR2_PACKAGE_HAS_LIBGL
        select BR2_PACKAGE_LIBGLU
-       select BR2_PACKAGE_LIBXKBCOMMON
-       select BR2_PACKAGE_WAYLANDPP
 
-config BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GLES
-       bool "Wayland/GLES"
-       depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND_GLES
-       select BR2_PACKAGE_LIBXKBCOMMON
-       select BR2_PACKAGE_WAYLANDPP
-
-config BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
-       bool "X11/OpenGL"
-       depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11_OPENGL
-       select BR2_PACKAGE_LIBDRM
-       select BR2_PACKAGE_LIBGLU
-       select BR2_PACKAGE_XLIB_LIBXRANDR
+config BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES
+       bool "GLES"
+       depends on BR2_PACKAGE_HAS_LIBGLES
 
 endchoice
 
@@ -257,40 +234,40 @@ config BR2_PACKAGE_KODI_LIBUSB
        # https://github.com/xbmc/xbmc/blob/Jarvis/configure.ac#L1554
        # "if libudev is available, we don't need libusb"
        depends on !BR2_PACKAGE_HAS_UDEV
-       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
        select BR2_PACKAGE_LIBUSB
        select BR2_PACKAGE_LIBUSB_COMPAT
        help
          Enable libusb support.
 
-comment "usb support needs a toolchain w/ gcc >= 4.9"
-       depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-
 config BR2_PACKAGE_KODI_LIBVA
        bool "va"
        depends on \
-               BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GL || \
-               BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GLES || \
-               BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
+               BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM || \
+               BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND || \
+               (BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 && \
+                       BR2_PACKAGE_KODI_RENDER_SYSTEM_GL)
        select BR2_PACKAGE_LIBVA
        help
          Enable libva support.
 
-comment "libva support needs platform 'Wayland' or 'X11/OpenGL'"
+comment "libva support needs platform 'gbm', 'Wayland' or 'X11/OpenGL'"
        depends on \
-               !BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GL && \
-               !BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GLES && \
-               !BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
+               !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM && \
+               !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND && \
+               (!BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 || \
+                       !BR2_PACKAGE_KODI_RENDER_SYSTEM_GL)
 
 config BR2_PACKAGE_KODI_LIBVDPAU
        bool "vdpau"
-       depends on BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
+       depends on BR2_PACKAGE_KODI_PLATFORM_X11 && \
+               BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
        select BR2_PACKAGE_LIBVDPAU
        help
          Enable libvdpau support.
 
 comment "libvdpau support needs platform 'X11/OpenGL'"
-       depends on !BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL
+       depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 || \
+               !BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
 
 config BR2_PACKAGE_KODI_UPNP
        bool "upnp"
index 545f87909fcf210fc053698ad48d97b31dd04c43..17bbc33714ea6506dc95e57549cefe48680c44c7 100644 (file)
@@ -1,6 +1,5 @@
 # Locally computed
-sha256  bdf8afa9356b1f815de9984801d3e0d2b46a719e747895b75528f20995c59d2b  kodi-18.9-Leia.tar.gz
-sha256  e11e7594af35f36ab2711252c3d6bb106908f26605498aef4a9be2d7bc001db2  kodi-ffmpeg-4.0.4-Leia-18.4.tar.gz
+sha256  f7ef8a6f45862ae3b7ebfce4950d74f534be3cb4a0e67ce640963746b3f668f2  kodi-19.0-Matrix.tar.gz
 sha256  38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d  kodi-libdvdcss-1.4.2-Leia-Beta-5.tar.gz
 sha256  071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a  kodi-libdvdnav-6.0.0-Leia-Alpha-3.tar.gz
 sha256  a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf  kodi-libdvdread-6.0.0-Leia-Alpha-3.tar.gz
index 3f22db48a3c4350a94e5a4e62c8e928336d0ceb9..bf5822eb618cace62086893b19a32b8629e58ee3 100644 (file)
@@ -6,7 +6,7 @@
 
 # When updating the version, please also update kodi-jsonschemabuilder
 # and kodi-texturepacker
-KODI_VERSION = 18.9-Leia
+KODI_VERSION = 19.0-Matrix
 KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
 KODI_LICENSE = GPL-2.0
 KODI_LICENSE_FILES = LICENSE.md
@@ -15,13 +15,12 @@ KODI_INSTALL_STAGING = YES
 # kodi recommends building out-of-source
 KODI_SUPPORTS_IN_SOURCE_BUILD = NO
 KODI_DEPENDENCIES = \
-       expat \
+       ffmpeg \
        flatbuffers \
        fmt \
        fontconfig \
        freetype \
        fstrcmp \
-       gnutls \
        host-flatbuffers \
        host-gawk \
        host-gettext \
@@ -35,36 +34,30 @@ KODI_DEPENDENCIES = \
        libcdio \
        libcrossguid \
        libcurl \
+       libdrm \
+       libegl \
        libfribidi \
        libplist \
        lzo \
-       ncurses \
        openssl \
        pcre \
-       python \
+       python3 \
        rapidjson \
+       spdlog \
        sqlite \
        taglib \
        tinyxml \
        zlib
 
 # taken from tools/depends/target/*/*-VERSION
-KODI_FFMPEG_VERSION = 4.0.4-Leia-18.4
 KODI_LIBDVDCSS_VERSION = 1.4.2-Leia-Beta-5
 KODI_LIBDVDNAV_VERSION = 6.0.0-Leia-Alpha-3
 KODI_LIBDVDREAD_VERSION = 6.0.0-Leia-Alpha-3
 KODI_EXTRA_DOWNLOADS += \
-       $(call github,xbmc,FFmpeg,$(KODI_FFMPEG_VERSION))/kodi-ffmpeg-$(KODI_FFMPEG_VERSION).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_CPLUFF_AUTOCONF
-       cd $(KODI_SRCDIR)/lib/cpluff && ./autogen.sh
-endef
-KODI_PRE_CONFIGURE_HOOKS += KODI_CPLUFF_AUTOCONF
-KODI_DEPENDENCIES += host-automake host-autoconf host-libtool
-
 KODI_CONF_OPTS += \
        -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) $(KODI_C_FLAGS)" \
        -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(KODI_CXX_FLAGS)" \
@@ -72,30 +65,56 @@ KODI_CONF_OPTS += \
        -DENABLE_CCACHE=OFF \
        -DENABLE_DVDCSS=ON \
        -DENABLE_INTERNAL_CROSSGUID=OFF \
-       -DENABLE_INTERNAL_FFMPEG=ON \
+       -DWITH_FFMPEG=$(STAGING_DIR)/usr \
        -DENABLE_INTERNAL_FLATBUFFERS=OFF \
-       -DFFMPEG_URL=$(KODI_DL_DIR)/kodi-ffmpeg-$(KODI_FFMPEG_VERSION).tar.gz \
+       -DFLATBUFFERS_FLATC_EXECUTABLE=$(HOST_DIR)/bin/flatc \
        -DKODI_DEPENDSBUILD=OFF \
        -DENABLE_LDGOLD=OFF \
        -DNATIVEPREFIX=$(HOST_DIR) \
        -DDEPENDS_PATH=$(STAGING_DIR)/usr \
+       -DENABLE_TESTING=OFF \
        -DWITH_JSONSCHEMABUILDER=$(HOST_DIR)/bin/JsonSchemaBuilder \
        -DWITH_TEXTUREPACKER=$(HOST_DIR)/bin/TexturePacker \
        -DLIBDVDCSS_URL=$(KODI_DL_DIR)/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \
        -DLIBDVDNAV_URL=$(KODI_DL_DIR)/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \
        -DLIBDVDREAD_URL=$(KODI_DL_DIR)/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz
 
+ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GL),y)
+KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gl
+KODI_DEPENDENCIES += libgl libglu
+else ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES),y)
+KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gles
+KODI_DEPENDENCIES += libgles
+endif
+
+ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM),y)
+KODI_CORE_PLATFORM_NAME += gbm
+KODI_DEPENDENCIES += libinput libxkbcommon mesa3d
+endif
+
+ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND),y)
+KODI_CONF_OPTS += \
+       -DPC_WAYLANDPP_SCANNER=$(HOST_DIR)/bin/wayland-scanner \
+       -DPC_WAYLANDPP_SCANNER_FOUND=ON
+KODI_CORE_PLATFORM_NAME += wayland
+KODI_DEPENDENCIES += libxkbcommon waylandpp
+endif
+
+ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11),y)
+KODI_CORE_PLATFORM_NAME += x11
+KODI_DEPENDENCIES += \
+       xlib_libX11 \
+       xlib_libXext \
+       xlib_libXrandr
+endif
+
+KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
+
 ifeq ($(BR2_ENABLE_LOCALE),)
 KODI_DEPENDENCIES += libiconv
 endif
 
-ifeq ($(BR2_PACKAGE_KODI_PLATFORM_RBPI),y)
-# These CPU-specific options are only used on rbpi:
-# https://github.com/xbmc/xbmc/blob/Krypton/project/cmake/scripts/rbpi/ArchSetup.cmake#L13
-ifeq ($(BR2_arm1176jzf_s)$(BR2_cortex_a7)$(BR2_cortex_a53),y)
-KODI_CONF_OPTS += -DWITH_CPU="$(GCC_TARGET_CPU)"
-endif
-else ifeq ($(BR2_arceb)$(BR2_arcle),y)
+ifeq ($(BR2_arceb)$(BR2_arcle),y)
 KODI_CONF_OPTS += -DWITH_ARCH=arc -DWITH_CPU=arc
 else ifeq ($(BR2_armeb),y)
 KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm
@@ -168,31 +187,8 @@ ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
 KODI_CXX_FLAGS += -latomic
 endif
 
-ifeq ($(BR2_PACKAGE_KODI_PLATFORM_RBPI),y)
-KODI_CONF_OPTS += -DCORE_PLATFORM_NAME=rbpi
-KODI_DEPENDENCIES += libinput libxkbcommon rpi-userland
-endif
-
-ifeq ($(BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GL),y)
-KODI_CONF_OPTS += \
-       -DCORE_PLATFORM_NAME=wayland \
-       -DWAYLAND_RENDER_SYSTEM=gl
-KODI_DEPENDENCIES += libegl libgl libglu libxkbcommon waylandpp
-endif
-
-ifeq ($(BR2_PACKAGE_KODI_PLATFORM_WAYLAND_GLES),y)
-KODI_CONF_OPTS += \
-       -DCORE_PLATFORM_NAME=wayland \
-       -DWAYLAND_RENDER_SYSTEM=gles
-KODI_C_FLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl`
-KODI_CXX_FLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl`
-KODI_DEPENDENCIES += libegl libgles libxkbcommon waylandpp
-endif
-
-ifeq ($(BR2_PACKAGE_KODI_PLATFORM_X11_OPENGL),y)
-KODI_CONF_OPTS += -DCORE_PLATFORM_NAME=x11
-KODI_DEPENDENCIES += libegl libglu libgl xlib_libX11 xlib_libXext \
-       xlib_libXrandr libdrm
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),)
+KODI_C_FLAGS += -std=gnu99
 endif
 
 ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
@@ -348,6 +344,12 @@ 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