diff options
Diffstat (limited to 'media-tv/kodi')
-rw-r--r-- | media-tv/kodi/Manifest | 5 | ||||
-rw-r--r-- | media-tv/kodi/files/dav1d.patch | 94 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-19.4-atomic.patch | 108 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch | 12 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-19.4-fmt-9.patch | 74 | ||||
-rw-r--r-- | media-tv/kodi/kodi-19.4-r6.ebuild | 370 |
6 files changed, 0 insertions, 663 deletions
diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest deleted file mode 100644 index 0bad21b1..00000000 --- a/media-tv/kodi/Manifest +++ /dev/null @@ -1,5 +0,0 @@ -DIST ffmpeg-kodi-4.3.2-Matrix-19.1.tar.gz 13490949 BLAKE2B 90007f2c4bac0e0a52b419d9333cf75b00e291f1ea7447cbdc579ee2f860de7c436c924253600f3fbd6e3faaabe97aaf46db083a5bbd2f5f03badcca5d643e89 SHA512 d3719253d674b16638b873545583b82fba3176803c81ba8bcb37e90456dd956f1c2ee8996493840cff2d61c6399f06ed0524a759f46e4ce174bce23e9c6eda4a -DIST kodi-19.4-Matrix.tar.gz 53487622 BLAKE2B 75432f0fe225d10548c9cbce1ec5a1722ce75e9bc6f19ba9a8deffc50874be94ca1552c5bd75b3ea1712344ebdf6f5934bca3ee315e6acccd2141df7de3304e9 SHA512 2804c57d85877873dae8e62f083b86f51fceebb802819523654a231f50f9850022956e1a9b91702e7c8b3f7ab437ceea7b10319239a8289dbf877ce94bba07c9 -DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e -DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173f81fcde29074eb138e119a2ae9156cde3c3d8bfd716f5d0e605b97f2dcac21f570781137c8533c5ae306b51e3905822fda318355 SHA512 11c93eaacd156f8fd7dec7c43d366438b201f31ad55b2870463a9e286912b6ada08882319a021fb7992190f87b909a49f2b83e0321cc17aedc29f7fe5898fa72 -DIST libdvdread-6.0.0-Leia-Alpha-3.tar.gz 130649 BLAKE2B 0c206acdaf0776841ab792c74e023af07d9539eb72e03ae164382a31ed950f60e5e15f1d055979d28f1398924471b294d11f064b11b8373353b3962a3777ff3c SHA512 b3419ba0a1a2dd70f1bb6236afdfe1c6e88c9ad4264198b289e3bba9375e077cecf7f89848c7b09debaa445327f3507101f3d157e692f7a7163b2bb52643e1e7 diff --git a/media-tv/kodi/files/dav1d.patch b/media-tv/kodi/files/dav1d.patch deleted file mode 100644 index 12470162..00000000 --- a/media-tv/kodi/files/dav1d.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff -Nur a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake ---- a/cmake/modules/FindFFMPEG.cmake 2022-03-02 18:38:51.000000000 +0000 -+++ b/cmake/modules/FindFFMPEG.cmake 2022-11-22 12:59:57.338906199 +0000 -@@ -275,6 +275,8 @@ - PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt - <SOURCE_DIR> && -+ patch -p1 < ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch && -+ echo "########################################## patched ffmpeg ##############################" - ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/FindGnuTls.cmake - <SOURCE_DIR>) -diff -Nur a/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch b/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch ---- a/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch 1970-01-01 01:00:00.000000000 +0100 -+++ b/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch 2022-11-22 12:20:07.727744168 +0000 -@@ -0,0 +1,78 @@ -+From 2546e1ed27f92a840a2cf319e3c1833799974cf1 Mon Sep 17 00:00:00 2001 -+From: BlackEagle <ike.devolder@gmail.com> -+Date: Fri, 29 Apr 2022 14:33:12 +0200 -+Subject: [PATCH] add build fix for dav1d 1.0.0 -+ -+Taken from https://github.com/FFmpeg/FFmpeg/commit/e204846ec16c1ab34c7f3a681734cf5190433018 -+ -+add FF_DAV1D_VERSION_AT_LEAST -+ -+Extracted from https://github.com/FFmpeg/FFmpeg/commit/7ee17ec7e46afef0e0af20af196292ec75f50b62 -+ -+Signed-off-by: BlackEagle <ike.devolder@gmail.com> -+--- -+ libavcodec/libdav1d.c | 24 ++++++++++++++++++++++-- -+ 1 file changed, 22 insertions(+), 2 deletions(-) -+ -+diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c -+index bbb3ec1e6c..08b4af8ac8 100644 -+--- a/libavcodec/libdav1d.c -++++ b/libavcodec/libdav1d.c -+@@ -30,6 +30,9 @@ -+ #include "decode.h" -+ #include "internal.h" -+ -++#define FF_DAV1D_VERSION_AT_LEAST(x,y) \ -++ (DAV1D_API_VERSION_MAJOR > (x) || DAV1D_API_VERSION_MAJOR == (x) && DAV1D_API_VERSION_MINOR >= (y)) -++ -+ typedef struct Libdav1dContext { -+ AVClass *class; -+ Dav1dContext *c; -+@@ -140,6 +143,15 @@ static av_cold int libdav1d_init(AVCodecContext *c) -+ if (dav1d->operating_point >= 0) -+ s.operating_point = dav1d->operating_point; -+ -++#if FF_DAV1D_VERSION_AT_LEAST(6,0) -++ if (dav1d->frame_threads || dav1d->tile_threads) -++ s.n_threads = FFMAX(dav1d->frame_threads, dav1d->tile_threads); -++ else -++ s.n_threads = FFMIN(threads, DAV1D_MAX_THREADS); -++ s.max_frame_delay = (c->flags & AV_CODEC_FLAG_LOW_DELAY) ? 1 : s.n_threads; -++ av_log(c, AV_LOG_DEBUG, "Using %d threads, %d max_frame_delay\n", -++ s.n_threads, s.max_frame_delay); -++#else -+ s.n_tile_threads = dav1d->tile_threads -+ ? dav1d->tile_threads -+ : FFMIN(floor(sqrt(threads)), DAV1D_MAX_TILE_THREADS); -+@@ -148,6 +160,7 @@ static av_cold int libdav1d_init(AVCodecContext *c) -+ : FFMIN(ceil(threads / s.n_tile_threads), DAV1D_MAX_FRAME_THREADS); -+ av_log(c, AV_LOG_DEBUG, "Using %d frame threads, %d tile threads\n", -+ s.n_frame_threads, s.n_tile_threads); -++#endif -+ -+ res = dav1d_open(&dav1d->c, &s); -+ if (res < 0) -+@@ -384,11 +397,18 @@ static av_cold int libdav1d_close(AVCodecContext *c) -+ return 0; -+ } -+ -++#ifndef DAV1D_MAX_FRAME_THREADS -++#define DAV1D_MAX_FRAME_THREADS DAV1D_MAX_THREADS -++#endif -++#ifndef DAV1D_MAX_TILE_THREADS -++#define DAV1D_MAX_TILE_THREADS DAV1D_MAX_THREADS -++#endif -++ -+ #define OFFSET(x) offsetof(Libdav1dContext, x) -+ #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM -+ static const AVOption libdav1d_options[] = { -+- { "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_TILE_THREADS, VD }, -+- { "framethreads", "Frame threads", OFFSET(frame_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_FRAME_THREADS, VD }, -++ { "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_TILE_THREADS, VD | AV_OPT_FLAG_DEPRECATED }, -++ { "framethreads", "Frame threads", OFFSET(frame_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_FRAME_THREADS, VD | AV_OPT_FLAG_DEPRECATED }, -+ { "filmgrain", "Apply Film Grain", OFFSET(apply_grain), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD }, -+ { "oppoint", "Select an operating point of the scalable bitstream", OFFSET(operating_point), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 31, VD }, -+ { "alllayers", "Output all spatial layers", OFFSET(all_layers), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VD }, -+-- -+2.36.0 -+ diff --git a/media-tv/kodi/files/kodi-19.4-atomic.patch b/media-tv/kodi/files/kodi-19.4-atomic.patch deleted file mode 100644 index 3811fda8..00000000 --- a/media-tv/kodi/files/kodi-19.4-atomic.patch +++ /dev/null @@ -1,108 +0,0 @@ -From ac3213e683e4c62c50dc02fef3b168d883245094 Mon Sep 17 00:00:00 2001 -From: Yixun Lan <dlan@gentoo.org> -Date: Tue, 9 Aug 2022 16:45:09 +0800 -Subject: [PATCH] [cmake] link atomic library for certain CPU architectures - -For those CPU architectures: -RISC-V lack 8-bit and 16-bit atomic instructions, and -ARM/MIPS/PPC lack 64-bit atomic instruction. - -GCC is supposed to convert these atomics via masking and shifting -like LLVM, which means anything that wants to use these instructions -needs the link option -latomic. - -In this patch, we will try to detect if 8-bit, 64-bit atomic instructions exist, -otherwise the atomic library will append to the DEPLIBS list. - -Original issue: -* https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733 - -For reference: -* https://gcc.gnu.org/wiki/Atomic/GCCMM - -riscv64 specific: -* https://lists.debian.org/debian-riscv/2022/01/msg00009.html - -Signed-off-by: Yixun Lan <dlan@gentoo.org> ---- - cmake/modules/FindAtomic.cmake | 56 +++++++++++++++++++++++++++++ - cmake/scripts/linux/ArchSetup.cmake | 3 ++ - 2 files changed, 59 insertions(+) - create mode 100644 cmake/modules/FindAtomic.cmake - -diff --git a/cmake/modules/FindAtomic.cmake b/cmake/modules/FindAtomic.cmake -new file mode 100644 -index 0000000000..8ea3c815d7 ---- /dev/null -+++ b/cmake/modules/FindAtomic.cmake -@@ -0,0 +1,56 @@ -+#.rst: -+# FindAtomic -+# ----- -+# Finds the ATOMIC library -+# -+# This will define the following variables:: -+# -+# ATOMIC_FOUND - system has ATOMIC -+# ATOMIC_LIBRARIES - the ATOMIC libraries -+# -+# and the following imported targets:: -+# -+# ATOMIC::ATOMIC - The ATOMIC library -+ -+ -+include(CheckCXXSourceCompiles) -+ -+set(atomic_code -+ " -+ #include <atomic> -+ #include <cstdint> -+ std::atomic<uint8_t> n8 (0); // riscv64 -+ std::atomic<uint64_t> n64 (0); // armel, mipsel, powerpc -+ int main() { -+ ++n8; -+ ++n64; -+ return 0; -+ }") -+ -+check_cxx_source_compiles("${atomic_code}" ATOMIC_LOCK_FREE_INSTRUCTIONS) -+ -+if(ATOMIC_LOCK_FREE_INSTRUCTIONS) -+ set(ATOMIC_FOUND TRUE) -+ set(ATOMIC_LIBRARIES) -+else() -+ set(CMAKE_REQUIRED_LIBRARIES "-latomic") -+ check_cxx_source_compiles("${atomic_code}" ATOMIC_IN_LIBRARY) -+ set(CMAKE_REQUIRED_LIBRARIES) -+ if(ATOMIC_IN_LIBRARY) -+ set(ATOMIC_LIBRARY atomic) -+ include(FindPackageHandleStandardArgs) -+ find_package_handle_standard_args(Atomic DEFAULT_MSG ATOMIC_LIBRARY) -+ set(ATOMIC_LIBRARIES ${ATOMIC_LIBRARY}) -+ if(NOT TARGET ATOMIC::ATOMIC) -+ add_library(ATOMIC::ATOMIC UNKNOWN IMPORTED) -+ set_target_properties(ATOMIC::ATOMIC PROPERTIES -+ IMPORTED_LOCATION "${ATOMIC_LIBRARY}") -+ endif() -+ unset(ATOMIC_LIBRARY) -+ else() -+ if(Atomic_FIND_REQUIRED) -+ message(FATAL_ERROR "Neither lock free instructions nor -latomic found.") -+ endif() -+ endif() -+endif() -+unset(atomic_code) -diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake -index 35ab1402f5..848723af1f 100644 ---- a/cmake/scripts/linux/ArchSetup.cmake -+++ b/cmake/scripts/linux/ArchSetup.cmake -@@ -199,3 +199,6 @@ if(NOT USE_INTERNAL_LIBS) - set(USE_INTERNAL_LIBS OFF) - endif() - endif() -+ -+# Atomic library -+list(APPEND PLATFORM_REQUIRED_DEPS Atomic) --- -2.35.1 - diff --git a/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch b/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch deleted file mode 100644 index e9ff90df..00000000 --- a/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- xbmc/xbmc/windowing/X11/GLContextEGL.h -+++ xbmc/xbmc/windowing/X11/GLContextEGL.h -@@ -13,7 +13,7 @@ - #include "threads/CriticalSection.h" - - #include <EGL/eglext.h> --#include <EGL/eglextchromium.h> -+#include <EGL/eglext_angle.h> - #include <X11/Xutil.h> - - class CGLContextEGL : public CGLContext - diff --git a/media-tv/kodi/files/kodi-19.4-fmt-9.patch b/media-tv/kodi/files/kodi-19.4-fmt-9.patch deleted file mode 100644 index b60d9ccc..00000000 --- a/media-tv/kodi/files/kodi-19.4-fmt-9.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 6e081841981af8fc0d88d4f549456fd93b7ae2ac Mon Sep 17 00:00:00 2001 -From: Rudi Heitbaum <rudi@heitbaum.com> -Date: Wed, 6 Jul 2022 22:48:35 +1000 -Subject: [PATCH 1/2] GLUtils: cast as char as formatting of non-void pointers - is disallowed - ---- - xbmc/utils/GLUtils.cpp | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/xbmc/utils/GLUtils.cpp b/xbmc/utils/GLUtils.cpp -index 1ef804709ff56..c36dcf6a20fec 100644 ---- a/xbmc/utils/GLUtils.cpp -+++ b/xbmc/utils/GLUtils.cpp -@@ -148,27 +148,27 @@ void _VerifyGLState(const char* szfile, const char* szfunction, int lineno) - void LogGraphicsInfo() - { - #if defined(HAS_GL) || defined(HAS_GLES) -- const GLubyte *s; -+ const char* s; - -- s = glGetString(GL_VENDOR); -+ s = reinterpret_cast<const char*>(glGetString(GL_VENDOR)); - if (s) - CLog::Log(LOGINFO, "GL_VENDOR = %s", s); - else - CLog::Log(LOGINFO, "GL_VENDOR = NULL"); - -- s = glGetString(GL_RENDERER); -+ s = reinterpret_cast<const char*>(glGetString(GL_RENDERER)); - if (s) - CLog::Log(LOGINFO, "GL_RENDERER = %s", s); - else - CLog::Log(LOGINFO, "GL_RENDERER = NULL"); - -- s = glGetString(GL_VERSION); -+ s = reinterpret_cast<const char*>(glGetString(GL_VERSION)); - if (s) - CLog::Log(LOGINFO, "GL_VERSION = %s", s); - else - CLog::Log(LOGINFO, "GL_VERSION = NULL"); - -- s = glGetString(GL_SHADING_LANGUAGE_VERSION); -+ s = reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)); - if (s) - CLog::Log(LOGINFO, "GL_SHADING_LANGUAGE_VERSION = %s", s); - else - -From 6a504c306b743b73225bd81e490ef7dc9fae2c25 Mon Sep 17 00:00:00 2001 -From: Rudi Heitbaum <rudi@heitbaum.com> -Date: Mon, 11 Jul 2022 09:39:02 +0000 -Subject: [PATCH 2/2] WinSystemX11: cast as char as formatting of non-void - pointers is disallowed - ---- - xbmc/windowing/X11/WinSystemX11.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 8a18288fd8af0..033c0f77bf454 100644 ---- a/xbmc/windowing/X11/WinSystemX11.cpp -+++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -1038,7 +1038,10 @@ bool CWinSystemX11::HasWindowManager() - - if(status == Success && items_read) - { -- CLog::Log(LOGDEBUG,"Window Manager Name: %s", data); -+ const char* s; -+ -+ s = reinterpret_cast<const char*>(data); -+ CLog::Log(LOGDEBUG, "Window Manager Name: {}", s); - } - else - CLog::Log(LOGDEBUG,"Window Manager Name: "); diff --git a/media-tv/kodi/kodi-19.4-r6.ebuild b/media-tv/kodi/kodi-19.4-r6.ebuild deleted file mode 100644 index f84e0a1b..00000000 --- a/media-tv/kodi/kodi-19.4-r6.ebuild +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_REQ_USE="sqlite,ssl" -LIBDVDCSS_VERSION="1.4.2-Leia-Beta-5" -LIBDVDREAD_VERSION="6.0.0-Leia-Alpha-3" -LIBDVDNAV_VERSION="6.0.0-Leia-Alpha-3" -FFMPEG_VERSION="4.3.2" -CODENAME="Matrix" -FFMPEG_KODI_VERSION="19.1" -PYTHON_COMPAT=( python3_{8,9,10} ) -SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz -> libdvdcss-${LIBDVDCSS_VERSION}.tar.gz - https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz -> libdvdread-${LIBDVDREAD_VERSION}.tar.gz - https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz -> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz - !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz )" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" - EGIT_BRANCH="Matrix" - inherit git-r3 -else - MY_PV=${PV/_p/_r} - MY_PV=${MY_PV/_alpha/a} - MY_PV=${MY_PV/_beta/b} - MY_PV=${MY_PV/_rc/RC} - MY_PV="${MY_PV}-${CODENAME}" - MY_P="${PN}-${MY_PV}" - SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86" - S=${WORKDIR}/xbmc-${MY_PV} -fi - -inherit autotools cmake desktop libtool linux-info pax-utils python-single-r1 xdg - -PATCHES=( - "${FILESDIR}/${P}-fmt-9.patch" - "${FILESDIR}/${P}-atomic.patch" - "${FILESDIR}/dav1d.patch" -) - -DESCRIPTION="A free and open source media-player and entertainment hub" -HOMEPAGE="https://kodi.tv/ https://kodi.wiki/" - -LICENSE="GPL-2+" -SLOT="0" -# use flag is called libusb so that it doesn't fool people in thinking that -# it is _required_ for USB support. Otherwise they'll disable udev and -# that's going to be worse. -IUSE="airplay alsa bluetooth bluray caps cec +css dav1d dbus eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical power-control pulseaudio raspberry-pi samba +system-ffmpeg test udf udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf" -IUSE="${IUSE} cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - || ( gbm wayland X ) - ?? ( mariadb mysql ) - bluray? ( udf ) - udev? ( !libusb ) - udisks? ( dbus ) - upower? ( dbus ) - power-control? ( dbus ) - vdpau? ( - X - !gles - !gbm - ) - zeroconf? ( dbus ) -" -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=dev-libs/lzo-2.04 - >=dev-libs/flatbuffers-1.12.0:= - >=media-libs/libjpeg-turbo-2.0.4:= - >=media-libs/libpng-1.6.26:0= -" -COMMON_TARGET_DEPEND="${PYTHON_DEPS} - airplay? ( - >=app-pda/libplist-2.0.0 - net-libs/shairplay - ) - alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) - bluetooth? ( net-wireless/bluez ) - bluray? ( >=media-libs/libbluray-1.1.2 ) - caps? ( sys-libs/libcap ) - dbus? ( sys-apps/dbus ) - dev-db/sqlite - dev-libs/crossguid - >=dev-libs/fribidi-1.0.5 - cec? ( >=dev-libs/libcec-4.0[raspberry-pi?] ) - dev-libs/libpcre[cxx] - >=dev-libs/spdlog-1.5.0:= - dev-libs/tinyxml[stl] - $(python_gen_cond_dep ' - dev-python/pillow[${PYTHON_USEDEP}] - dev-python/pycryptodome[${PYTHON_USEDEP}] - ') - >=dev-libs/libcdio-2.1.0[cxx] - >=dev-libs/libfmt-6.1.2 - dev-libs/libfstrcmp - gbm? ( - >=dev-libs/libinput-1.10.5 - media-libs/mesa[gbm(+)] - x11-libs/libxkbcommon - ) - gles? ( - !raspberry-pi? ( media-libs/mesa[gles2] ) - ) - lcms? ( media-libs/lcms:2 ) - libusb? ( virtual/libusb:1 ) - virtual/ttf-fonts - media-fonts/roboto - >=media-libs/freetype-2.10.1 - >=media-libs/libass-0.13.4 - !raspberry-pi? ( media-libs/mesa[egl(+)] ) - >=media-libs/taglib-1.11.1 - system-ffmpeg? ( - >=media-video/ffmpeg-${FFMPEG_VERSION}:=[dav1d?,encode,postproc] - =media-video/ffmpeg-4*[openssl] - ) - !system-ffmpeg? ( - app-arch/bzip2 - dav1d? ( media-libs/dav1d ) - ) - mysql? ( dev-db/mysql-connector-c:= ) - mariadb? ( dev-db/mariadb-connector-c:= ) - >=net-misc/curl-7.68.0[http2] - nfs? ( >=net-fs/libnfs-2.0.0:= ) - !gles? ( media-libs/glu ) - >=dev-libs/openssl-1.1.1k:0= - raspberry-pi? ( - || ( media-libs/raspberrypi-userland media-libs/raspberrypi-userland-bin media-libs/mesa[egl(+),gles2,video_cards_vc4] ) - ) - pulseaudio? ( media-sound/pulseaudio ) - samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) - >=sys-libs/zlib-1.2.11 - udf? ( >=dev-libs/libudfread-1.0.0 ) - udev? ( virtual/udev ) - vaapi? ( - media-libs/libva:= - system-ffmpeg? ( media-video/ffmpeg[vaapi] ) - wayland? ( media-libs/libva[wayland] ) - X? ( media-libs/libva[X] ) - ) - virtual/libiconv - vdpau? ( - || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) - system-ffmpeg? ( media-video/ffmpeg[vdpau] ) - ) - wayland? ( - >=dev-cpp/waylandpp-0.2.3:= - media-libs/mesa[wayland] - >=dev-libs/wayland-protocols-1.7 - >=x11-libs/libxkbcommon-0.4.1 - ) - webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages(+)] ) - X? ( - media-libs/mesa[X] - !gles? ( media-libs/libglvnd[X] ) - x11-libs/libX11 - x11-libs/libXrandr - x11-libs/libXrender - system-ffmpeg? ( media-video/ffmpeg[X] ) - ) - x11-libs/libdrm - xslt? ( - dev-libs/libxslt - >=dev-libs/libxml2-2.9.4 - ) - zeroconf? ( net-dns/avahi[dbus] ) -" -RDEPEND="${COMMON_DEPEND} ${COMMON_TARGET_DEPEND} - lirc? ( app-misc/lirc ) - power-control? ( || ( sys-apps/systemd sys-auth/elogind ) ) - udisks? ( sys-fs/udisks:2 ) - upower? ( sys-power/upower ) -" -DEPEND="${COMMON_DEPEND} ${COMMON_TARGET_DEPEND} - dev-libs/rapidjson - test? ( >=dev-cpp/gtest-1.10.0 ) -" -BDEPEND="${COMMON_DEPEND} - dev-lang/swig - dev-util/cmake - media-libs/giflib - >=dev-libs/flatbuffers-1.11.0 - >=media-libs/libjpeg-turbo-2.0.4:= - >=media-libs/libpng-1.6.26:0= - virtual/pkgconfig - virtual/jre -" - -CONFIG_CHECK="~IP_MULTICAST" -ERROR_IP_MULTICAST=" -In some cases Kodi needs to access multicast addresses. -Please consider enabling IP_MULTICAST under Networking options. -" - -pkg_setup() { - check_extra_config - python-single-r1_pkg_setup -} - -src_unpack() { - if [[ ${PV} == *9999 ]] ; then - git-r3_src_unpack - else - default - fi -} - -src_prepare() { - # https://bugs.gentoo.org/885419 - if has_version ">=media-libs/mesa-22.3.0"; then - PATCHES+=( "${FILESDIR}/${P}-fix-mesa-22.3.0-build.patch" ) - fi - cmake_src_prepare - - # avoid long delays when powerkit isn't running #348580 - sed -i \ - -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ - xbmc/platform/linux/*.cpp || die - - # Prepare tools and libs witch are configured with autotools during compile time - AUTOTOOLS_DIRS=( - "${S}"/tools/depends/native/TexturePacker/src - "${S}"/tools/depends/native/JsonSchemaBuilder/src - ) - - local d - for d in "${AUTOTOOLS_DIRS[@]}" ; do - pushd ${d} >/dev/null || die - AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf - popd >/dev/null || die - done - elibtoolize - - # Prevent autoreconf rerun - sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ - "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ - "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ - || die -} - -src_configure() { - local platform=() - use gbm && platform+=( gbm ) - use wayland && platform+=( wayland ) - use X && platform+=( x11 ) - local core_platform_name="${platform[@]}" - local mycmakeargs=( - -DENABLE_SSE=$(usex cpu_flags_x86_sse) - -DENABLE_SSE2=$(usex cpu_flags_x86_sse2) - -DENABLE_SSE3=$(usex cpu_flags_x86_sse3) - -DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1) - -DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2) - -DENABLE_AVX=$(usex cpu_flags_x86_avx) - -DENABLE_AVX2=$(usex cpu_flags_x86_avx2) - -DENABLE_NEON=$(usex cpu_flags_arm_neon) - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - -DVERBOSE=ON - -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 - -DENABLE_ALSA=$(usex alsa) - -DENABLE_AIRTUNES=$(usex airplay) - -DENABLE_AVAHI=$(usex zeroconf) - -DENABLE_BLUETOOTH=$(usex bluetooth) - -DENABLE_BLURAY=$(usex bluray) - -DENABLE_CCACHE=OFF - -DENABLE_CLANGFORMAT=OFF - -DENABLE_CLANGTIDY=OFF - -DENABLE_CPPCHECK=OFF - -DENABLE_ISO9660PP=$(usex optical) - -DENABLE_CEC=$(usex cec) - -DENABLE_DBUS=$(usex dbus) - -DENABLE_DVDCSS=$(usex css) - -DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra staff in 'src_install()' - -DENABLE_INTERNAL_CROSSGUID=OFF - -DENABLE_INTERNAL_RapidJSON=OFF - -DENABLE_INTERNAL_FMT=OFF - -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" - -DENABLE_INTERNAL_FSTRCMP=OFF - -DENABLE_INTERNAL_FLATBUFFERS=OFF - -DENABLE_INTERNAL_DAV1D=OFF - -DENABLE_INTERNAL_GTEST=OFF - -DENABLE_INTERNAL_UDFREAD=OFF - -DENABLE_INTERNAL_SPDLOG=OFF - -DENABLE_CAP=$(usex caps) - -DENABLE_LCMS2=$(usex lcms) - -DENABLE_LIRCCLIENT=$(usex lirc) - -DENABLE_MARIADBCLIENT=$(usex mariadb) - -DENABLE_MDNS=OFF # used only on Android - -DENABLE_MICROHTTPD=$(usex webserver) - -DENABLE_MYSQLCLIENT=$(usex mysql) - -DENABLE_NFS=$(usex nfs) - -DENABLE_OPENGLES=$(usex gles) - -DENABLE_OPENGL=$(usex !gles) - -DENABLE_OPTICAL=$(usex optical) - -DENABLE_PLIST=$(usex airplay) - -DENABLE_PULSEAUDIO=$(usex pulseaudio) - -DENABLE_SMBCLIENT=$(usex samba) - -DENABLE_SNDIO=OFF - -DENABLE_TESTING=$(usex test) - -DENABLE_UDEV=$(usex udev) - -DENABLE_UDFREAD=$(usex udf) - -DENABLE_UPNP=$(usex upnp) - -DENABLE_VAAPI=$(usex vaapi) - -DENABLE_VDPAU=$(usex vdpau) - -DENABLE_XSLT=$(usex xslt) - -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz" - -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz" - -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz" - -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" - -DPYTHON_LIBRARY="$(python_get_library_path)" - -DAPP_RENDER_SYSTEM="$(usex gles gles gl)" - -DCORE_PLATFORM_NAME="${core_platform_name}" - ) - - use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) - - use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON ) - - if use system-ffmpeg; then - mycmakeargs+=( -DWITH_FFMPEG="yes" ) - else - mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" ) - fi - - if ! echo "${CFLAGS}" | grep -Fwqe '-DNDEBUG' - && ! echo "${CFLAGS}" | grep -Fwqe '-D_DEBUG' - ; then - CFLAGS+=' -DNDEBUG' # Kodi requires one of the 'NDEBUG' or '_DEBUG' defines - CXXFLAGS+=' -DNDEBUG' - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile all -} - -src_test() { - local myctestargs=( - # Known failing, unreliable test - # bug #743938 - -E "(TestCPUInfo.GetCPUFrequency)" - ) - - # see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213 - KODI_HOME="${BUILD_DIR}" cmake_build check -} - -src_install() { - cmake_src_install - - pax-mark Em "${ED}"/usr/$(get_libdir)/${PN}/${PN}.bin - - newicon media/icon48x48.png kodi.png - - rm "${ED}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die - dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ - usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf - - if use !eventclients ; then - rm -f "${ED}"/usr/bin/kodi-ps3remote || die - rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die - rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die - rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die - rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die - fi - - python_optimize "${D}$(python_get_sitedir)" -} |