# 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=20

_prefix=/usr

pkgbase=kodi-rbp-git
pkgname=('kodi-rbp-git' 'kodi-rbp-git-eventclients')
pkgver=17.0b6.20161201

_tag=17.0b6-Krypton
pkgrel=1
pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi"
arch=('armv6h' 'armv7h')
url="http://kodi.tv"
license=('GPL2')
makedepends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio'
             'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate' 'libssh' 'libmicrohttpd'
             'sdl_image' 'python2' 'python2-pillow' 'python2-pybluez' 'python2-simplejson' 'libass'
             'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'xorg-xdpyinfo' 'libbluray'
             'libnfs' 'afpfs-ng' 'avahi' 'bluez-libs' 'tinyxml' 'raspberrypi-firmware' 'libcec-rpi'
             'libplist' 'swig' 'taglib' 'libxslt' 'shairplay' 'boost' 'cmake' 'gperf' 'nasm' 'zip'
             'udisks' 'upower' 'git' 'autoconf' 'java-environment' 'libcrossguid-git' 'dcadec' 'libpulse')
source=("xbmc-$_tag.tar.gz::https://github.com/xbmc/xbmc/archive/$_tag.tar.gz"
        'kodi.service'
        '99-kodi.rules'
        'https://github.com/popcornmix/xbmc/commit/0c320b6cdd4fb409be45008e6b9042463d54b742.patch'
        'https://github.com/popcornmix/xbmc/commit/4d983105d7fd65b1d92f2ae2602e6e1cdcaddbe0.patch'
        'polkit.rules')
sha256sums=('961330e0b833793a6d58a00f29b58869dab643a24bf7622b790a43a2dde6fa4b'
            '5235068d5800d69f0287087815990e7fe8d6572733d60c8800546d35f608e87f'
            'b31570f95654434b01fd8531612fbb6be77cbc1c519dd60f92feae26eb160f3d'
            '813f8c622c341eefb33774115199d2abe9c189cf2ce52e79719dbd42d48a1274'
            'd830c010ead152bc9a9ba6b812c985d6e649bda7480fec9b3c451f5ea03ba792'
            '9ea592205023ba861603d74b63cdb73126c56372a366dc4cb7beb379073cbb96')

prepare() {
  cd "$srcdir/xbmc-$_tag"

  # ffmpeg: Automatic switch to software decode for GMC with more than one warp point
  patch -Np1 -i "$srcdir/0c320b6cdd4fb409be45008e6b9042463d54b742.patch"
  # hacky fix for files with GMC
  patch -Np1 -i "$srcdir/4d983105d7fd65b1d92f2ae2602e6e1cdcaddbe0.patch"

  find -type f -name *.py -exec sed 's|^#!.*python$|#!/usr/bin/python2|' -i "{}" +
  sed 's|^#!.*python$|#!/usr/bin/python2|' -i tools/depends/native/rpl-native/rpl
  sed 's/python/python2/' -i tools/Linux/kodi.sh.in
  sed 's/shell python/shell python2/' -i tools/EventClients/Makefile.in
  # disable wiiremote due to incompatibility with bluez-5.29
  sed '/WiiRemote/d' -i tools/EventClients/Makefile.in
  sed '/mkdir -p $(DESTDIR)$(bindir)/i \
install:' -i tools/EventClients/Makefile.in

}

build() {
  cd "$srcdir/xbmc-$_tag"

  # Bootstrapping
  MAKEFLAGS=-j1 ./bootstrap

  # Configuring Kodi
  export PYTHON_VERSION=2  # external python v2
  # we need to compile for armv6 instead of armv5 to avoid problems compiling assembler code
  FLAGS="-Ofast -fexcess-precision=fast -mfloat-abi=hard -mabi=aapcs-linux -pipe -fstack-protector --param=ssp-buffer-size=4 -D_GLIBCXX_USE_CXX11_ABI=1 \
         -I/opt/vc/include/ -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
  [[ $CARCH == "armv6h" ]] && export CFLAGS="$FLAGS -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp" && export CXXFLAGS="$FLAGS -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp"
  [[ $CARCH == "armv7h" ]] && export CFLAGS="$FLAGS -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad" && export CXXFLAGS="$FLAGS -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad"

  export LDFLAGS="$LDFLAGS -L/opt/vc/lib"

  # If build fails try uncommenting the line below first
  # export MAKEFLAGS="-j1"

  ./configure --prefix=$_prefix --exec-prefix=$_prefix  \
  --with-platform=raspberry-pi \
  --disable-gl \
  --enable-gles \
  --disable-x11 \
  --disable-vaapi \
  --disable-vdpau \
  --disable-debug \
  --disable-mid \
  --enable-player=omxplayer \
  --with-lirc-device=/run/lirc/lircd \
  ac_cv_lib_bluetooth_hci_devid=no
  make
}

package_kodi-rbp-git() {
  pkgdesc="A software media player and entertainment hub for digital media (Raspberry Pi)"

  # depends expected for kodi plugins:
  # 'python2-pillow' 'python2-pybluez' 'python2-simplejson'
  # depends expeced in FEH.py
  # 'mesa-demos' 'xorg-xdpyinfo'
  depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio'
           'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate' 'libssh' 'libmicrohttpd'
           'sdl_image' 'python2' 'python2-pillow' 'python2-pybluez' 'python2-simplejson' 'libass'
           'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'xorg-xdpyinfo' 'libbluray'
           'libnfs' 'avahi' 'bluez-libs' 'tinyxml' 'raspberrypi-firmware' 'libcec-rpi'
           'libplist' 'swig' 'taglib' 'libxslt' 'shairplay' 'libcrossguid-git')

  optdepends=(
    'afpfs-ng: Apple shares support'
    'lirc: remote controller support'
    'polkit: permissions for automounting external drives and power management functionality'
    'udisks: automount external drives'
    'upower: used to trigger power management functionality'
    'unrar: access compressed files without unpacking them'
    'lsb-release: log distro information in crashlog')

  install='kodi.install'
  provides=('xbmc' 'kodi')
  conflicts=('xbmc' 'kodi' 'arm-mem-git' 'shairplay-git')
  replaces=('xbmc-rbp-git')

  cd "$srcdir/xbmc-$_tag"
  # Running make install
  make DESTDIR="$pkgdir" install

  # We will no longer support the xbmc name
  rm "$pkgdir/usr/share/xsessions/xbmc.desktop"
  rm "$pkgdir/usr/bin/"xbmc{,-standalone}
  # we will leave /usr/{include,lib,share}/xbmc for now

  # Licenses
  install -dm0755 "$pkgdir$_prefix/share/licenses/$pkgname"
  for licensef in LICENSE.GPL copying.txt; do
    mv "$pkgdir$_prefix/share/doc/kodi/$licensef" "$pkgdir$_prefix/share/licenses/$pkgname"
  done

  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 0700 "$pkgdir/usr/share/polkit-1/rules.d/"

  # fix permissions necessary for accelerated video playback
  install -Dm0644 "$srcdir/99-kodi.rules" "$pkgdir/etc/udev/rules.d/99-kodi.rules"
}

package_kodi-rbp-git-eventclients() {
  pkgdesc="Kodi Event Clients (Raspberry Pi)"
  provides=('kodi-eventclients')
  conflicts=('kodi-eventclients')
  depends=('cwiid')

  cd "$srcdir/xbmc-$_tag"

  make DESTDIR="$pkgdir" eventclients WII_EXTRA_OPTS=-DCWIID_OLD
}