summaryrefslogtreecommitdiffstats
path: root/multimedia/kodi
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/kodi')
-rw-r--r--multimedia/kodi/README15
-rw-r--r--multimedia/kodi/README.python26
-rw-r--r--multimedia/kodi/kodi.SlackBuild87
-rw-r--r--multimedia/kodi/kodi.info42
4 files changed, 108 insertions, 62 deletions
diff --git a/multimedia/kodi/README b/multimedia/kodi/README
index a78fb1fab7..44352744a8 100644
--- a/multimedia/kodi/README
+++ b/multimedia/kodi/README
@@ -12,11 +12,24 @@ 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:
Kodi can be compiled with jdk11 instead of zulu-openjdk11.
ADDITIONAL NOTE:
-If you are having issues with addons crashing, please see README.python
+If you are having issues with addons crashing, please ensure you're
+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:
+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/README.python b/multimedia/kodi/README.python
deleted file mode 100644
index 5efb8161da..0000000000
--- a/multimedia/kodi/README.python
+++ /dev/null
@@ -1,26 +0,0 @@
-# If you run into crashing when running addons, the problem is with the
-# python3 version that was released with 15.0 (3.9.12). This has been
-# fixed in a newer release, but it hasn't made it to 15.0 yet. You can
-# either deal with the crashes and wait until it's updated in 15.0 or
-# build your own updated package using the newer source tarball. The
-# instructions to do that are below.
-
-# NOTE: This README has been designed to allow you to run it as root
-# and have it build and upgrade the python3 package.
-# Run at your own risk.
-#
-# As root:
-# sh /usr/doc/kodi-19.4/README.python
-
-lftp -c "mirror -e -X *.tar.xz* -X *.tar.bz2 https://mirror.slackbuilds.org/slackware/slackware64-15.0/source/d/python3/"
-cd python3
-
-# Remove older versions then download newer ones
-wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tar.xz
-wget https://docs.python.org/3.9/archives/python-3.9.13-docs-text.tar.bz2
-
-# Run the SlackBuild
-BUILD=1_bass sh python3.SlackBuild
-
-# Install the newer package
-upgradepkg --reinstall --install-new /tmp/python3-3.9.13-*-1_bass.txz
diff --git a/multimedia/kodi/kodi.SlackBuild b/multimedia/kodi/kodi.SlackBuild
index 4adeffbe62..138bd4d8c6 100644
--- a/multimedia/kodi/kodi.SlackBuild
+++ b/multimedia/kodi/kodi.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for kodi
# Copyright 2009-2018 Larry Hajali <larryhaja[at]gmail[dot]com>
-# Copyright 2022 Jeremy Hansen <jebrhansen+SBo@gmail.com>
+# Copyright 2022-2024 Jeremy Hansen <jebrhansen+SBo@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,12 +27,25 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=kodi
SRCNAM=xbmc
-CODNAM=Matrix
-VERSION=${VERSION:-19.4}
+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}
+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}
+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
i?86) ARCH=i586 ;;
@@ -52,16 +65,12 @@ OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
fi
set -e
@@ -81,7 +90,7 @@ find -L . \
# Autodetection of "optional" dependencies sucks. It does not work and
# compilation will fail on each of these if not explicitly disabled.
-# Figured I'd mplemented my own autodetection instead of requiring
+# Figured I'd implement my own autodetection instead of requiring
# passing a bunch of annoying flags :)
if pkg-config --exists avahi-core ; then AVAHI=ON; else AVAHI=OFF; fi
if pkg-config --exists cwiid ; then CWIID=ON; else CWIID=OFF; fi
@@ -90,19 +99,57 @@ 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.
+PLATFORM="x11 gbm"
+if pkg-config --exists wayland-client++; then PLATFORM="$PLATFORM wayland"; fi
+
mkdir -p $TMP/$PRGNAM-build
cd $TMP/$PRGNAM-build
+
+# 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
+# Internal ffmpeg since 15.0's is too old
+# Internal fmt & spdlog to prevent issues if spdlog was built without
+# optional fmt dependency
+
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \
-DAPP_RENDER_SYSTEM=gl \
- -DCORE_PLATFORM_NAME="x11" \
- -DENABLE_INTERNAL_FSTRCMP=ON \
- -DENABLE_INTERNAL_UDFREAD=ON \
+ -DCORE_PLATFORM_NAME="$PLATFORM" \
+ -DENABLE_INTERNAL_CROSSGUID=ON \
+ -DENABLE_INTERNAL_RapidJSON=ON \
+ -DENABLE_INTERNAL_FMT=ON \
+ -DENABLE_INTERNAL_SPDLOG=ON \
+ -DENABLE_INTERNAL_FFMPEG=$FFMPEG \
-DENABLE_AIRTUNES=$AIRPLAY \
-DENABLE_AVAHI=$AVAHI \
-DENABLE_CEC=$CEC \
@@ -111,12 +158,15 @@ cd $TMP/$PRGNAM-build
-DENABLE_LIRCCLIENT=$LIRC \
-DENABLE_MICROHTTPD=$WEBSERVER \
-DENABLE_NFS=$NFS \
- -Dlibdvdcss_URL=$CWD/libdvdcss-1.4.2-Leia-Beta-5.tar.gz \
- -Dlibdvdnav_URL=$CWD/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz \
- -Dlibdvdread_URL=$CWD/libdvdread-6.0.0-Leia-Alpha-3.tar.gz \
- -DCROSSGUID_URL=$CWD/crossguid-8f399e8bd4.tar.gz \
- -DFSTRCMP_URL=$CWD/fstrcmp-0.7.D001.tar.gz \
- -DUDFREAD_URL=$CWD/libudfread-1.1.0.tar.gz \
+ -DENABLE_UDFREAD=$UDFREAD \
+ -DCROSSGUID_URL=$CWD/crossguid-$crossguidVER.tar.gz \
+ -DFMT_URL=$CWD/fmt-$fmtVER.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 \
+ $FFMPEGURL \
-DCMAKE_BUILD_TYPE=Release ../$SRCNAM-$VERSION-$CODNAM
make
make install/strip DESTDIR=$PKG
@@ -127,7 +177,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
# Install manpages
mkdir -p $PKG/usr/man/man1
-for i in {$PRGNAM{,.bin,-standalone},TexturePacker}.1; do
+for i in $PRGNAM{,.bin,-standalone,-TexturePacker}.1; do
install -m 0644 $SRCNAM-$VERSION-$CODNAM/docs/manpages/$i $PKG/usr/man/man1/$i
done
@@ -149,7 +199,6 @@ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat tools/EventClients/README.txt > $PKG/usr/doc/$PRGNAM-$VERSION/Event-Client-README.txt
fi
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
- cat $CWD/README.python > $PKG/usr/doc/$PRGNAM-$VERSION/README.python
)
mkdir -p $PKG/install
diff --git a/multimedia/kodi/kodi.info b/multimedia/kodi/kodi.info
index 088fdf01df..8ea284404e 100644
--- a/multimedia/kodi/kodi.info
+++ b/multimedia/kodi/kodi.info
@@ -1,22 +1,32 @@
PRGNAM="kodi"
-VERSION="19.4"
+VERSION="21.0"
HOMEPAGE="https://kodi.tv/"
-DOWNLOAD="https://github.com/xbmc/xbmc/archive/19.4-Matrix/xbmc-19.4-Matrix.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/libdvdcss-1.4.2-Leia-Beta-5.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/libdvdread-6.0.0-Leia-Alpha-3.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/crossguid-8f399e8bd4.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/fstrcmp-0.7.D001.tar.gz \
- https://ponce.cc/slackware/sources/repo/kodi/19.4/libudfread-1.1.0.tar.gz"
-MD5SUM="a668854505eff3ca5ed9f33e3ac91c80 \
- fb2824210a4eab2efeef36e7501e4979 \
- 2aec5f8c790449126118abc6bb3cb5cd \
- f3244e7b002d37f91cc6a77461c4f619 \
- 7de3be575744da5f1098295485ef0741 \
- 9c440bbdfcad9fd22e38f2388715b0cc \
- cb71fa46a29183e01692e9fe738ec373"
+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 \
+ 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 \
+ bd9eb761a11372dd659da8c2cf1ae692 \
+ 88c83b3fa007ae35d4f82a2466cad423 \
+ ae1f7607159b192e12f9c8eaaaf3d927 \
+ ab9c27629c2a43689c63ff55fd7cbf67"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="zulu-openjdk11 libass flatbuffers fmt rapidjson spdlog tinyxml gtest"
+REQUIRES="zulu-openjdk11 libass flatbuffers tinyxml gtest fmt fstrcmp spdlog tinyxml2 libdisplay-info"
MAINTAINER="Jeremy Hansen"
EMAIL="jebrhansen+SBo@gmail.com"