PKGBUILDs/alarm/kodi-rbp4-git/PKGBUILD

288 lines
11 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Contributor graysky <graysky AT archlinux DOT org>
# Contributor Kevin Mihelich <kevin@archlinuxarm.org>
# Contributor BlackIkeEagle < ike DOT devolder AT gmail DOT com >
# Contributor Oleg Rakhmanov <oleg [at] archlinuxarm [dot] com>
# Contributor tomasgroth at yahoo.dk
# Contributor WarheadsSE <max@warheads.net>
# Contributor Adrian Fedoreanu <adrian [dot] fedoreanu [at] gmail [dot] com>
buildarch=4
_prefix=/usr
pkgbase=kodi-rbp4-git
_suffix=rbp4-git
pkgname=("kodi-$_suffix" "kodi-eventclients-$_suffix" "kodi-tools-texturepacker-$_suffix" "kodi-dev-$_suffix")
# xbmc is vanilla upstream which currently lacks HEVC decoding in ffmpeg
# popcornmix has this code which is under review by ffmpeg for inclusion
_source=xbmc
#_source=popcornmix
# vanilla kodi
_commit=e29db7f3918460193c89c486e34e26d0d3ffe6b8
_commitnumber=55946
# popcornmix's gbm branch
#_commit=c131e47adabe4065ea36b51a1e3dbd10f7459c2b
#_commitnumber=55946
pkgver="19.0a1.$_commitnumber.${_commit:0:10}"
pkgrel=1
arch=('armv7h')
url="http://kodi.tv"
license=('GPL2')
makedepends=(
'afpfs-ng' 'bluez-libs' 'cmake' 'curl' 'dav1d' 'doxygen' 'glew'
'gperf' 'hicolor-icon-theme' 'java-runtime' 'libaacs' 'libass'
'libbluray' 'libcdio' 'libcec-rpi' 'libgl' 'mariadb-libs' 'libmicrohttpd'
'libmodplug' 'libmpeg2' 'libnfs' 'libplist' 'libpulse' 'libva'
'libvdpau' 'libxrandr' 'libxslt' 'lirc' 'lzo' 'mesa' 'nasm'
'python-pycryptodomex' 'python-pillow' 'python-pybluez' 'python-simplejson'
'shairplay' 'smbclient' 'taglib' 'tinyxml' 'swig'
'upower' 'giflib' 'rapidjson' 'ghostscript' 'git' 'meson' 'gtest'
'libinput' 'libxkbcommon' 'linux-raspberrypi4-headers'
)
_codename=Leia
# Found on their respective github release pages. One can check them against
# what is pulled down when not specifying them in the cmake step.
# $CHROOT/build/kodi-git/src/kodi-build/build/download
#
# https://github.com/xbmc/FFmpeg/tags
# https://github.com/xbmc/libdvdcss/tags
# https://github.com/xbmc/libdvdnav/tags
# https://github.com/xbmc/libdvdread/tags
#
# fmt and crossguid can be found http://mirrors.kodi.tv/build-deps/sources/
#
_libdvdcss_version="1.4.2-$_codename-Beta-5"
_libdvdnav_version="6.0.0-$_codename-Alpha-3"
_libdvdread_version="6.0.0-$_codename-Alpha-3"
_ffmpeg_version="4.3.1-Matrix-Alpha1-1"
_fmt_version="6.1.2"
_crossguid_version="8f399e8bd4"
_fstrcmp_version="0.7.D001"
_flatbuffers_version="1.11.0"
_spdlog_version="1.5.0"
source=(
"xbmc-$pkgver.tar.gz::https://github.com/$_source/xbmc/archive/$_commit.tar.gz"
kodi.service
99-kodi.rules
polkit.rules
kodi-gbm.config.txt
"libdvdcss-$_libdvdcss_version.tar.gz::https://github.com/xbmc/libdvdcss/archive/$_libdvdcss_version.tar.gz"
"libdvdnav-$_libdvdnav_version.tar.gz::https://github.com/xbmc/libdvdnav/archive/$_libdvdnav_version.tar.gz"
"libdvdread-$_libdvdread_version.tar.gz::https://github.com/xbmc/libdvdread/archive/$_libdvdread_version.tar.gz"
"ffmpeg-$_ffmpeg_version.tar.gz::https://github.com/xbmc/FFmpeg/archive/$_ffmpeg_version.tar.gz"
"http://mirrors.kodi.tv/build-deps/sources/fmt-$_fmt_version.tar.gz"
"http://mirrors.kodi.tv/build-deps/sources/crossguid-$_crossguid_version.tar.gz"
"http://mirrors.kodi.tv/build-deps/sources/fstrcmp-$_fstrcmp_version.tar.gz"
"http://mirrors.kodi.tv/build-deps/sources/flatbuffers-$_flatbuffers_version.tar.gz"
"http://mirrors.kodi.tv/build-deps/sources/spdlog-$_spdlog_version.tar.gz"
sysusers.conf
tmpfiles.conf
00-fix.fmt.build.patch::https://github.com/xbmc/xbmc/commit/d73573ccb062f23039ef83465807792a76e455a9.patch
)
backup=(boot/kodi-gbm.config.txt)
noextract=(
"libdvdcss-$_libdvdcss_version.tar.gz"
"libdvdnav-$_libdvdnav_version.tar.gz"
"libdvdread-$_libdvdread_version.tar.gz"
"ffmpeg-$_ffmpeg_version.tar.gz"
"fmt-$_fmt_version.tar.gz"
"crossguid-$_crossguid_version.tar.gz"
"fstrcmp-$_fstrcmp_version.tar.gz"
"flatbuffers-$_flatbuffers_version.tar.gz"
"spdlog-$_spdlog_version.tar.gz"
)
sha256sums=('9c4925f58f5db091472c5fafafca809c5a019452afaae1e65aee17df85beb520'
'84ee6e1f7872fb249799f1428d5ab79930912ab7e064122c5c008fbecd0b547a'
'61a0648d4a5086f560ceb4e020f82472d00b99398f2cacba94fad3e96c4c362a'
'5d38a895ee7b93689fab79124a3aad23a5e3e643abd08878d778d04066c8d26f'
'5f6cb12bc44aa7117118d7b4ef91a2cdea73a41c5aa0f8e1069152cd1316d4a5'
'38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d'
'071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a'
'a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf'
'a7d956dbbe3c2036a8a78976efaf43792e1c7c152a04182024f231f4ee2e7d7e'
'1cafc80701b746085dddf41bd9193e6d35089e1c6ec1940e037fcb9c98f62365'
'3d77d09a5df0de510aeeb940df4cb534787ddff3bb1828779753f5dfa1229d10'
'e4018e850f80700acee8da296e56e15b1eef711ab15157e542e7d7e1237c3476'
'1789b97e790da8f2cb5ff827d15580878c8629fd889f5f038d7524dca43eacc9'
'b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a'
'f521b98232e5035b7cada46cf03975b8d753e93d0802bf22913fceed769f9d96'
'9c5e79ed8719cd032a3b17dac585aeff28a198e37af1da9af68ef1b86bab4d18'
'cb082a95045f4861be632fd727b4f3d4dad707c6e9353086a2b0afe10247dce8')
prepare() {
cd "xbmc-$_commit"
[[ -d kodi-build ]] && rm -rf kodi-build
mkdir "$srcdir"/kodi-build
# https://github.com/xbmc/xbmc/pull/18395
patch -Np1 -i ../00-fix.fmt.build.patch
}
build() {
cd kodi-build
# the build system expects to find /usr/include/drm/drm_fourcc.h however we provide this
# in /usr/lib/modules/x.y.z-1-ARCH/build/include/uapi/drm/drm_fourcc.h
#
# credit to Kevin for the following hack:
#_kernel_release="$(pacman -Q linux-raspberrypi4-headers | grep -Eo "[^\ ]+$")-ARCH"
#mkdir -p "$srcdir/uapi/drm"
#ln -s /usr/lib/modules/$_kernel_release/build/include/uapi/drm/drm_fourcc.h "$srcdir/uapi/drm"
#export CPPFLAGS+=" -I$srcdir/uapi"
unset CFLAGS CXXFLAGS
export CFLAGS="-march=armv8-a+crc+simd -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O2 -pipe -fstack-protector-strong -fno-plt"
export CXXFLAGS="${CFLAGS}"
#-DCMAKE_EXE_LINKER_FLAGS_INIT="-L/opt/vc/lib -lvcsm" \
#-DCMAKE_EXE_LINKER_FLAGS="-L/opt/vc/lib -lvcsm" \
#-DCMAKE_CXX_FLAGS="-Wl,-L/opt/vc/lib -Wl,-lvcsm" \
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DENABLE_EVENTCLIENTS=ON \
-DENABLE_INTERNAL_FFMPEG=ON \
-DENABLE_INTERNAL_FMT=ON \
-DENABLE_INTERNAL_CROSSGUID=ON \
-DENABLE_INTERNAL_FSTRCMP=ON \
-DENABLE_INTERNAL_FLATBUFFERS=ON \
-DENABLE_INTERNAL_SPDLOG=ON \
-DENABLE_EVENTCLIENTS=ON \
-DENABLE_VAAPI=OFF \
-DENABLE_VDPAU=OFF \
-DENABLE_OPENGL=OFF \
-DENABLE_MYSQLCLIENT=ON \
-Dlibdvdcss_URL="$srcdir/libdvdcss-$_libdvdcss_version.tar.gz" \
-Dlibdvdnav_URL="$srcdir/libdvdnav-$_libdvdnav_version.tar.gz" \
-Dlibdvdread_URL="$srcdir/libdvdread-$_libdvdread_version.tar.gz" \
-DFFMPEG_URL="$srcdir/ffmpeg-$_ffmpeg_version.tar.gz" \
-DFMT_URL="$srcdir/fmt-$_fmt_version.tar.gz" \
-DCROSSGUID_URL="$srcdir/crossguid-$_crossguid_version.tar.gz" \
-DFSTRCMP_URL="$srcdir/fstrcmp-$_fstrcmp_version.tar.gz" \
-DFLATBUFFERS_URL="$srcdir/flatbuffers-$_flatbuffers_version.tar.gz" \
-DSPDLOG_URL="$srcdir/spdlog-$_spdlog_version.tar.gz" \
-DCORE_PLATFORM_NAME=gbm \
-DGBM_RENDER_SYSTEM=gles \
../"xbmc-$_commit"
make
make preinstall
}
package_kodi-rbp4-git() {
pkgdesc="A software media player and entertainment hub for digital media (Raspberry Pi4/gbm only)"
depends=(
'desktop-file-utils' 'hicolor-icon-theme' 'mesa' 'python-pycryptodomex'
'python-pillow' 'python-simplejson' 'xorg-xdpyinfo'
'bluez-libs' 'curl' 'lcms2' 'libass' 'libbluray' 'libcdio' 'libcec-rpi'
'libinput' 'libmicrohttpd' 'libnfs' 'libpulse' 'libva' 'libxkbcommon'
'libxslt' 'lirc' 'mariadb-libs' 'python2' 'smbclient' 'taglib'
'tinyxml' 'polkit' 'linux>=5.4.35' 'shairplay' 'dav1d'
)
optdepends=(
'afpfs-ng: Apple shares support'
'bluez: Blutooth support'
'python-pybluez: Bluetooth support'
'libplist: Limited AirPlay support'
'lsb-release: log distro information in crashlog'
'upower: Display battery level'
)
install='kodi.install'
provides=('xbmc' 'kodi')
conflicts=('xbmc' 'kodi' 'arm-mem-git' 'shairplay-git')
replaces=('xbmc-rbp-git')
_components=('kodi' 'kodi-bin')
export PATH="$srcdir/path:$PATH"
cd kodi-build
for _cmp in ${_components[@]}; do
DESTDIR="$pkgdir" /usr/bin/cmake \
-DCMAKE_INSTALL_COMPONENT="$_cmp" \
-P cmake_install.cmake
done
cd "$pkgdir"
# fix permissions necessary for accelerated video playback
install -Dm0644 "$srcdir/99-kodi.rules" "$pkgdir/etc/udev/rules.d/99-kodi.rules"
# systemd manages kodi user
install -Dm644 "$srcdir"/sysusers.conf "$pkgdir/usr/lib/sysusers.d/kodi.conf"
install -Dm644 "$srcdir"/tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/kodi.conf"
# systemd service and polkit rules
install -Dm0644 "$srcdir/kodi.service" "$pkgdir/usr/lib/systemd/system/kodi.service"
install -Dm0644 "$srcdir/polkit.rules" "$pkgdir/usr/share/polkit-1/rules.d/10-kodi.rules"
chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d/"
# setup video drivers for kodi-gbm on RPi4
install -Dm0644 "$srcdir/kodi-gbm.config.txt" "$pkgdir/boot/kodi-gbm.config.txt"
}
package_kodi-eventclients-rbp4-git() {
pkgdesc="Kodi Event Clients (master branch)"
provides=('kodi-eventclients')
conflicts=('kodi-eventclients')
optdepends=('python: most eventclients are implemented in python')
_components=(
'kodi-eventclients-common'
'kodi-eventclients-ps3'
'kodi-eventclients-kodi-send'
)
export PATH="$srcdir/path:$PATH"
cd kodi-build
for _cmp in ${_components[@]}; do
DESTDIR="$pkgdir" /usr/bin/cmake \
-DCMAKE_INSTALL_COMPONENT="$_cmp" \
-P cmake_install.cmake
done
}
package_kodi-tools-texturepacker-rbp4-git() {
pkgdesc="Kodi Texturepacker tool (master branch)"
depends=('libpng' 'giflib' 'libjpeg-turbo' 'lzo')
_components=('kodi-tools-texturepacker')
export PATH="$srcdir/path:$PATH"
cd kodi-build
for _cmp in ${_components[@]}; do
DESTDIR="$pkgdir" /usr/bin/cmake \
-DCMAKE_INSTALL_COMPONENT="$_cmp" \
-P cmake_install.cmake
done
}
package_kodi-dev-rbp4-git() {
pkgdesc="Kodi dev files (master branch)"
depends=('kodi')
provides=('kodi-dev')
_components=('kodi-addon-dev'
'kodi-audio-dev'
'kodi-eventclients-dev'
'kodi-game-dev'
'kodi-inputstream-dev'
'kodi-peripheral-dev'
'kodi-pvr-dev'
'kodi-screensaver-dev'
'kodi-visualization-dev')
export PATH="$srcdir/path:$PATH"
cd kodi-build
for _cmp in ${_components[@]}; do
DESTDIR="$pkgdir" /usr/bin/cmake \
-DCMAKE_INSTALL_COMPONENT="$_cmp" \
-P cmake_install.cmake
done
}