pkgname=mythtv
pkgver=29.1
pkgrel=12
commit_hash=`cat ../git_src/git_hash`
pkgdesc="A Homebrew PVR project $commit_hash"
arch=('x86_64')
url="http://www.mythtv.org/"
license=('GPL')
depends=('avahi' 'exiv2' 'faad2' 'fftw' 'glew' 'lame' 'libass' 'libavc1394' 'libcdio'
         'libcec' 'libgl' 'libcrystalhd-git' 'libiec61883' 'libva' 'libvdpau' 'libvpx'
         'libx264' 'x265' 'libxinerama' 'libxml2' 'libxrandr' 'LinHES-config>=8.1-6'
         'LinHES-system>=8.4-4' 'lirc-utils' 'mysql-clients' 'mysql-python'
         'openssl' 'perl-date-manip' 'perl-dbd-mysql'
         'perl-io-socket-inet6' 'perl-libwww' 'perl-math-round'
         'perl-net-upnp' 'perl-soap-lite' 'perl-xml-sax' 'python2-future'
         'python2-pycurl' 'python2-requests' 'python2-requests-cache'
         'python2-lxml' 'qt5-script' 'qt5-webkit' 'sdl' 'taglib' 'unzip' 'urlgrabber'
         'wget' 'xmltv')
makedepends=('apache-ant' 'mesa' 'mesa-libgl' 'yasm' 'x264' 'git' 'rsync' 'qt5-tools')
replaces=()
groups=('pvr')
backup=()
install='mythtv.install'

patches=(
         'myth_settings.patch'
         'videoAlwaysUseBookmark.patch'
         'autoskip_reduce_commskip_jumpback.patch'
         'change_msg_types.patch'
         'disable_mythnotification_tuner_failure.patch'
         'searchMetatdataSelectedGrabber.patch'
         'addDamagedToProgDetails.patch'
         'defaultThemeLinHES.patch'
         'addEnableDisableAutoShutdownToSystemMenu.patch'
         'mythfrontend_en_us.ts_Title_Case.patch'
         'fixTranslations.patch'
         'pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch'
         '0006-cardutil_show_displayname.patch'
         '0287-MythUiImage-Don-t-block-UI-when-exiting-screens.patch'
         '0292-UPnP-Reduce-startup-latency-by-moving-blocking-code-to-own-thread.patch'
         '0294-0283-FE-Add-network-status-to-machine-status-dialog.patch'
         )

optdepends=()
source=(`echo ${patches[@]:0}` 'recordings')

prepare() {
    if [ -e ${srcdir}/mythtv ]
    then
        msg "Removing old mythtv src"
        rm -rf ${srcdir}/mythtv
    fi

    cd ${startdir}
    msg "Copying in mythtv git_src"
    cp -rp ../git_src/mythtv/mythtv $srcdir
    cd ${srcdir}/$pkgname
    echo "#!/bin/bash" > version.sh

    msg "--------------------------applying patches------------------------------"
    for i in `echo ${patches[@]:0}`
    do
        echo applying $i
        patch -Np2 -i ${startdir}/src/$i || return 1
        echo "-----------------------------"
    done
    msg "--------------------------done applying patches-------------------------"

    msg "Change python to python2"
    find 'bindings/python' 'contrib' 'programs/scripts' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'

    msg "Updating en_us Translation"
    cd ${srcdir}/$pkgname/i18n
    lrelease -removeidentical mythfrontend_en_us.ts
}

build() {
    cd ${srcdir}/$pkgname

    msg "Configuring mythtv"
    ARCH=${CARCH/_/-}
    #disable mythlogserver due to http://code.mythtv.org/trac/ticket/11230
    ./configure --prefix=/usr \
                --cpu=${ARCH} \
                --disable-altivec \
                --disable-audio-jack \
                --disable-audio-pulseoutput \
                --disable-distcc \
                --disable-mythlogserver \
                --dvb-path=/usr/include \
                --enable-bdjava \
                --enable-libmp3lame \
                --enable-libvpx \
                --enable-libxvid \
                --enable-libx264 \
                --enable-libx265 \
                --enable-sdl \
                --enable-sdl2 \
                --python=python2 \
                --with-bindings=perl,python || return 1
    msg "Compiling mythtv"
    make all || return 1
}

package() {
    cd "${srcdir}/${pkgname}"
    # basic install
    make INSTALL_ROOT="${pkgdir}" install
    # install contrib files
    rsync -arp --exclude .svn --delete-excluded contrib ${pkgdir}/usr/share/mythtv/ || return 1
    # install database structure
    rsync -arp --exclude .svn --delete-excluded database ${pkgdir}/usr/share/mythtv/ || return 1
    # install docs
    rsync -arp --exclude .svn --delete-excluded docs ${pkgdir}/usr/share/mythtv/ || return 1

    # patch the xml LinHES style
    cp -r ${startdir}/menu-xml/*.xml ${pkgdir}/usr/share/mythtv/themes/defaultmenu/
    cd ${pkgdir}/usr/share/mythtv
    patch -p0 < ${startdir}/menu-xml/mainmenu.xml.patch || return 1
    patch -p0 < ${startdir}/menu-xml/optical_menu.xml.patch || return 1
    patch -p0 < ${startdir}/menu-xml/library.xml.patch || return 1

    # make mythtv log dir for old scripts that use it
    mkdir -p ${pkgdir}/var/log/mythtv
    chown 1000.1000 ${pkgdir}/var/log/mythtv

    #install recordings (was pretty)
    mkdir -p ${pkgdir}/etc/cron.hourly/
    install -m0755 ${srcdir}/recordings ${pkgdir}/etc/cron.hourly/
}

md5sums=('fb5a87c52a31168a0c8fdde72f27cc45'
         '41098e898361a5a3cde3eaae358482a8'
         '2f983590a8a3cf81f386cc65b9628e13'
         'f764758832f8e9068ffda1ac0c8aacba'
         'ab2a31dc29ff325162a4b71b49f0adca'
         '0f674b9cad031ba1e03aaf6b5ee1499f'
         '6add9c16bbb988067e82029327e567b2'
         'b0b238320fa78a4928dce2cea7c85071'
         '8e4492d1777234a021f368bd6ee964ee'
         'e6f5c4f7ed0410fa07da6057d2631520'
         'a1c7fb6a3bd11b7b21f2ea8327a843e1'
         'd05eaf66c434a131c8efb4d87e99b402'
         '5f2bd4065b145b7b7ff09dfd6f08276c'
         '3cccbab70c7615bc47e51790e024d5bf'
         '1f0dbd44f8c1a89b86bb331086f58578'
         'abaef221b00690b329f4dca18676bcd6'
         '633cd853a89aeee5388daaad21ccec28')
