summaryrefslogtreecommitdiffstats
path: root/multimedia/kodi/kodi.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/kodi/kodi.SlackBuild')
-rw-r--r--multimedia/kodi/kodi.SlackBuild87
1 files changed, 68 insertions, 19 deletions
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