# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: MYTHTV_COMMIT="c548468c45f14df050e75696345966f8375df26c" EAPI=2 inherit mythtv flag-o-matic multilib eutils qt4 toolchain-funcs python DESCRIPTION="Homebrew PVR project" HOMEPAGE="http://www.mythtv.org" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86" IUSE_VIDEO_CARDS="video_cards_nvidia video_cards_via" IUSE="alsa altivec autostart bluray +css crystalhd dbus debug \ directv dvb fftw ieee1394 jack lcd lirc mmx perl \ pulseaudio python tiff vdpau xvmc ${IUSE_VIDEO_CARDS}" # fonts from bug #296222 RDEPEND="media-fonts/corefonts media-fonts/dejavu >=media-libs/freetype-2.0 >=media-sound/lame-3.93.1 x11-libs/libX11 x11-libs/libXext x11-libs/libXinerama x11-libs/libXv x11-libs/libXrandr x11-libs/libXxf86vm >=x11-libs/qt-core-4.5:4[qt3support] >=x11-libs/qt-gui-4.5:4[dbus?,qt3support,tiff?] >=x11-libs/qt-sql-4.5:4[qt3support,mysql] >=x11-libs/qt-opengl-4.5:4[qt3support] >=x11-libs/qt-webkit-4.5:4[dbus?] virtual/mysql virtual/opengl virtual/glu || ( >=net-misc/wget-1.9.1 >=media-tv/xmltv-0.5.43 ) alsa? ( >=media-libs/alsa-lib-0.9 ) autostart? ( net-dialup/mingetty x11-wm/evilwm x11-apps/xset ) bluray? ( media-video/aacskeys ) css? ( media-libs/libdvdcss ) crystalhd? ( x11-drivers/crystalhd ) dbus? ( >=x11-libs/qt-dbus-4.5:4 ) directv? ( virtual/perl-Time-HiRes ) dvb? ( media-libs/libdvb media-tv/linuxtv-dvb-headers ) fftw? ( sci-libs/fftw:3.0 ) ieee1394? ( >=sys-libs/libraw1394-1.2.0 >=sys-libs/libavc1394-0.5.3 >=media-libs/libiec61883-1.0.0 ) jack? ( media-sound/jack-audio-connection-kit ) lcd? ( app-misc/lcdproc ) lirc? ( app-misc/lirc ) perl? ( dev-perl/DBD-mysql dev-perl/Net-UPnP ) pulseaudio? ( >=media-sound/pulseaudio-0.9.7 ) python? ( dev-python/mysql-python >=dev-python/lxml-2.2.7 ) vdpau? ( x11-libs/libvdpau ) xvmc? ( x11-libs/libXvMC )" DEPEND="${RDEPEND} app-arch/unzip x11-proto/xineramaproto x11-proto/xf86vidmodeproto x11-apps/xinit ! "${S}/VERSION" echo "SOURCE_VERSION=${MYTHTV_COMMIT}" > "${S}/VERSION" echo "SVNREPOPATH=${MYTHTV_REPO}" >> "${S}/VERSION" # Corrected to reflect Changeset 25900 ## Perl bits need to go into vender_perl and not site_perl sed -e "s:pure_install:pure_install INSTALLDIRS=vendor:" \ -i "${S}"/bindings/perl/Makefile epatch "${FILESDIR}"/gentoo-myth-config-fix.diff epatch "${FILESDIR}/${PN}-0.21-ldconfig-sandbox-fix.patch" } src_configure() { local myconf="--prefix=/usr --mandir=/usr/share/man --libdir-name=$(get_libdir)" use alsa || myconf="${myconf} --disable-audio-alsa" use altivec || myconf="${myconf} --disable-altivec" use fftw && myconf="${myconf} --enable-libfftw3" use jack || myconf="${myconf} --disable-audio-jack" use vdpau && myconf="${myconf} --enable-vdpau" use crystalhd && myconf="${myconf} --enable-crystalhd" #from bug #220857 and fixed for bug #292481, and bug #299063 use xvmc && myconf="${myconf} --enable-xvmc --enable-xvmcw" if use video_cards_via && use xvmc; then myconf="${myconf} --enable-xvmc-vld --enable-xvmc-pro"; else myconf="${myconf} --disable-xvmc-vld"; fi myconf="${myconf} $(use_enable dvb) $(use_enable ieee1394 firewire) $(use_enable lirc) --disable-directfb --dvb-path=/usr/include --enable-opengl-vsync --enable-xrandr --enable-xv --enable-x11" if use mmx || use amd64; then myconf="${myconf} --enable-mmx" else myconf="${myconf} --disable-mmx" fi if use perl && use python then myconf="${myconf} --with-bindings=perl,python" elif use perl then myconf="${myconf} --without-bindings=python" myconf="${myconf} --with-bindings=perl" elif use python then myconf="${myconf} --without-bindings=perl" myconf="${myconf} --with-bindings=python" else myconf="${myconf} --without-bindings=perl,python" fi if use debug; then myconf="${myconf} --compile-type=debug" else myconf="${myconf} --compile-type=profile" fi ## CFLAG cleaning so it compiles MARCH=$(get-flag "march") MTUNE=$(get-flag "mtune") #strip-flags #filter-flags "-march=*" "-mtune=*" "-mcpu=*" #filter-flags "-O" "-O?" if [[ -n "${MARCH}" ]]; then myconf="${myconf} --cpu=${MARCH}" fi if [[ -n "${MTUNE}" ]]; then myconf="${myconf} --tune=${MTUNE}" fi # myconf="${myconf} --extra-cxxflags=\"${CXXFLAGS}\" --extra-cflags=\"${CFLAGS}\"" hasq distcc ${FEATURES} || myconf="${myconf} --disable-distcc" hasq ccache ${FEATURES} || myconf="${myconf} --disable-ccache" # let MythTV come up with our CFLAGS. Upstream will support this unset CFLAGS unset CXXFLAGS einfo "Running ./configure ${myconf}" sh ./configure ${myconf} || die "configure died" } src_compile() { emake || die "emake failed" } src_install() { einstall INSTALL_ROOT="${D}" || die "install failed" dodoc AUTHORS FAQ UPGRADING README insinto /usr/share/mythtv/database doins database/* exeinto /usr/share/mythtv #doexe "${FILESDIR}/mythfilldatabase.cron" newinitd "${FILESDIR}"/mythbackend-0.18.2.rc mythbackend newconfd "${FILESDIR}"/mythbackend-0.18.2.conf mythbackend dodoc keys.txt docs/*.{txt,pdf} dohtml docs/*.html insinto /etc/logrotate.d newins "${FILESDIR}"/mythtv.logrotate.d-r1 mythtv insinto /usr/share/mythtv/contrib doins -r contrib/* dobin "${FILESDIR}"/runmythfe # add icon from MythTV's website (scaled to 32x32) # for desktop entry insinto /usr/share/pixmaps doins "${FILESDIR}"/mythtv.png # create desktop entry for mythfrontend make_desktop_entry /usr/bin/mythfrontend "MythFrontend" mythtv \ "AudioVideo;TV;" "Path=/etc/mythtv/" make_desktop_entry /usr/bin/mythtv-setup "MythTV Setup" mythtv \ "AudioVideo;TV;" "Path=/etc/mythtv/" if use autostart; then dodir /etc/env.d/ echo 'CONFIG_PROTECT="/home/mythtv/"' > "${D}"/etc/env.d/95mythtv insinto /home/mythtv newins "${FILESDIR}"/bash_profile .bash_profile newins "${FILESDIR}"/xinitrc .xinitrc fi # correct permissions so the scripts are actually usable #fperms 755 /usr/share/mythtv/mythconverg_backup.pl #fperms 755 /usr/share/mythtv/mythconverg_restore.pl for file in `find ${D} -type f -name \*.py`; do chmod a+x $file; done for file in `find ${D} -type f -name \*.sh`; do chmod a+x $file; done for file in `find ${D} -type f -name \*.pl`; do chmod a+x $file; done } pkg_preinst() { export CONFIG_PROTECT="${CONFIG_PROTECT} ${ROOT}/home/mythtv/" } pkg_postinst() { #use python && python_mod_optimize $(python_get_sitedir)/MythTV elog elog "To always have MythBackend running and available run the following:" elog "rc-update add mythbackend default" elog ewarn "Your recordings folder must be owned by the user 'mythtv' now" ewarn "chown -R mythtv /path/to/store" if use crystalhd; then elog elog "Support for the Broadcom Crystal HD card is dependent" elog "on the kernel drivers found in the staging tree and" elog "firmware loaded." fi if use xvmc && [[ ! -s "${ROOT}/etc/X11/XvMCConfig" ]]; then ewarn ewarn "No XvMC implementation has been selected yet" ewarn "Use 'eselect xvmc list' for a list of available choices" ewarn "Then use 'eselect xvmc set ' to choose" ewarn "'eselect xvmc set nvidia' for example" fi if use bluray; then elog elog "Limited support for commercially pressed Bluray discs exists" elog "in MythTV. Unencrypted discs are fully supported. Please vist" elog "http://www.mythtv.org/wiki/Bluray#New_Developments for info." fi if use ieee1394; then elog elog "Firewire scripts have been moved to the wiki as of 0.24." elog "http://www.mythtv.org/wiki/Category:Firewire_Priming_Scripts" fi elog "Want mythfrontend to start automatically?" elog "Set USE=autostart. Details can be found at:" elog "http://dev.gentoo.org/~cardoe/mythtv/autostart.html" if use autostart; then elog elog "Please add the following to your /etc/inittab file at the end of" elog "the TERMINALS section" elog "c8:2345:respawn:/sbin/mingetty --autologin mythtv tty8" fi elog ewarn "Beware when you change ANY packages on your system that it may" ewarn "break some or all of the MythTV components. MythTV's build system" ewarn "is very fragile and only supports automagic dependencies." ewarn "i.e. It depends on libraries and components it finds at build time" ewarn "We try to mitigate this with RDEPENDs but be prepared to run" ewarn "revdep-rebuild as necessary." } pkg_postrm() { use python && python_mod_cleanup $(python_get_sitedir)/MythTV } pkg_info() { "${ROOT}"/usr/bin/mythfrontend --version } pkg_config() { echo "Creating mythtv MySQL user and mythconverg database if it does not" echo "already exist. You will be prompted for your MySQL root password." "${ROOT}"/usr/bin/mysql -u root -p < "${ROOT}"/usr/share/mythtv/database/mc.sql }