# Maintainer: James Bunton # Contributor: Taijian # Contributor: Jonathan Conder # Contributor: Giovanni Scafora # Contributor: Juergen Hoetzel # Contributor: # Contributor: dorphell pkgname=mythtv pkgver=34+fixes.20240311.5590d0d5 pkgrel=1 pkgdesc="A Homebrew PVR project" arch=('x86_64') url="https://www.mythtv.org/" license=('GPL') depends=( '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-future' 'python-lxml' 'python-mysqlclient' 'python-pyqt5-webengine' 'python-requests' 'python-requests-cache' 'python-simplejson' 'xmltv' ) 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-future' 'python-lxml' 'python-mysqlclient' 'python-requests' 'python-setuptools' 'python-simplejson' '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 0059-portchecker-speedup.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/34" 'mythbackend.service' 'mythfrontend.desktop' 'mythtv-setup.desktop' 'mythtv.png' '99-mythbackend.rules' 'sysusers.d' $patches ) sha256sums=('SKIP' '6adb9d3370111c7d0000b215ae2d83a07a19c1bef5c22657f8caa9593c8efda5' 'ec4f2330f77f0ac92acf228a4afa3b480cdd2de913cdabedfd43d40b03507557' 'e7965a0d232aefcf8e5e89a96f46b7582a9590d2ae9b4f5b8ee9ab2baa913527' '12cb52bf9b084a4f16419c9370fef0450ce6a11308b0c3f7240f4f83df7e2ab6' 'ecfd02bbbef5de9773f4de2c52e9b2b382ce8137735f249d7900270d304fd333' '470de0a4050c16c7af11a0e5cfe2810b7daae42df4acf5456c7eae274dc7c5ae' '276f87058edc6197ab3a53faf6b4c485ef0d2b8447b9caa02ca7234f09ab473f' '1ed4be912cd1ebd73553306958b7a2bc98e466b947dfb5d90ad7c0590a5a3747' '630c80c588a9b278c4421d356c5cbaa0debf149524bc896656b580b89d8fae88' '8a81e724d902976056dc824e7304df343c230ce67ec6ce1d18e110c5ef818ef6' '3ff9f48ead83a8dd7a87cc08df066c00813b48b9171cc7bf74ba0e3cb2570d00') prepare() { msg2 "PKGBUILD pkgver: $pkgver" cd "${srcdir}/mythtv/mythtv" gitsrcver=`echo "34+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 "34+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-libdav1d \ --enable-libmp3lame \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --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" }