aboutsummaryrefslogtreecommitdiffstats
path: root/community/kodi/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/kodi/APKBUILD')
-rw-r--r--community/kodi/APKBUILD221
1 files changed, 140 insertions, 81 deletions
diff --git a/community/kodi/APKBUILD b/community/kodi/APKBUILD
index fbfb47c1095..13f086b8e00 100644
--- a/community/kodi/APKBUILD
+++ b/community/kodi/APKBUILD
@@ -1,15 +1,20 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kodi
-pkgver=19.4
-_realname=Matrix
-pkgrel=2
-_crossguid_hash="8f399e8bd4"
+pkgver=20.5
+_realname=Nexus
+pkgrel=0
+_libdvdcss="1.4.3-Next-Nexus-Alpha2-2"
+_libdvdnav="6.1.1-Next-Nexus-Alpha2-2"
+_libdvdread="6.1.3-Next-Nexus-Alpha2-2"
+_crossguid="ca1bf4b810e2d188d04cb6286f957008ee1b7681"
pkgdesc="software media player and entertainment hub for digital media"
url="https://kodi.tv/"
# kodi does not know of other archs
-arch="x86 x86_64 aarch64 armv7" # flatbuffers missing on armhf
+# x86: no flatbuffers
+arch="x86_64 aarch64 armv7"
license="GPL-2.0-only"
+install="kodi-gbm.pre-install"
depends="
curl
hicolor-icon-theme
@@ -34,13 +39,10 @@ depends_dev="
libass-dev
libcdio-dev
libdrm-dev
- libdvdcss-dev
- libdvdnav-dev
- libdvdread-dev
libjpeg-turbo-dev
lzo-dev
mesa-dev
- openssl1.1-compat-dev
+ openssl-dev>3
pcre-dev
rapidjson-dev
spdlog-dev
@@ -49,26 +51,27 @@ depends_dev="
tinyxml-dev
zlib-dev
"
-
# Required for Wayland
-depends_dev="$depends_dev
+depends_dev="
+ $depends_dev
libxkbcommon-dev
waylandpp-dev
"
-
# Required for gbm
-depends_dev="$depends_dev
+depends_dev="
+ $depends_dev
libinput-dev
"
-
# Optional for extra features
-depends_dev="$depends_dev
+depends_dev="
+ $depends_dev
alsa-lib-dev
avahi-dev
bluez-dev
dav1d-dev
dbus-dev
eudev-dev
+ lcms2-dev
libbluray-dev
libcap-dev
libcec4-dev
@@ -76,20 +79,28 @@ depends_dev="$depends_dev
libnfs-dev
libplist-dev
libshairport-dev
+ libudfread-dev
+ libva-glx-dev
libva-glx-dev
libxslt-dev
+ libxslt-dev
mariadb-connector-c-dev
+ pipewire-dev
pulseaudio-dev
python3-dev
samba-dev
"
-makedepends="$depends_dev
+makedepends="
+ $depends_dev
autoconf
automake
+ clang
cmake
doxygen
graphviz
libtool
+ lld
+ llvm
openjdk8-jre-base
samurai
swig
@@ -104,128 +115,176 @@ subpackages="
$pkgname-x11
$pkgname-wayland
$pkgname-gbm
+ py3-$pkgname:py3
$pkgname-polkit::noarch
"
replaces="xbmc"
options="ldpath-recursive !check" # No testsuite
source="https://github.com/xbmc/xbmc/archive/$pkgver-$_realname.tar.gz
- crossguid-$_crossguid_hash.tar.gz::https://mirrors.kodi.tv/build-deps/sources/crossguid-$_crossguid_hash.tar.gz
+ crossguid-$_crossguid.tar.gz::https://mirrors.kodi.tv/build-deps/sources/crossguid-$_crossguid.tar.gz
+ libdvdcss-$_libdvdcss.tar.gz::https://github.com/xbmc/libdvdcss/archive/$_libdvdcss.tar.gz
+ libdvdnav-$_libdvdnav.tar.gz::https://github.com/xbmc/libdvdnav/archive/$_libdvdnav.tar.gz
+ libdvdread-$_libdvdread.tar.gz::https://github.com/xbmc/libdvdread/archive/$_libdvdread.tar.gz
fix-musl-incompability.patch
+ gcc13.patch
+ lfs64.patch
sse-build.patch
+ fix-building-with-swig-4.2.0.patch
kodi.initd
60-kodi.rules
"
-
builddir="$srcdir/xbmc-$pkgver-$_realname"
# secfixes:
# 18.2-r0:
# - CVE-2018-8831
-build() {
- # use less memory on x86
- [ "$CARCH" = "x86" ] && LDFLAGS="$LDFLAGS -Wl,--no-keep-memory"
-
- export LDFLAGS="$LDFLAGS -Wl,-z,stack-size=2097152"
-
- make -C tools/depends/target/crossguid PREFIX="$PWD"/usr
+_build() {
+ local outdir="$1"
+ shift
- # X11
- cmake -B build-x11 -G Ninja \
+ cmake -B "$outdir" -G Ninja -Wno-dev \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
+ -DENABLE_EGL=ON \
+ -DENABLE_EVENTCLIENTS=ON \
-DENABLE_INTERNAL_CROSSGUID=ON \
+ -DENABLE_INTERNAL_FLATBUFFERS=OFF \
+ -DENABLE_INTERNAL_RapidJSON=OFF \
+ -DENABLE_GOLD=OFF \
+ -DENABLE_VAAPI=ON \
-DENABLE_TESTING=OFF \
- -DCROSSGUID_URL="$srcdir"/crossguid-$_crossguid_hash.tar.gz \
- -DCORE_PLATFORM_NAME=x11 \
- -DAPP_RENDER_SYSTEM=gl
- cmake --build build-x11
+ -DCROSSGUID_URL="$srcdir"/crossguid-$_crossguid.tar.gz \
+ -Dlibdvdcss_URL="$srcdir"/libdvdcss-$_libdvdcss.tar.gz \
+ -Dlibdvdnav_URL="$srcdir"/libdvdnav-$_libdvdnav.tar.gz \
+ -Dlibdvdread_URL="$srcdir"/libdvdread-$_libdvdread.tar.gz \
+ "$@"
+ # build output doesn't track libcrossguid.a, so ninja fails if we don't build this first
+ cmake --build "$outdir" --target crossguid
+ cmake --build "$outdir"
+}
- # Wayland
- cmake -B build-wayland -G Ninja \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_INTERNAL_CROSSGUID=ON \
- -DENABLE_TESTING=OFF \
- -DCROSSGUID_URL="$srcdir"/crossguid-$_crossguid_hash.tar.gz \
- -DCORE_PLATFORM_NAME=wayland \
- -DAPP_RENDER_SYSTEM=gl
- cmake --build build-wayland
+build() {
+ # use less memory on x86
+ [ "$CARCH" = "x86" ] && export LDFLAGS="$LDFLAGS -Wl,--no-keep-memory"
- # GBM
- cmake -B build-gbm -G Ninja \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_INTERNAL_CROSSGUID=ON \
- -DENABLE_TESTING=OFF \
- -DCROSSGUID_URL="$srcdir"/crossguid-$_crossguid_hash.tar.gz \
- -DCORE_PLATFORM_NAME=gbm \
- -DAPP_RENDER_SYSTEM=gles
- cmake --build build-gbm
+ case "$CARCH" in
+ armv7)
+ # thinlto with >8 threads on armv7 doesn't work
+ export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=8"
+ ;;
+ esac
+
+ export CC=clang
+ export CXX=clang++
+ export CFLAGS="$CFLAGS -flto=thin -I$PWD/crossguid-root/usr/include/crossguid"
+ export CXXFLAGS="$CXXFLAGS -flto=thin -I$PWD/crossguid-root/usr/include/crossguid"
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld -Wl,-z,stack-size=2097152"
+ export NM=llvm-nm
+
+ case "$CARCH" in
+ arm*|aarch64)
+ # not implemented in clang here
+ export CFLAGS="${CFLAGS/-fstack-clash-protection/}"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/}"
+ ;;
+ esac
+
+ _build build-x11 -DCORE_PLATFORM_NAME=x11 -DAPP_RENDER_SYSTEM=gl
+ _build build-wayland -DCORE_PLATFORM_NAME=wayland -DAPP_RENDER_SYSTEM=gl
+ _build build-gbm -DCORE_PLATFORM_NAME=gbm -DAPP_RENDER_SYSTEM=gles
}
package() {
- depends="$pkgname-bin"
+ depends="$depends $pkgname-bin"
DESTDIR="$pkgdir" cmake --install build-x11
install -Dm755 "$srcdir"/kodi.initd "$pkgdir"/etc/init.d/kodi
- rm \
- "$pkgdir"/usr/lib/kodi/kodi-x11 \
- "$pkgdir"/usr/lib/kodi/kodi-xrandr
-
- # Cmake files are by default installed in the wrong location
- # should be in /usr/lib/cmake/kodi/
- # not /usr/share/kodi/cmake/
- mkdir -p "$pkgdir"/usr/lib/cmake/kodi
- mv "$pkgdir"/usr/share/kodi/cmake/*.cmake \
- "$pkgdir"/usr/lib/cmake/kodi/
- rmdir "$pkgdir"/usr/share/kodi/cmake
+ mkdir -p "$pkgdir"/usr/lib/cmake
+ mv "$pkgdir"/usr/share/kodi/cmake "$pkgdir"/usr/lib/cmake/kodi
+ mv "$pkgdir"/usr/lib/kodi/cmake/* "$pkgdir"/usr/lib/cmake/kodi/
+ rmdir "$pkgdir"/usr/lib/kodi/cmake/
+
+ install -Dm644 "$srcdir"/60-kodi.rules \
+ "$pkgdir"/usr/share/polkit-1/rules.d/60-kodi.rules
+
+ install -Dm755 \
+ build-gbm/kodi-gbm \
+ build-wayland/kodi-wayland \
+ -t "$pkgdir"/usr/bin/
}
x11() {
pkgdesc="X11 Kodi binary"
- provides="$pkgname-bin=$pkgver-r$pkgrel"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ provides="$pkgname-bin"
+ provider_priority=5
- cd "$builddir"/build-x11
- install -Dm755 kodi-x11 "$subpkgdir"/usr/lib/kodi/kodi-x11
- install -Dm755 kodi-xrandr "$subpkgdir"/usr/lib/kodi/kodi-xrandr
+ # the "kodi" is just a script that launches the x11 backend
+ amove \
+ usr/bin/kodi \
+ usr/lib/kodi/kodi-x11 \
+ usr/lib/kodi/kodi-xrandr
}
wayland() {
pkgdesc="Wayland Kodi binary"
+ depends="$pkgname=$pkgver-r$pkgrel"
provides="$pkgname-bin"
+ provider_priority=4
- cd "$builddir"/build-wayland
- install -Dm755 kodi-wayland "$subpkgdir"/usr/lib/kodi/kodi-wayland
+ amove usr/bin/kodi-wayland
}
gbm() {
pkgdesc="GBM Kodi binary"
+ depends="$pkgname=$pkgver-r$pkgrel"
provides="$pkgname-bin"
- depends="$pkgname-openrc"
- install="$subpkgname.pre-install"
+ provider_priority=2
+
+ amove usr/bin/kodi-gbm
+}
+
+openrc() {
+ default_openrc
+ install_if="$pkgname-gbm=$pkgver-r$pkgrel openrc"
+}
+
+py3() {
+ pkgdesc="kodi python module"
+ depends="
+ glib
+ py3-avahi
+ py3-dbus
+ py3-gobject3
+ py3-udev
+ python3
+ "
- cd "$builddir"/build-gbm
- install -Dm755 kodi-gbm "$subpkgdir"/usr/lib/kodi/kodi-gbm
+ amove usr/lib/python3*
}
polkit() {
pkgdesc="Polkit rules for Kodi in combination with GBM"
- install_if="$pkgname-gbm polkit"
+ install_if="$pkgname-gbm=$pkgver-r$pkgrel polkit"
- install -Dm644 "$srcdir"/60-kodi.rules "$subpkgdir"/usr/share/polkit-1/rules.d/60-kodi.rules
+ amove usr/share/polkit-1/rules.d
}
sha512sums="
-2804c57d85877873dae8e62f083b86f51fceebb802819523654a231f50f9850022956e1a9b91702e7c8b3f7ab437ceea7b10319239a8289dbf877ce94bba07c9 19.4-Matrix.tar.gz
-2682d63609d3dcdfcd8136be632e45df26ad88ce93b9c49745cf728bbd2e6254a7b05c8b059ab581d532372e504206a525a52564b64d076dfdae9c965a09fd16 crossguid-8f399e8bd4.tar.gz
+a47a54ca11e1d3daeddea8c1ae716cd4461e3441de43a026a920c709b2ff5c7e0acc2a5fd4ac8c15f0da1940bd7f21a65eff32203ad8e167603c1576b21d4dcc 20.5-Nexus.tar.gz
+f0a80d8e99b10473bcfdfde3d1c5fd7b766959819f0d1c0595ac84ce46db9007a5fbfde9a55aca60530c46cb7f8ef4c7e472c6191559ded92f868589c141ccaf crossguid-ca1bf4b810e2d188d04cb6286f957008ee1b7681.tar.gz
+d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz
+51e6fc033121241354a5f0b3fc9a430577ae3ff6bb7f31445aa548ef4893037fb80eea3b2c6774c81e9ebaf9c45e9b490c98c2c65eb38f9f7daba84b236f7e1d libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz
+629a41157d07b8ec0ea1fe89ae5ec48f63047472a862782b805c531ae31a0376fc4dc15175f8280c3ef91d7fa977bacebb1b51232640034a34bab2293210fc5e libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz
d3445c7f96eeab7cd2a2a67319fab09300ee2e8c03912d474e885d7e8a770b501abc59352972abb4dab6fab7f138b42fdb31b0113b9bb1a71b4f000fe1cdcbbb fix-musl-incompability.patch
-cf8e55505f45898b15d8db356f7f43e215f07f9e2ed8215d726f3be37d78b328e08763f4c678f7223d185df72821b2a863958a1c279edd26ac8dc9f99ab92791 sse-build.patch
-7e2a2289da3098e0007e461ad538dcd6435e908283caf1719788248fe736615890175e11392ca0cd68002872217bbf7b70cf909f228307828aa82467d5502ed4 kodi.initd
+83871534c8b8a19fa50752a9793a71d571e8898e05a6662149bb5fc05a29aed33c48b99a60e45c46bb1dba9bd1fd6eb94cc24cf17131c014842757b7c42934cf gcc13.patch
+ec0a65d45cbd1e60798a756867adeb0c30ef972e6bd4e434d666525bde4ad74aa0b78fae164f18c08b88c61c04a836a27a4f4e5c990386ce18f9b294a7337238 lfs64.patch
+82c73147c4f4cd369b413eb503e22b5ac0e4c6dc4c5558efb0b093bf9338da74510bf45141cf7a7b2b30c817eaaa0c7dab7d44960de58bfdcdff51b6e1e7652d sse-build.patch
+6fb1bdd249590977587f59c5a57d3824380233b30edb04932c8291d8f0da0fd52d9709543e033d502fd053b1d15e0ed8a2638694b16352432c7a75781fc0f102 fix-building-with-swig-4.2.0.patch
+c47e90b6bb011092c033705195c8f1e4fcb56be412f12133514f46f5cb52acda7075c8350d78c98b86e0808f3d373ac3735f0fae10e907610b5405ba623cebac kodi.initd
465a2079d598bf909a458d8e9d0ddd2b2a41dff83ba736542cffec7811c044295d5af092928f20aaa6cd3bc8b13bb03ede5c7ded1783680f890464e103392787 60-kodi.rules
"