From 9f8647640b3ce3e4a99f0ba7022eb6d55ba77c97 Mon Sep 17 00:00:00 2001 From: marmeladema Date: Mon, 15 Mar 2021 21:55:33 +0000 Subject: [PATCH] kodi: update to 19.0-Matrix and detach kodi-rpi patch files Kodi 19 does not support rpbi as a specific core platform anymore and thus cannot be updated to use kodi 19 and its patches. It might be possible that kodi itelf work out of the box now using the gdm core platform using: ``` $ kodi --windowing=gbm ``` --- srcpkgs/kodi-rpi/patches | 1 - .../patches/add-missing-cassert.patch | 0 .../patches/add-missing-includes.patch | 10 +++ .../patches/crossguid-0.2.patch | 0 .../disable-static-texturepacker-build.patch | 11 +++ srcpkgs/kodi-rpi/patches/fix-fileemu.patch | 74 +++++++++++++++++++ srcpkgs/kodi-rpi/patches/fix-musl.patch | 11 +++ .../kodi-rpi/patches/fortify-source-fix.patch | 11 +++ srcpkgs/kodi-rpi/patches/ppc64.patch | 15 ++++ .../patches/remove-filewrap.patch | 0 srcpkgs/kodi/patches/fix-musl.patch | 4 +- srcpkgs/kodi/template | 49 +++++++++--- 12 files changed, 171 insertions(+), 15 deletions(-) delete mode 120000 srcpkgs/kodi-rpi/patches rename srcpkgs/{kodi => kodi-rpi}/patches/add-missing-cassert.patch (100%) create mode 100644 srcpkgs/kodi-rpi/patches/add-missing-includes.patch rename srcpkgs/{kodi => kodi-rpi}/patches/crossguid-0.2.patch (100%) create mode 100644 srcpkgs/kodi-rpi/patches/disable-static-texturepacker-build.patch create mode 100644 srcpkgs/kodi-rpi/patches/fix-fileemu.patch create mode 100644 srcpkgs/kodi-rpi/patches/fix-musl.patch create mode 100644 srcpkgs/kodi-rpi/patches/fortify-source-fix.patch create mode 100644 srcpkgs/kodi-rpi/patches/ppc64.patch rename srcpkgs/{kodi => kodi-rpi}/patches/remove-filewrap.patch (100%) diff --git a/srcpkgs/kodi-rpi/patches b/srcpkgs/kodi-rpi/patches deleted file mode 120000 index 95c1fe40f19..00000000000 --- a/srcpkgs/kodi-rpi/patches +++ /dev/null @@ -1 +0,0 @@ -../kodi/patches \ No newline at end of file diff --git a/srcpkgs/kodi/patches/add-missing-cassert.patch b/srcpkgs/kodi-rpi/patches/add-missing-cassert.patch similarity index 100% rename from srcpkgs/kodi/patches/add-missing-cassert.patch rename to srcpkgs/kodi-rpi/patches/add-missing-cassert.patch diff --git a/srcpkgs/kodi-rpi/patches/add-missing-includes.patch b/srcpkgs/kodi-rpi/patches/add-missing-includes.patch new file mode 100644 index 00000000000..236bfa6fd0e --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/add-missing-includes.patch @@ -0,0 +1,10 @@ +--- a/xbmc/filesystem/ZipManager.h.orig ++++ b/xbmc/filesystem/ZipManager.h +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + class CURL; + diff --git a/srcpkgs/kodi/patches/crossguid-0.2.patch b/srcpkgs/kodi-rpi/patches/crossguid-0.2.patch similarity index 100% rename from srcpkgs/kodi/patches/crossguid-0.2.patch rename to srcpkgs/kodi-rpi/patches/crossguid-0.2.patch diff --git a/srcpkgs/kodi-rpi/patches/disable-static-texturepacker-build.patch b/srcpkgs/kodi-rpi/patches/disable-static-texturepacker-build.patch new file mode 100644 index 00000000000..369f1b24d76 --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/disable-static-texturepacker-build.patch @@ -0,0 +1,11 @@ +--- a/tools/depends/native/TexturePacker/Makefile 2016-04-24 08:48:30.000000000 +0200 ++++ b/tools/depends/native/TexturePacker/Makefile 2016-07-16 15:12:39.875911293 +0200 +@@ -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) diff --git a/srcpkgs/kodi-rpi/patches/fix-fileemu.patch b/srcpkgs/kodi-rpi/patches/fix-fileemu.patch new file mode 100644 index 00000000000..6cce7a4d352 --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/fix-fileemu.patch @@ -0,0 +1,74 @@ +--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h 2019-01-30 19:20:09.336910851 +0100 ++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h 2019-01-30 19:20:25.423668836 +0100 +@@ -12,7 +12,7 @@ + #define _onexit_t void* + #endif + +-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + typedef off_t __off_t; + typedef int64_t off64_t; + typedef off64_t __off64_t; +--- a/xbmc/cores/DllLoader/exports/wrapper.c 2019-01-30 19:24:16.396348561 +0100 ++++ b/xbmc/cores/DllLoader/exports/wrapper.c 2019-01-30 19:25:38.562176774 +0100 +@@ -27,7 +27,7 @@ + #endif + #include + +-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + typedef off_t __off_t; + typedef int64_t off64_t; + typedef off64_t __off64_t; +--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp 2019-01-30 19:29:02.249253971 +0100 ++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp 2019-01-30 19:39:34.911053272 +0100 +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #ifdef TARGET_POSIX + #include "PlatformDefs.h" // for __stat64 + #include "XFileUtils.h" +@@ -1480,7 +1481,7 @@ + int ret; + + ret = dll_fgetpos64(stream, &tmpPos); +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + *pos = (fpos_t)tmpPos; + #else + pos->__pos = (off_t)tmpPos.__pos; +@@ -1493,8 +1494,9 @@ + CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream); + if (pFile != NULL) + { +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) +- *pos = pFile->GetPosition(); ++#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) ++ uint64_t *ppos = (uint64_t *) pos; ++ *ppos = pFile->GetPosition(); + #else + pos->__pos = pFile->GetPosition(); + #endif +@@ -1509,8 +1511,9 @@ + int fd = g_emuFileWrapper.GetDescriptorByStream(stream); + if (fd >= 0) + { +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) +- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0) ++#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) ++ const uint64_t *ppos = (const uint64_t *) pos; ++ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0) + #else + if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0) + #endif +@@ -1532,7 +1535,7 @@ + if (fd >= 0) + { + fpos64_t tmpPos; +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + tmpPos= *pos; + #else + tmpPos.__pos = (off64_t)(pos->__pos); diff --git a/srcpkgs/kodi-rpi/patches/fix-musl.patch b/srcpkgs/kodi-rpi/patches/fix-musl.patch new file mode 100644 index 00000000000..98fa08aaffb --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/fix-musl.patch @@ -0,0 +1,11 @@ +--- a/xbmc/cores/DllLoader/ldt_keeper.c 2019-01-30 20:08:15.532823846 +0100 ++++ b/xbmc/cores/DllLoader/ldt_keeper.c 2019-01-30 20:08:34.139580225 +0100 +@@ -49,7 +49,7 @@ + #ifdef __cplusplus + extern "C" { + #endif +-#if defined(TARGET_ANDROID) && defined(__i386__) && !defined(modify_ldt) ++#if defined(__linux__) && !defined(__GLIBC__) && !defined(modify_ldt) + #define modify_ldt(a,b,c) syscall( __NR_modify_ldt, a, b, c); + #else + int modify_ldt(int func, void *ptr, unsigned long bytecount); diff --git a/srcpkgs/kodi-rpi/patches/fortify-source-fix.patch b/srcpkgs/kodi-rpi/patches/fortify-source-fix.patch new file mode 100644 index 00000000000..5717746e09e --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/fortify-source-fix.patch @@ -0,0 +1,11 @@ +--- a/xbmc/cores/DllLoader/exports/wrapper.c.orig ++++ b/xbmc/cores/DllLoader/exports/wrapper.c +@@ -462,7 +462,7 @@ + // are actually #defines which are inlined when compiled with -O. Those defines + // actally call __*chk (for example, __fread_chk). We need to bypass this whole + // thing to actually call our wrapped functions. +-#if _FORTIFY_SOURCE > 1 ++#if defined(__GLIBC__) && _FORTIFY_SOURCE > 1 + + size_t __wrap___fread_chk(void * ptr, size_t ptrlen, size_t size, size_t n, FILE * stream) + { diff --git a/srcpkgs/kodi-rpi/patches/ppc64.patch b/srcpkgs/kodi-rpi/patches/ppc64.patch new file mode 100644 index 00000000000..ab008d445a9 --- /dev/null +++ b/srcpkgs/kodi-rpi/patches/ppc64.patch @@ -0,0 +1,15 @@ +--- a/cmake/scripts/linux/ArchSetup.cmake 2019-01-30 21:03:03.146025973 +0100 ++++ b/cmake/scripts/linux/ArchSetup.cmake 2019-01-30 21:03:47.810441038 +0100 +@@ -32,6 +32,12 @@ + elseif(CPU MATCHES aarch64 OR CPU MATCHES arm64) + set(ARCH aarch64) + set(NEON True) ++ elseif(CPU MATCHES ppc64le) ++ set(ARCH ppc64le-linux) ++ set(NEON False) ++ elseif(CPU MATCHES ppc64) ++ set(ARCH ppc64-linux) ++ set(NEON False) + else() + message(SEND_ERROR "Unknown CPU: ${CPU}") + endif() diff --git a/srcpkgs/kodi/patches/remove-filewrap.patch b/srcpkgs/kodi-rpi/patches/remove-filewrap.patch similarity index 100% rename from srcpkgs/kodi/patches/remove-filewrap.patch rename to srcpkgs/kodi-rpi/patches/remove-filewrap.patch diff --git a/srcpkgs/kodi/patches/fix-musl.patch b/srcpkgs/kodi/patches/fix-musl.patch index 98fa08aaffb..c2eb622c98a 100644 --- a/srcpkgs/kodi/patches/fix-musl.patch +++ b/srcpkgs/kodi/patches/fix-musl.patch @@ -4,8 +4,8 @@ #ifdef __cplusplus extern "C" { #endif --#if defined(TARGET_ANDROID) && defined(__i386__) && !defined(modify_ldt) -+#if defined(__linux__) && !defined(__GLIBC__) && !defined(modify_ldt) +-#if defined(TARGET_ANDROID) && (defined(__i386__) || defined(__x86_64__)) && !defined(modify_ldt) ++#if defined(__linux__) && (defined(__i386__) || defined(__x86_64__)) && !defined(modify_ldt) #define modify_ldt(a,b,c) syscall( __NR_modify_ldt, a, b, c); #else int modify_ldt(int func, void *ptr, unsigned long bytecount); diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template index bff11d8ae5a..9905a0293d4 100644 --- a/srcpkgs/kodi/template +++ b/srcpkgs/kodi/template @@ -1,19 +1,38 @@ # Template file for 'kodi' pkgname=kodi -version=18.9 -revision=6 -_codename="Leia" +version=19.0 +revision=1 +_codename="Matrix" wrksrc="xbmc-${version}-${_codename}" build_style=cmake -configure_args="-DENABLE_INTERNAL_CROSSGUID=OFF -DWITH_FFMPEG=/usr - -DENABLE_LDGOLD=OFF" +configure_args="-DWITH_FFMPEG=/usr -DENABLE_LDGOLD=OFF + -DAPP_RENDER_SYSTEM=gl -DENABLE_INTERNAL_CROSSGUID=ON + -DCROSSGUID_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/crossguid-8f399e8bd4.tar.gz + -Dlibdvdcss_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdcss-1.4.2-Leia-Beta-5.tar.gz + -Dlibdvdread_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdread-6.0.0-Leia-Alpha-3.tar.gz + -Dlibdvdnav_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz" +make_build_target="all" short_desc="Software media player and entertainment hub for digital media" maintainer="Orphaned " license="GPL-2.0-or-later" homepage="http://www.kodi.tv" distfiles="https://github.com/xbmc/xbmc/archive/${version}-${_codename}.tar.gz" -checksum=bdf8afa9356b1f815de9984801d3e0d2b46a719e747895b75528f20995c59d2b -python_version=2 +checksum=f7ef8a6f45862ae3b7ebfce4950d74f534be3cb4a0e67ce640963746b3f668f2 +# Add CrossGUID dependency +distfiles+=" http://mirrors.kodi.tv/build-deps/sources/crossguid-8f399e8bd4.tar.gz" +checksum+=" 3d77d09a5df0de510aeeb940df4cb534787ddff3bb1828779753f5dfa1229d10" +# Add libdvdcss dependency +distfiles+=" https://github.com/xbmc/libdvdcss/archive/1.4.2-Leia-Beta-5.tar.gz>libdvdcss-1.4.2-Leia-Beta-5.tar.gz" +checksum+=" 38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d" +# Add libdvdread dependency +distfiles+=" https://github.com/xbmc/libdvdread/archive/6.0.0-Leia-Alpha-3.tar.gz>libdvdread-6.0.0-Leia-Alpha-3.tar.gz" +checksum+=" a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf" +# Add libdvdnav dependency +distfiles+=" https://github.com/xbmc/libdvdnav/archive/6.0.0-Leia-Alpha-3.tar.gz>libdvdnav-6.0.0-Leia-Alpha-3.tar.gz" +checksum+=" 071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a" +skip_extraction="crossguid-8f399e8bd4.tar.gz libdvdcss-1.4.2-Leia-Beta-5.tar.gz + libdvdread-6.0.0-Leia-Alpha-3.tar.gz libdvdnav-6.0.0-Leia-Alpha-3.tar.gz" +python_version=3 patch_args="-Np1" LDFLAGS+=" -Wl,-z,stack-size=1048576" @@ -22,8 +41,8 @@ archs="i686* x86_64* aarch64* ppc64*" hostmakedepends=" - automake libtool pkg-config gperf cmake gettext zip unzip nasm yasm python-devel - gettext-devel libltdl-devel curl flatbuffers swig openjdk11 which" + automake libtool pkg-config gperf cmake gettext zip unzip nasm yasm python3-devel + gettext-devel libltdl-devel curl flatbuffers swig openjdk11 which wayland-scanner++" makedepends=" eudev-libudev-devel pcre-devel expat-devel libpng-devel libjpeg-turbo-devel libXrandr-devel avahi-libs-devel pulseaudio-devel samba-devel tiff-devel @@ -35,8 +54,9 @@ makedepends=" libbluetooth-devel yajl-devel libplist-devel librtmp-devel tinyxml-devel taglib-devel libcap-devel lame-devel libbluray-devel libnfs-devel ffmpeg-devel giflib-devel libxslt-devel gnutls-devel libssh-devel libmicrohttpd-devel - libcec-devel dcadec-devel crossguid flatbuffers-devel fmt-devel lcms2-devel - libfstrcmp-devel rapidjson libcdio-paranoia" + libcec-devel dcadec-devel flatbuffers-devel fmt-devel lcms2-devel + libfstrcmp-devel rapidjson libcdio-paranoia spdlog libwaylandpp-devel + libinput-devel libdav1d-devel gtest-devel" # The following dependencies are dlopen(3)ed. depends="libbluray libmad libvorbis libcurl libflac libmodplug libass libmpeg2 @@ -46,11 +66,16 @@ depends+=" glxinfo hicolor-icon-theme desktop-file-utils xdpyinfo" case "$XBPS_TARGET_MACHINE" in aarch64*) hostmakedepends+=" libmariadbclient-devel SDL2_image-devel lzo-devel" - makedepends+=" python-devel ffmpeg-devel" + hostmakedepends+=" libwaylandpp-devel" + makedepends+=" python3-devel ffmpeg-devel" configure_args+=" -DENABLE_VAAPI=OFF" ;; esac +if [ -z "$CROSS_BUILD" ]; then + make_build_target+=" kodi-test" +fi + pre_configure() { if [ "$CROSS_BUILD" ]; then find -type f | \