diff options
Diffstat (limited to 'multimedia/kodi/kodi.SlackBuild')
-rw-r--r-- | multimedia/kodi/kodi.SlackBuild | 87 |
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 |