From 19084ce30008254aa6ccc10ed75b02a61ba96653 Mon Sep 17 00:00:00 2001 From: David Guglielmi Date: Tue, 26 Sep 2023 21:29:40 +0200 Subject: [PATCH] media-tv/kodi: rework ffmpeg handling (Thanks Gino McCarty) --- media-tv/kodi/Manifest | 12 +- ...ard-declararion-of-FlatBufferBuilder.patch | 36 -- ...f-optical-dvds-without-mount-support.patch | 58 +++ ...date-previous-sync-type-after-Audio.patch} | 0 ...-ffmpeg5.patch => kodi-20.2-ffmpeg5.patch} | 0 media-tv/kodi/kodi-20.1.ebuild | 365 ------------------ media-tv/kodi/kodi-20.2-r1.ebuild | 19 +- 7 files changed, 72 insertions(+), 418 deletions(-) delete mode 100644 media-tv/kodi/files/kodi-20.1-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch create mode 100644 media-tv/kodi/files/kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch rename media-tv/kodi/files/{kodi-20.1-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch => kodi-20.2-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch} (100%) rename media-tv/kodi/files/{kodi-20.1-ffmpeg5.patch => kodi-20.2-ffmpeg5.patch} (100%) delete mode 100644 media-tv/kodi/kodi-20.1.ebuild diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest index dafd16d..b80bbb7 100644 --- a/media-tv/kodi/Manifest +++ b/media-tv/kodi/Manifest @@ -1,12 +1,10 @@ -AUX kodi-20.1-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch 1333 BLAKE2B 3debed4353672cdcf9215496ffc6d17c7427111b3be1e49497f16ead7f5e72411d811775e12cb5d1a0307ad48fa9f46bdc110e436c7f51416af2e3cdcc2e3540 SHA512 8447aaec6a56c9ba8f58658625cac2dc54f1266e0bfeccb29b0771e75b92818dd93d6275423cc8da4e74c9ff530008da0d50473bcb9bc92acfe72e2da06eb1a2 -AUX kodi-20.1-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch 1010 BLAKE2B e623854a71f0b53b90950fbbf71ee4d666a24c3071c6ae8489d476a8407068e01028a69c8ec5cbff909a646dd15efe7a1807aeee214995ae1486281bce309e30 SHA512 3db461ebad0f922fab7727e902beada28b5b43e2b71d9c6e39bdf9b2a7767d214ea6caf3a975649a27ba77b7a9a93d5e7b1df6c1ec0edf61223855e2463d5115 -AUX kodi-20.1-ffmpeg5.patch 94498 BLAKE2B f8244260911df037ec6cdf945fe19dae7e71e98c052c0ce3ec4c9bf5459205bef7696af599b00a86d5b554d0cbc674fed6f7835a45dd6df40ae4e83549e55175 SHA512 9dc21d7e41eac956816330e79e826456566a88c5fdc747be234fe873ff3b9e7241d87dcc6ecd804189fff8b61c027ac4e31e1af0da5de0537f91e8f51b3d96c5 +AUX kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch 2322 BLAKE2B 6064117e9995de379859fed4e8c27a0c233a5ff5e15cc586d9852691493f3bf230fb564512dc40db16ff4e61f7c8907b741a36fb8bcd0493159ba7f0af4e2c06 SHA512 eb855d05368d32582456261c7c98bfa6b5ddae8a74cac52d36c3bf54952e473b8b0254bf3fd9cac4943242a69cc039e42b02b09945cf9ca3ef654649ced6dcce +AUX kodi-20.2-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch 1010 BLAKE2B e623854a71f0b53b90950fbbf71ee4d666a24c3071c6ae8489d476a8407068e01028a69c8ec5cbff909a646dd15efe7a1807aeee214995ae1486281bce309e30 SHA512 3db461ebad0f922fab7727e902beada28b5b43e2b71d9c6e39bdf9b2a7767d214ea6caf3a975649a27ba77b7a9a93d5e7b1df6c1ec0edf61223855e2463d5115 +AUX kodi-20.2-ffmpeg5.patch 94498 BLAKE2B f8244260911df037ec6cdf945fe19dae7e71e98c052c0ce3ec4c9bf5459205bef7696af599b00a86d5b554d0cbc674fed6f7835a45dd6df40ae4e83549e55175 SHA512 9dc21d7e41eac956816330e79e826456566a88c5fdc747be234fe873ff3b9e7241d87dcc6ecd804189fff8b61c027ac4e31e1af0da5de0537f91e8f51b3d96c5 AUX kodi-20.2-ffmpeg6.patch 24798 BLAKE2B d9ed0a7e8d0d873f46ffe95e84eefb94ca4f5328da80a447acd3996971b3b913a2ce249ddf8b5c4019db58e5fdb158b2c5d1034cd3962c8ca6d6aab34e9c6f15 SHA512 3e419a882a112bc9c12078f9c8f8c31c6eb5546f12e71e558f31a862ac8119999aa1e63c8e42cc654361534024e0483288da3bec62a45c601ecf7694c04a66c2 -DIST ffmpeg-kodi-4.4.1-Nexus-Alpha1.tar.gz 13725564 BLAKE2B 51d310e7000aeba657d55341c5fdb540474e197b85062228ab4b314c8309ec11985aa7f105193333fc6106529e8e58c86eafe268190894be8532d0e0b9065fa6 SHA512 8beb04d577b5251e74b0d52f4d130997a8ba94bbd488c7c8309e6b45095c27807e150212888ce3a384b23dff52f8df1a7bde5407bae924ddc363f8125c0616c5 -DIST kodi-20.1-Nexus.tar.gz 54584529 BLAKE2B 32c945d7dbdcbfed4f319a91f445b6fd49de7fdcd59b2269aea46d7bc6b52677938800dbe9fba86e6e0451d86bb3afc80be6dd4f6f2fb83f6b2e3eb7375e2f8b SHA512 648df0649a0443d884b9414f43be4253764f1aaf9072aa8111e5a8a217c8291024ce1f27c2f7f673ac24005b32cc7dd25d86e99fc68166e3d5a637ae36b20f02 +DIST ffmpeg-kodi-5.1.2-Nexus-Alpha3.tar.gz 14416966 BLAKE2B fe35ef6a9aa2d60a2b34432ae8063850003d550208f223ea43af8ebcaa73e6993639e8cfe8a38676bac79e6b1816bd791b75b66ef58ff4d740bc9a5e0e7f9b78 SHA512 ce60852b8456d6f4bfc60de0ceadb33034d9b3eea8c0bc84d8b7199984ecbf334a2c4d9b42eade439d0ef30ce22e3b2ca0a49d4df837a18cd3136b4343ed3113 DIST kodi-20.2-Nexus.tar.gz 54587775 BLAKE2B 05c90cf9559f1e98c58deb5edd51c91d8ce60f75f13669e33c7168913870d13ca0ef68615834d9a6dd47c8f563ed591c1d43ec70e579938fb2f3251725538842 SHA512 ddeaa626f324817f6d038fd1eaeb851d0006156fa9ef96ef475932ec50c64cbdcc7ce8b93ceea0d8bfcd1f24edc1c9d0c4a97a163a615842a9fb698e5393f7ca DIST libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz 102124 BLAKE2B 2f503d3ab767094958f7ec10b4ad11ffd02665deee571c8f3c739bef5fc7e2ff84babc5a3fdee638dc095f896b72fe3ce65e6b688674cb5f7b7b77190992688c SHA512 d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda DIST libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz 128547 BLAKE2B db4d05836d8fbb3637ae50bdbfc0e4b612ee6b3be24addfea94ce772c3bf28d58b63a3f252d6f9f016f72f8cbb841cc1820b091226b136f4c4664385a32da73c SHA512 51e6fc033121241354a5f0b3fc9a430577ae3ff6bb7f31445aa548ef4893037fb80eea3b2c6774c81e9ebaf9c45e9b490c98c2c65eb38f9f7daba84b236f7e1d DIST libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz 110513 BLAKE2B c94feb5a03a12efa5b7767965118d2500a088299ea36f3b82e46d157e45893e6b04503cb50f179ca681bac914457607fab26acfa6e304752b355c407578572d1 SHA512 629a41157d07b8ec0ea1fe89ae5ec48f63047472a862782b805c531ae31a0376fc4dc15175f8280c3ef91d7fa977bacebb1b51232640034a34bab2293210fc5e -EBUILD kodi-20.1.ebuild 11112 BLAKE2B 1d8a28e6f55ea7aaae6da5a9bc971bc43880c5e2c656090997a2eff247f131b2360bf5fd9549ecaa450f2efc829b0c02630ffe240160b5ce02032d2e3d2de92a SHA512 7c0d90d8ead4b8b09eeb89e6eb0b02fc7ae721ac617691062e0bb8f086bee50fa125afa806d2dd5aadc21db566b9819c8399f1ee8c04c152e267351e55a52461 -EBUILD kodi-20.2-r1.ebuild 11067 BLAKE2B 15dcd54474971771ec4db6c0847fc62aa41a6c7ddf881965dd7232a13b8de83d395a6835a645a891e776d71c5a500343e3be1689064d6cbf7d835036b85b2f9d SHA512 f3a11ca99f8e300e2bfe8041fbd7b037174ef5b997cd3b77e4794ed15f077dcefb1a1bed6ae17bf6c3b2a7f6eaa4612c69b70e3b8d78d65a33122cdabfa8b452 +EBUILD kodi-20.2-r1.ebuild 10972 BLAKE2B 136660a011e9a98b38cc2f0753a36acdd501cac0d0748cd1d77785b39b918f8756525289d2fcee5bc3d7d4e7ae2fc8696727e948c8cc0d007de31a197ad9d9e8 SHA512 0976494912c9c1050160fff44a415dcdde47cddc50dc77146a2b45155749f4c3a7c208cf926bcf898ded50862b7a630ce81dcaefb1201f69e5c8a1d78599e0dd diff --git a/media-tv/kodi/files/kodi-20.1-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch b/media-tv/kodi/files/kodi-20.1-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch deleted file mode 100644 index d8dccfd..0000000 --- a/media-tv/kodi/files/kodi-20.1-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 351184d7e4e3edc447d04a297769eb41a477ba68 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Markus=20H=C3=A4rer?= -Date: Sun, 28 May 2023 00:49:40 +0200 -Subject: [PATCH] SavestateFlatBuffer: Remove forward declararion of - FlatBufferBuilder - -This caused a compiler error with recent faltbuffers because the type changed: - -In file included from xbmc/cores/RetroPlayer/savestates/SavestateDatabase.cpp:12: -xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h:19:7: error: definition of type 'FlatBufferBuilder' conflicts with type alias of the same name -class FlatBufferBuilder; - ^ -/usr/include/flatbuffers/flatbuffer_builder.h:1414:7: note: 'FlatBufferBuilder' declared here -using FlatBufferBuilder = FlatBufferBuilderImpl; - ^ -1 error generated. ---- - xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h b/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h -index cb93e6bbc2e12..fa42a9bad7034 100644 ---- a/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h -+++ b/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h -@@ -14,11 +14,6 @@ - - #include - --namespace flatbuffers --{ --class FlatBufferBuilder; --} -- - namespace KODI - { - namespace RETRO diff --git a/media-tv/kodi/files/kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch b/media-tv/kodi/files/kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch new file mode 100644 index 0000000..d5eb968 --- /dev/null +++ b/media-tv/kodi/files/kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch @@ -0,0 +1,58 @@ +From 8a29849250a13d93e27f1b39c64593c26503173b Mon Sep 17 00:00:00 2001 +From: enen92 <92enen@gmail.com> +Date: Mon, 17 Jul 2023 00:08:42 +0100 +Subject: [PATCH] [discs] Fix playback of optical dvds without mount support + +Co-authored-by: Don Mahurin <@> +--- + xbmc/Autorun.cpp | 11 ++++++++++- + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 11 ++++++++--- + 2 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/xbmc/Autorun.cpp b/xbmc/Autorun.cpp +index 87a77857e8563..b7aac6855ed92 100644 +--- a/xbmc/Autorun.cpp ++++ b/xbmc/Autorun.cpp +@@ -148,7 +148,16 @@ bool CAutorun::RunDisc(IDirectory* pDir, const std::string& strDrive, int& nAdde + bool bPlaying(false); + CFileItemList vecItems; + +- const CURL pathToUrl(strDrive); ++ CURL pathToUrl{strDrive}; ++ // if the url being requested is a generic "iso9660://" we need to expand it with the current drive device. ++ // use the hostname section to prepend the drive path ++ if (pathToUrl.GetRedacted() == "iso9660://") ++ { ++ pathToUrl.Reset(); ++ pathToUrl.SetProtocol("iso9660"); ++ pathToUrl.SetHostName(CServiceBroker::GetMediaManager().TranslateDevicePath("")); ++ } ++ + if ( !pDir->GetDirectory( pathToUrl, vecItems ) ) + { + return false; +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index 3b3f876eebe75..7de70724e11b8 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -767,12 +767,17 @@ bool CVideoPlayer::OpenInputStream() + CLog::Log(LOGINFO, "Creating InputStream"); + + // correct the filename if needed +- std::string filename(m_item.GetPath()); +- if (URIUtils::IsProtocol(filename, "dvd") || +- StringUtils::EqualsNoCase(filename, "iso9660://video_ts/video_ts.ifo")) ++ const CURL url{m_item.GetPath()}; ++ if (url.GetProtocol() == "dvd") + { ++ // FIXME: we should deprecate this when more than one device drive is supported + m_item.SetPath(CServiceBroker::GetMediaManager().TranslateDevicePath("")); + } ++ else if (url.GetProtocol() == "iso9660" && !url.GetHostName().empty() && ++ url.GetFileName() == "VIDEO_TS/video_ts.ifo") ++ { ++ m_item.SetPath(url.GetHostName()); ++ } + + m_pInputStream = CDVDFactoryInputStream::CreateInputStream(this, m_item, true); + if (m_pInputStream == nullptr) diff --git a/media-tv/kodi/files/kodi-20.1-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch b/media-tv/kodi/files/kodi-20.2-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch similarity index 100% rename from media-tv/kodi/files/kodi-20.1-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch rename to media-tv/kodi/files/kodi-20.2-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch diff --git a/media-tv/kodi/files/kodi-20.1-ffmpeg5.patch b/media-tv/kodi/files/kodi-20.2-ffmpeg5.patch similarity index 100% rename from media-tv/kodi/files/kodi-20.1-ffmpeg5.patch rename to media-tv/kodi/files/kodi-20.2-ffmpeg5.patch diff --git a/media-tv/kodi/kodi-20.1.ebuild b/media-tv/kodi/kodi-20.1.ebuild deleted file mode 100644 index 2abaa86..0000000 --- a/media-tv/kodi/kodi-20.1.ebuild +++ /dev/null @@ -1,365 +0,0 @@ -# Copyright 2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_REQ_USE="sqlite,ssl" -LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2" -LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2" -LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2" -FFMPEG_VERSION="4.4.1" -CODENAME="Nexus" -FFMPEG_KODI_VERSION="Alpha1" -PYTHON_COMPAT=( python3_{10,11} ) -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="Nexus" - 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 - -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 pipewire 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. -" - -PATCHES=( - "${FILESDIR}"/${P}-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch - "${FILESDIR}"/${P}-SavestateFlatBuffer-Remove-forward-declararion-of-FlatBufferBuilder.patch - "${FILESDIR}"/${P}-ffmpeg5.patch -) - -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() { - 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_GOLD=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_PATH="$(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)" -} diff --git a/media-tv/kodi/kodi-20.2-r1.ebuild b/media-tv/kodi/kodi-20.2-r1.ebuild index d7e96f3..020bd7a 100644 --- a/media-tv/kodi/kodi-20.2-r1.ebuild +++ b/media-tv/kodi/kodi-20.2-r1.ebuild @@ -7,14 +7,13 @@ PYTHON_REQ_USE="sqlite,ssl" LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2" LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2" LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2" -FFMPEG_VERSION="4.4.1" +FFMPEG_VERSION="5.1.2-Nexus-Alpha3" CODENAME="Nexus" -FFMPEG_KODI_VERSION="Alpha1" PYTHON_COMPAT=( python3_{10,11} ) 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 )" + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}.tar.gz )" if [[ ${PV} == *9999 ]] ; then EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" EGIT_BRANCH="Nexus" @@ -108,8 +107,7 @@ COMMON_TARGET_DEPEND="${PYTHON_DEPS} !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-6*[openssl] + >=media-video/ffmpeg-4.4:=[dav1d?,encode,openssl,postproc] ) !system-ffmpeg? ( app-arch/bzip2 @@ -190,9 +188,10 @@ Please consider enabling IP_MULTICAST under Networking options. " PATCHES=( - "${FILESDIR}"/${PN}-20.1-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch - "${FILESDIR}"/${PN}-20.1-ffmpeg5.patch + "${FILESDIR}"/${P}-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch + "${FILESDIR}"/${P}-ffmpeg5.patch "${FILESDIR}"/${P}-ffmpeg6.patch + "${FILESDIR}"/${P}-Fix-playback-of-optical-dvds-without-mount-support.patch ) pkg_setup() { @@ -268,7 +267,7 @@ src_configure() { -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_EVENTCLIENTS=ON # always enable to have 'kodi-send' and filter extra staff in 'src_install()' -DENABLE_INTERNAL_CROSSGUID=OFF -DENABLE_INTERNAL_RapidJSON=OFF -DENABLE_INTERNAL_FMT=OFF @@ -314,9 +313,9 @@ src_configure() { use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON ) if use system-ffmpeg; then - mycmakeargs+=( -DWITH_FFMPEG="yes" ) + mycmakeargs+=( -DWITH_FFMPEG="YES" ) else - mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" ) + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}.tar.gz" ) fi if ! echo "${CFLAGS}" | grep -Fwqe '-DNDEBUG' - && ! echo "${CFLAGS}" | grep -Fwqe '-D_DEBUG' - ; then