# Maintainer: James Bunton <jamesbunton@delx.net.au>
# Contributor: Taijian <taijian@posteo.de>
# Contributor: Jonathan Conder <jonno.conder@gmail.com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Juergen Hoetzel <juergen@archlinux.org>
# Contributor: <kleptophobiac@gmail.com>
# Contributor: dorphell <dorphell@archlinux.org>

pkgname=mythtv
pkgver=35+fixes.20260120.eb5dfad4
pkgrel=1
pkgdesc="A Homebrew PVR project"
arch=('x86_64')
url="https://www.mythtv.org/"
license=('GPL')
depends=(
    'aom'
    'dav1d'
    'exiv2'
    'fftw'
    'lame'
    'libass'
    'libavc1394'
    'libbluray'
    'libhdhomerun'
    'libiec61883'
    'libpulse'
    'libsamplerate'
    'libva'
    'libvdpau'
    'libvpx'
    'libxinerama'
    'libxml2'
    'libxrandr'
    'libzip'
    'lzo'
    'qt5-script'
    'soundtouch'
    'taglib'
    'x264'
    'x265'
    'glew'
    'libcec'
    'mariadb'
    'mariadb-clients'
    'perl-dbd-mysql'
    'perl-io-socket-inet6'
    'perl-json-xs'
    'perl-libwww'
    'perl-net-upnp'
    'perl-xml-simple'
    'perl-xml-xpath'
    'python-lxml'
    'python-mysqlclient'
    'python-pyqt5-webengine'
    'python-requests'
    'python-requests-cache'
    'xmltv'
    'xvidcore'
)
makedepends=(
    'git'
    'help2man'
    'libcdio'
    'libcec'
    'libmariadbclient'
    'libxml2'
    'lirc'
    'perl-dbd-mysql'
    'perl-io-socket-inet6'
    'perl-libwww'
    'perl-net-upnp'
    'perl-xml-simple'
    'perl-xml-xpath'
    'python-lxml'
    'python-mysqlclient'
    'python-pip'
    'python-requests'
    'python-setuptools'
    'python-wheel'
    'qt5-tools'
    'yasm'
)

options=(!lto)
conflicts=('myththemes' 'mythplugins-mythvideo' 'mythtv-git')
replaces=('myththemes' 'mythplugins-mythvideo' 'mythtv-git')

patches="0031-UPnP-Reduce-startup-latency-by-moving-blocking-code-to-own-thread.patch
         0227-OSD-Add-interlaced-status-to-OSD-debug-screen.patch
         autoskip_reduce_commskip_jumpback.patch
         defaultThemeLinHES.patch"

source=(
    "git+https://github.com/MythTV/mythtv#branch=fixes/35"
    'mythbackend.service'
    'mythfrontend.desktop'
    'mythtv-setup.desktop'
    'mythtv.png'
    '99-mythbackend.rules'
    'sysusers.d'
    $patches
)

sha256sums=('SKIP'
            '6adb9d3370111c7d0000b215ae2d83a07a19c1bef5c22657f8caa9593c8efda5'
            'ec4f2330f77f0ac92acf228a4afa3b480cdd2de913cdabedfd43d40b03507557'
            'e7965a0d232aefcf8e5e89a96f46b7582a9590d2ae9b4f5b8ee9ab2baa913527'
            '12cb52bf9b084a4f16419c9370fef0450ce6a11308b0c3f7240f4f83df7e2ab6'
            'ecfd02bbbef5de9773f4de2c52e9b2b382ce8137735f249d7900270d304fd333'
            '470de0a4050c16c7af11a0e5cfe2810b7daae42df4acf5456c7eae274dc7c5ae'
            '276f87058edc6197ab3a53faf6b4c485ef0d2b8447b9caa02ca7234f09ab473f'
            '630c80c588a9b278c4421d356c5cbaa0debf149524bc896656b580b89d8fae88'
            '8a81e724d902976056dc824e7304df343c230ce67ec6ce1d18e110c5ef818ef6'
            '3ff9f48ead83a8dd7a87cc08df066c00813b48b9171cc7bf74ba0e3cb2570d00')

prepare() {
  msg2 "PKGBUILD pkgver: $pkgver"
  cd "${srcdir}/mythtv/mythtv"
  gitsrcver=`echo "35+fixes.$(git show -s --format=%cd --date=short | tr -d -).$(git rev-parse --short=8 HEAD)"`
  msg2 "GIT SOURCE pkgver: $gitsrcver"
  if [ $pkgver = $gitsrcver ]; then
    warning "pkgver did NOT change. Consider increasing pkgrel ($pkgrel)."
  fi
  echo $srcdir
  msg "--------------------------applying patches------------------------------"
  for i in `echo ${patches[@]:0}`
  do
      echo applying $i
      patch -Np2 -i ${srcdir}/$i || return 1
      echo "-----------------------------"
  done
  msg "--------------------------done applying patches-------------------------"

#  msg "Updating en_us Translation"
#  lrelease -removeidentical i18n/mythfrontend_en_us.ts
}

pkgver() {
  cd "${srcdir}/mythtv/mythtv"
  echo -n "35+fixes.$(git show -s --format=%cd --date=short | tr -d -).$(git rev-parse --short=8 HEAD)"
}

build() {
  cd "${srcdir}/mythtv/mythtv"

#CFLAGS="-march=x86-64 -mtune=amdfam10 -O2 -pipe -fno-plt -fexceptions \
#        -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
#        -fstack-clash-protection -fcf-protection"
#  CFLAGS="${CFLAGS/flto=auto/fPIC}"
#  CXXFLAGS="${CXXFLAGS/flto=auto/fPIC}"
#  LDFLAGS="${LDFLAGS/flto=auto/fPIC}"

  ARCH="${CARCH/_/-}"
  ./configure --prefix=/usr \
              --cpu="$ARCH" \
              --disable-altivec \
              --disable-audio-jack \
              --disable-distcc \
              --enable-libaom \
              --enable-libdav1d \
              --enable-libmp3lame \
              --enable-libvpx \
              --enable-libx264 \
              --enable-libx265 \
              --enable-libxvid \
              --enable-vaapi \
              --with-bindings=python \
              --with-bindings=perl \
              --perl-config-opts=INSTALLDIRS=vendor
  echo "###### STARTING MAKE ####"
  make
}

package() {
  cd "${srcdir}/mythtv/mythtv"
  make INSTALL_ROOT="$pkgdir" install

  install -D -m644 "$srcdir/mythbackend.service" "$pkgdir/usr/lib/systemd/system/mythbackend.service"
  install -D -m644 'database/mc.sql' "$pkgdir/usr/share/mythtv/mc.sql"
  install -D -m644 "$srcdir/sysusers.d" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"

  mkdir -p "$pkgdir/usr/share/mythtv"
  cp -R 'contrib' "$pkgdir/usr/share/mythtv"
  mkdir -p "$pkgdir/var/log/mythtv"

  # Install udev rules https://www.mythtv.org/wiki/Systemd_mythbackend_Configuration#Delay_starting_the_backend_until_tuners_have_initialized
  install -Dm644 "$srcdir/99-mythbackend.rules" "$pkgdir/usr/lib/udev/rules.d/99-mythbackend.rules"

  # Install desktop file
  install -Dm644 "$srcdir/mythtv.png" "$pkgdir/usr/share/pixmaps/mythtv.png"
  install -Dm644 "$srcdir/mythfrontend.desktop" "$pkgdir/usr/share/applications/mythfrontend.desktop"
  install -Dm644 "$srcdir/mythtv-setup.desktop" "$pkgdir/usr/share/applications/mythtv-setup.desktop"
}
