From c61b4d5ee2da70d22077b4b6d7911e58b2920a9b Mon Sep 17 00:00:00 2001 From: Jeremy Hansen Date: Thu, 11 Apr 2024 19:44:00 -0700 Subject: [PATCH] multimedia/kodi: Version bump to 21.0 (Omega) Signed-off-by: Andrew Clemons Signed-off-by: Willy Sudiarto Raharjo --- multimedia/kodi/README | 15 +++++----- multimedia/kodi/kodi.SlackBuild | 52 +++++++++++++++++++-------------- multimedia/kodi/kodi.info | 24 +++++++-------- 3 files changed, 50 insertions(+), 41 deletions(-) diff --git a/multimedia/kodi/README b/multimedia/kodi/README index 2601c145c7..44352744a8 100644 --- a/multimedia/kodi/README +++ b/multimedia/kodi/README @@ -12,8 +12,10 @@ dav1d - AV1 codec support libcec - CEC support libmicrohttpd - Web interface support libnfs - Browse NFS shares +libudfread - Universal Disk Format (UDF) support lirc - Remote support shairplay - Airplay Support +sndio - Alternative audio backend waylandpp - Early wayland support NOTE: @@ -25,10 +27,9 @@ upgraded to at least python3-3.9.14 or later from the patches/ directory on your favorite mirror. 3.9.12 and earlier had issues. FINAL NOTE: -If you are running into issues with playing certain formats that should -be supported due to optional dependencies (I had issues with AV1 -content even with dav1d installed until I rebuilt ffmpeg), you may need -to rebuild Slackware's ffmpeg to add that support or use Kodi's -internal version by passing FFMPEG=internal to the SlackBuild script -(this will cause the kodi build system to require internet access so -root can download ffmpeg). +FFMPEG on 15.0 is too old to be used in kodi v21, so it is using an +internal version of 6.0.1. If you have FFMPEG v6+ installed (probably +mainly -current users), you can have kodi build against the system +version by passing FFMPEG=external when building. System versions of +FFMPEG may need to be recompiled to enable certain functionality like +AV1 after installing dav1d. diff --git a/multimedia/kodi/kodi.SlackBuild b/multimedia/kodi/kodi.SlackBuild index febd144de3..20d87b46eb 100644 --- a/multimedia/kodi/kodi.SlackBuild +++ b/multimedia/kodi/kodi.SlackBuild @@ -27,22 +27,22 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=kodi SRCNAM=xbmc -CODNAM=Nexus -VERSION=${VERSION:-20.5} +CODNAM=Omega +VERSION=${VERSION:-21.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} # Versions used below crossguidVER=${crossguiVER:-ca1bf4b810e2d188d04cb6286f957008ee1b7681} -fmtVER=${fmtVER:-9.1.0} -fstrcmpVER=${fstrcmpVER:-0.7.D001} libdvdcssVER=${libdvdcssVER:-1.4.3-Next-Nexus-Alpha2-2} libdvdnavVER=${libdvdnavVER:-6.1.1-Next-Nexus-Alpha2-2} libdvdreadVER=${libdvdreadVER:-6.1.3-Next-Nexus-Alpha2-2} rapidjsonVER=${rapidjsonVER:-1.1.0} -spdlogVER=${spdlogVER:-1.10.0} -udfreadVER=${udfreadVER:-1.1.2} +groovyVER=${groovyVER:-4.0.16} +comLangVER=${comLangVER:-3.14.0} +comTextVER=${comTextVER:-1.11.0} +ffmpegVER=${ffmpegVER:-6.0.1} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -97,6 +97,7 @@ if pkg-config --exists libmicrohttpd ; then WEBSERVER=ON; else WEBSERVER=OFF; fi if pkg-config --exists libcec ; then CEC=ON; else CEC=OFF; fi if pkg-config --exists libnfs ; then NFS=ON; else NFS=OFF; fi if pkg-config --exists lirc ; then LIRC=ON; else LIRC=OFF; fi +if pkg-config --exists libudfread ; then UDFREAD=ON; else UDFREAD=OFF; fi if [ -f /usr/bin/shairplay ] ; then AIRPLAY=ON; else AIRPLAY=OFF; fi # Adding early support for wayland. Needs libraries/waylandpp from SBo. @@ -106,19 +107,32 @@ if pkg-config --exists wayland-client++; then PLATFORM="$PLATFORM wayland"; fi mkdir -p $TMP/$PRGNAM-build cd $TMP/$PRGNAM-build -# Some optional features may not be supported with Slackware's default -# ffmpeg package without being rebuilt. If the user would rather use -# kodi's internal package, that might include playback support for -# optional dependencies. Use Kodi's internal ffmpeg version by passing -# FFMPEG=internal to the SlackBuild. -if [ "${FFMPEG}" == "internal" ]; then FFMPEG=ON; else FFMPEG=OFF; fi +# 15.0's ffmpeg is not supported in Omega, you need at least ffmpeg 6.0 +# Default to using the internal version, but allow switching to external +# for -current users or people who upgrade their stock ffmpeg. +# Pass FFMPEG=external to enable external support. +if [ "${FFMPEG}" == "external" ]; then + FFMPEG="OFF" + FFMPEGURL="" +else + FFMPEG="ON" + FFMPEGURL="-DFFMPEG_URL=$CWD/ffmpeg-$ffmpegVER.tar.gz" +fi + +# There doesn't seem to be a way to specify the url of these files +# (eg -DGROOVY_URL didn't work for the first one). But if you place them +# in the expected location, it won't try and download them. +mkdir -p build/download +cp -a $CWD/apache-groovy-binary-$groovyVER.zip \ + $CWD/commons-lang3-$comLangVER-bin.tar.gz \ + $CWD/commons-text-$comTextVER-bin.tar.gz \ + build/download # Reasons for internal programs # (so I can remember in the future why we're using them) # Internal crossguid & rapidjson is recommended by upstream -# fstrcmp and udfread currently unavailable on SBo -# Using external spdlog & fmt breaks inputstream.adaptive +# Internal ffmpeg since 15.0's is too old cmake \ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ @@ -129,10 +143,6 @@ if [ "${FFMPEG}" == "internal" ]; then FFMPEG=ON; else FFMPEG=OFF; fi -DCORE_PLATFORM_NAME="$PLATFORM" \ -DENABLE_INTERNAL_CROSSGUID=ON \ -DENABLE_INTERNAL_RapidJSON=ON \ - -DENABLE_INTERNAL_FSTRCMP=ON \ - -DENABLE_INTERNAL_UDFREAD=ON \ - -DENABLE_INTERNAL_FMT=ON \ - -DENABLE_INTERNAL_SPDLOG=ON \ -DENABLE_INTERNAL_FFMPEG=$FFMPEG \ -DENABLE_AIRTUNES=$AIRPLAY \ -DENABLE_AVAHI=$AVAHI \ @@ -142,15 +152,13 @@ if [ "${FFMPEG}" == "internal" ]; then FFMPEG=ON; else FFMPEG=OFF; fi -DENABLE_LIRCCLIENT=$LIRC \ -DENABLE_MICROHTTPD=$WEBSERVER \ -DENABLE_NFS=$NFS \ + -DENABLE_UDFREAD=$UDFREAD \ -DCROSSGUID_URL=$CWD/crossguid-$crossguidVER.tar.gz \ - -DFMT_URL=$CWD/fmt-$fmtVER.tar.gz \ - -DFSTRCMP_URL=$CWD/fstrcmp-$fstrcmpVER.tar.gz \ -Dlibdvdcss_URL=$CWD/libdvdcss-$libdvdcssVER.tar.gz \ -Dlibdvdnav_URL=$CWD/libdvdnav-$libdvdnavVER.tar.gz \ -Dlibdvdread_URL=$CWD/libdvdread-$libdvdreadVER.tar.gz \ -DRAPIDJSON_URL=$CWD/rapidjson-$rapidjsonVER.tar.gz \ - -DSPDLOG_URL=$CWD/spdlog-$spdlogVER.tar.gz \ - -DUDFREAD_URL=$CWD/libudfread-$udfreadVER.tar.gz \ + $FFMPEGURL \ -DCMAKE_BUILD_TYPE=Release ../$SRCNAM-$VERSION-$CODNAM make make install/strip DESTDIR=$PKG diff --git a/multimedia/kodi/kodi.info b/multimedia/kodi/kodi.info index 9a06496159..c5f6d7f60d 100644 --- a/multimedia/kodi/kodi.info +++ b/multimedia/kodi/kodi.info @@ -1,28 +1,28 @@ PRGNAM="kodi" -VERSION="20.5" +VERSION="21.0" HOMEPAGE="https://kodi.tv/" -DOWNLOAD="https://github.com/xbmc/xbmc/archive/20.5-Nexus/xbmc-20.5-Nexus.tar.gz \ +DOWNLOAD="https://github.com/xbmc/xbmc/archive/21.0-Omega/xbmc-21.0-Omega.tar.gz \ https://github.com/xbmc/crossguid/archive/ca1bf4b/crossguid-ca1bf4b810e2d188d04cb6286f957008ee1b7681.tar.gz \ https://github.com/xbmc/libdvdcss/archive/refs/tags/1.4.3-Next-Nexus-Alpha2-2/libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz \ https://github.com/xbmc/libdvdnav/archive/refs/tags/6.1.1-Next-Nexus-Alpha2-2/libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz \ https://github.com/xbmc/libdvdread/archive/refs/tags/6.1.3-Next-Nexus-Alpha2-2/libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz \ - https://github.com/fmtlib/fmt/archive/refs/tags/9.1.0/fmt-9.1.0.tar.gz \ - https://github.com/gabime/spdlog/archive/refs/tags/v1.10.0/spdlog-1.10.0.tar.gz \ https://github.com/miloyip/rapidjson/archive/v1.1.0/rapidjson-1.1.0.tar.gz \ - https://code.videolan.org/videolan/libudfread/-/archive/1.1.2/libudfread-1.1.2.tar.gz \ - https://fstrcmp.sourceforge.net/fstrcmp-0.7.D001.tar.gz" -MD5SUM="abe2c7791f96e17b4476d268e5b01e3b \ + http://mirrors.kodi.tv/build-deps/sources/apache-groovy-binary-4.0.16.zip \ + http://mirrors.kodi.tv/build-deps/sources/commons-lang3-3.14.0-bin.tar.gz \ + http://mirrors.kodi.tv/build-deps/sources/commons-text-1.11.0-bin.tar.gz \ + http://mirrors.kodi.tv/build-deps/sources/ffmpeg-6.0.1.tar.gz" +MD5SUM="74501a89f0ea23d2908a9b983ab3d6f8 \ d4a8d62f3f8d6d946be75cf5bfa92687 \ 42dc3770ae928103e8033a18b007e79d \ 2349cde54d950af21fa4936371ad3349 \ 0d24c950abfef9dc02e231dda56912ac \ - 21fac48cae8f3b4a5783ae06b443973a \ - effea813cd81cfb5588806c5754e14f1 \ badd12c511e081fec6c89c43a7027bce \ - e53c37085c3bf01d5c6623021563dcae \ - 9c440bbdfcad9fd22e38f2388715b0cc" + bd9eb761a11372dd659da8c2cf1ae692 \ + 88c83b3fa007ae35d4f82a2466cad423 \ + ae1f7607159b192e12f9c8eaaaf3d927 \ + ab9c27629c2a43689c63ff55fd7cbf67" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="zulu-openjdk11 libass flatbuffers tinyxml gtest" +REQUIRES="zulu-openjdk11 libass flatbuffers tinyxml gtest fmt fstrcmp spdlog tinyxml2 libdisplay-info" MAINTAINER="Jeremy Hansen" EMAIL="jebrhansen+SBo@gmail.com"