mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-06-08 00:34:26 +02:00
314 lines
8.7 KiB
Text
314 lines
8.7 KiB
Text
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
|
|
maintainer="fossdd <fossdd@pwned.life>"
|
|
pkgname=kodi
|
|
pkgver=21.2
|
|
_realname=Omega
|
|
pkgrel=6
|
|
_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/"
|
|
# armhf: flatbuffers
|
|
# loongarch64: clang is saying the triple-implied ABI is invalid
|
|
arch="all !armhf !loongarch64"
|
|
license="GPL-2.0-only"
|
|
install="kodi-gbm.pre-install"
|
|
depends="
|
|
curl
|
|
hicolor-icon-theme
|
|
py3-bluez
|
|
py3-pillow
|
|
py3-simplejson
|
|
python3
|
|
xdpyinfo
|
|
"
|
|
# Required dependencies
|
|
depends_dev="
|
|
curl-dev
|
|
ffmpeg-dev
|
|
flatbuffers-dev
|
|
fmt-dev
|
|
freetype-dev
|
|
fribidi-dev
|
|
fstrcmp-dev
|
|
giflib-dev
|
|
glu-dev
|
|
gtest-dev
|
|
libass-dev
|
|
libcdio-dev
|
|
libdisplay-info-dev
|
|
libdrm-dev
|
|
libjpeg-turbo-dev
|
|
libunistring-dev
|
|
libvdpau-dev
|
|
lzo-dev
|
|
mesa-dev
|
|
openssl-dev>3
|
|
pcre-dev
|
|
rapidjson-dev
|
|
spdlog-dev
|
|
sqlite-dev
|
|
taglib-dev
|
|
tinyxml2-dev
|
|
tinyxml-dev
|
|
zlib-dev
|
|
"
|
|
# Required for Wayland
|
|
depends_dev="
|
|
$depends_dev
|
|
libxkbcommon-dev
|
|
waylandpp-dev
|
|
"
|
|
# Required for gbm
|
|
depends_dev="
|
|
$depends_dev
|
|
libinput-dev
|
|
"
|
|
# Optional for extra features
|
|
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
|
|
libmicrohttpd-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
|
|
autoconf
|
|
automake
|
|
bash
|
|
clang
|
|
cmake
|
|
doxygen
|
|
graphviz
|
|
libtool
|
|
lld
|
|
llvm
|
|
nasm
|
|
samurai
|
|
swig
|
|
tar
|
|
wayland-protocols
|
|
xz
|
|
"
|
|
subpackages="
|
|
$pkgname-dev
|
|
$pkgname-doc
|
|
$pkgname-openrc
|
|
$pkgname-x11
|
|
$pkgname-wayland
|
|
$pkgname-gbm
|
|
$pkgname-polkit::noarch
|
|
"
|
|
# TODO: bring back the py3-kodi subpackage
|
|
# currently doesn't seem to have any files
|
|
# py3-$pkgname:py3
|
|
replaces="xbmc"
|
|
options="ldpath-recursive !check" # No testsuite
|
|
source="https://github.com/xbmc/xbmc/archive/$pkgver-$_realname.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
|
|
other-archs.patch
|
|
dyn-pagesize.patch
|
|
ppc-no-native-endian-swap.patch
|
|
pipewire-1.4.patch
|
|
pipewire-thread-loop-unlock-error.patch
|
|
kodi.initd
|
|
60-kodi.rules
|
|
"
|
|
builddir="$srcdir/xbmc-$pkgver-$_realname"
|
|
|
|
# openjdk8 doesnt support riscv64, and openjdk21 doesnt support 32-bit
|
|
# so use openjdk21 otherwise openjdk8
|
|
case $CARCH in
|
|
armhf|armv7|x86) makedepends="$makedepends openjdk8-jre-base" ;;
|
|
*) makedepends="$makedepends openjdk21-jre-headless" ;;
|
|
esac
|
|
|
|
# secfixes:
|
|
# 18.2-r0:
|
|
# - CVE-2018-8831
|
|
|
|
_build() {
|
|
local outdir="$1"
|
|
shift
|
|
|
|
cmake -B "$outdir" -G Ninja -Wno-dev \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-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.tar.gz \
|
|
-Dlibdvdcss_URL="$srcdir"/libdvdcss-$_libdvdcss.tar.gz \
|
|
-Dlibdvdnav_URL="$srcdir"/libdvdnav-$_libdvdnav.tar.gz \
|
|
-Dlibdvdread_URL="$srcdir"/libdvdread-$_libdvdread.tar.gz \
|
|
-DCORE_COMPILE_OPTIONS="" \
|
|
"$@"
|
|
# 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"
|
|
}
|
|
|
|
build() {
|
|
# use less memory on x86
|
|
[ "$CARCH" = "x86" ] && export LDFLAGS="$LDFLAGS -Wl,--no-keep-memory"
|
|
|
|
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=gles
|
|
_build build-wayland -DCORE_PLATFORM_NAME=wayland -DAPP_RENDER_SYSTEM=gles
|
|
_build build-gbm -DCORE_PLATFORM_NAME=gbm -DAPP_RENDER_SYSTEM=gles
|
|
}
|
|
|
|
package() {
|
|
depends="$depends $pkgname-bin"
|
|
|
|
DESTDIR="$pkgdir" cmake --install build-x11
|
|
|
|
install -Dm755 "$srcdir"/kodi.initd "$pkgdir"/etc/init.d/kodi
|
|
|
|
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"
|
|
depends="$pkgname=$pkgver-r$pkgrel"
|
|
provides="$pkgname-bin"
|
|
provider_priority=5
|
|
|
|
# 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
|
|
|
|
amove usr/bin/kodi-wayland
|
|
}
|
|
|
|
gbm() {
|
|
pkgdesc="GBM Kodi binary"
|
|
depends="$pkgname=$pkgver-r$pkgrel"
|
|
provides="$pkgname-bin"
|
|
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
|
|
"
|
|
|
|
amove usr/lib/python3*
|
|
}
|
|
|
|
polkit() {
|
|
pkgdesc="Polkit rules for Kodi in combination with GBM"
|
|
depends=""
|
|
install_if="$pkgname-gbm=$pkgver-r$pkgrel polkit"
|
|
|
|
amove usr/share/polkit-1/rules.d
|
|
}
|
|
|
|
sha512sums="
|
|
d49d74240b9c0aded3437dd81bc3324c03bea36834bca3920d5d26b4780275e3fea46efe1f3b33bb3e910d1ffe211ee17928bd8a441326a49713ac1120f083ea 21.2-Omega.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
|
|
a8394d27eb1f5edabad255ee2afa0a3fb727e7e067a11205395010566d3748e595f4c8237eea7c9e6d7330949c3bff4d9b2cd66c00c94438b11ec9d1dd5d57a7 fix-musl-incompability.patch
|
|
f2cd6ec55e44f3a413e2eebeba8b1d591d9ee64b9099578466d19033b620deba8012134aab9017ccb23912518219f725f33b682abf681994c34e160ea07cfa6c gcc13.patch
|
|
2aa75f17ecf65e59770746e436a807f2697ba43278158e5123761c543cba40c2b596c5f5c51cc7ca3a7c79bab81213f81017afa6c1228e51546fe14a8cff13de lfs64.patch
|
|
82c73147c4f4cd369b413eb503e22b5ac0e4c6dc4c5558efb0b093bf9338da74510bf45141cf7a7b2b30c817eaaa0c7dab7d44960de58bfdcdff51b6e1e7652d sse-build.patch
|
|
263b6a2c1ba8c461636e50f982c533c39aa06a9aada944f9baf96dfcaeedf264495d7567d0f8b5dcad9e510c567246aa32391e255f2c6b2068c5911f344483b2 other-archs.patch
|
|
349e8a78508e2f3c2b6928067227540e68f41a0ce665a4f1593e98fa44ab21d235b105cd2f41bfb5678727b0083cb2b7c4572694b1c7b8ab6581f059302d0fc9 dyn-pagesize.patch
|
|
80e2f7b271a9d9b0c72e21c799d02bb267d2851d9fc22f4526e6668f8c7466407f2524f0152409116450736b2b7cb2f5e3a13b331276e805429e232e795b82b1 ppc-no-native-endian-swap.patch
|
|
b05ed2fd18406d8c7a9fe05f201aff8fda526144c6d3af9a210f4ef0abd3acaeb095f0b2a99678507e52d8e2b39f76595abbc193e971f4d74ebc254e4a933b08 pipewire-1.4.patch
|
|
e637944379445da3c4f4bb6a130ecb833c2390fa45949681733d3f18285ee337268e95d5b9e58e90fbf0c5f194318846b6ec222dc61747a60ef51427e1ea32c7 pipewire-thread-loop-unlock-error.patch
|
|
c47e90b6bb011092c033705195c8f1e4fcb56be412f12133514f46f5cb52acda7075c8350d78c98b86e0808f3d373ac3735f0fae10e907610b5405ba623cebac kodi.initd
|
|
465a2079d598bf909a458d8e9d0ddd2b2a41dff83ba736542cffec7811c044295d5af092928f20aaa6cd3bc8b13bb03ede5c7ded1783680f890464e103392787 60-kodi.rules
|
|
"
|