diff options
Diffstat (limited to 'media-tv/mythtv')
-rw-r--r-- | media-tv/mythtv/ChangeLog | 10 | ||||
-rw-r--r-- | media-tv/mythtv/files/digest-mythtv-0.20_p11244 | 6 | ||||
-rw-r--r-- | media-tv/mythtv/files/mythtv-0.20-vsync.patch | 154 | ||||
-rw-r--r-- | media-tv/mythtv/mythtv-0.20_p11244.ebuild | 257 |
4 files changed, 426 insertions, 1 deletions
diff --git a/media-tv/mythtv/ChangeLog b/media-tv/mythtv/ChangeLog index b197b0699daf..56d9b21f806b 100644 --- a/media-tv/mythtv/ChangeLog +++ b/media-tv/mythtv/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for media-tv/mythtv # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/ChangeLog,v 1.116 2006/09/19 04:17:12 beandog Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/ChangeLog,v 1.117 2006/09/20 03:34:34 cardoe Exp $ + +*mythtv-0.20_p11244 (20 Sep 2006) + + 20 Sep 2006; Doug Goldstein <cardoe@gentoo.org> + +files/mythtv-0.20-vsync.patch, -mythtv-0.20_p11163.ebuild, + +mythtv-0.20_p11244.ebuild: + rev bump to pull in new upstream fixes. Fix OpenGL assumptions that calls + exist. 19 Sep 2006; Steve Dibb <beandog@gentoo.org> mythtv-0.20_p11163.ebuild: Add new use flags, cosmetic changes diff --git a/media-tv/mythtv/files/digest-mythtv-0.20_p11244 b/media-tv/mythtv/files/digest-mythtv-0.20_p11244 new file mode 100644 index 000000000000..3dd6ed4d5d71 --- /dev/null +++ b/media-tv/mythtv/files/digest-mythtv-0.20_p11244 @@ -0,0 +1,6 @@ +MD5 52bec1e0fadf7d24d6dcac3f773ddf74 mythtv-0.20.tar.bz2 12380677 +RMD160 d9ef5221a1d821f2f210e7ebb0c32a88625fb522 mythtv-0.20.tar.bz2 12380677 +SHA256 777ff60afa89426f0e52e49b0e7a7661ddb45b59d2ebbfdcbe07fd179e526ff3 mythtv-0.20.tar.bz2 12380677 +MD5 0ef4184baa577a5df41515fb15e48f65 mythtv-0.20_svn11244.patch.bz2 2357 +RMD160 aa8d95353a4e49ef339ec03eee7634186a8ef03a mythtv-0.20_svn11244.patch.bz2 2357 +SHA256 2861d79015607add1b135c3c5c16f86cbdda39ceb6bd9766e80e8a738f8f1b8a mythtv-0.20_svn11244.patch.bz2 2357 diff --git a/media-tv/mythtv/files/mythtv-0.20-vsync.patch b/media-tv/mythtv/files/mythtv-0.20-vsync.patch new file mode 100644 index 000000000000..d176466c37dd --- /dev/null +++ b/media-tv/mythtv/files/mythtv-0.20-vsync.patch @@ -0,0 +1,154 @@ +Index: libs/libmythtv/vsync.cpp +=================================================================== +--- libs/libmythtv/vsync.cpp (revision 11251) ++++ libs/libmythtv/vsync.cpp (working copy) +@@ -35,8 +35,8 @@ + #include "util-x11.h" // for OpenGL VSync + + #ifdef USING_OPENGL_VSYNC +-#define GLX_GLXEXT_PROTOTYPES + #define XMD_H 1 ++#define GLX_GLXEXT_PROTOTYPES + #include <GL/glx.h> + #include <GL/gl.h> + #undef GLX_ARB_get_proc_address +@@ -437,12 +437,59 @@ + UpdateNexttrigger(); + } + ++#ifdef USING_OPENGL_VSYNC ++class OpenGLVideoSyncPrivate ++{ ++ public: ++ OpenGLVideoSyncPrivate() ++ { ++ m_glXGetVideoSyncSGI = (PFNGLXGETVIDEOSYNCSGIPROC) glXGetProcAddress("glXGetVideoSyncSGI"); ++ m_glXWaitVideoSyncSGI = (PFNGLXWAITVIDEOSYNCSGIPROC) glXGetProcAddress("glXWaitVideoSyncSGI"); ++ } ++ ++ bool funcsLoaded() ++ { ++ return m_glXGetVideoSyncSGI && m_glXWaitVideoSyncSGI; ++ } ++ ++ public: ++ int glXGetVideoSyncSGI(unsigned int *count) ++ { ++ return m_glXGetVideoSyncSGI(count); ++ } ++ ++ int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) ++ { ++ return m_glXWaitVideoSyncSGI(divisor, remainder, count); ++ } ++ ++ __GLXextFuncPtr glXGetProcAddress(const char * const procName) ++ { ++ __GLXextFuncPtr ret = glXGetProcAddressARB((const GLubyte *) procName); ++ if (!ret) ++ { ++ VERBOSE(VB_PLAYBACK, ++ QString("Error: glXGetProcAddressARB unable to find %1") ++ .arg(procName)); ++ } ++ return ret; ++ } ++ ++ private: ++ PFNGLXGETVIDEOSYNCSGIPROC m_glXGetVideoSyncSGI; ++ PFNGLXWAITVIDEOSYNCSGIPROC m_glXWaitVideoSyncSGI; ++}; ++#endif // USING_OPENGL_VSYNC ++ + OpenGLVideoSync::OpenGLVideoSync(VideoOutput *video_output, + int frame_interval, int refresh_interval, + bool interlaced) + : VideoSync(video_output, frame_interval, refresh_interval, interlaced), +- m_drawable(0), m_context(0) ++ m_drawable(0), m_context(0), m_imp(0) + { ++#ifdef USING_OPENGL_VSYNC ++ m_imp = new OpenGLVideoSyncPrivate; ++#endif // USING_OPENGL_VSYNC + } + + OpenGLVideoSync::~OpenGLVideoSync() +@@ -457,6 +504,7 @@ + if (m_drawable) + X11S(XDestroyWindow(vo->XJ_disp, m_drawable)); + } ++ delete m_imp; + #endif /* USING_OPENGL_VSYNC */ + } + +@@ -503,6 +551,12 @@ + return false; + } + ++ if (!m_imp->funcsLoaded()) ++ { ++ VERBOSE(VB_PLAYBACK, QString("GL sync functions not found")); ++ return false; ++ } ++ + int attribList[] = {GLX_RGBA, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, +@@ -552,7 +606,7 @@ + if (ret != False) + { + unsigned int count; +- X11S(ret = glXGetVideoSyncSGI(&count)); ++ X11S(ret = m_imp->glXGetVideoSyncSGI(&count)); + if (ret == 0) + { + VERBOSE(VB_PLAYBACK, "Using OpenGLVideoSync"); +@@ -631,9 +685,9 @@ + + // Wait for a refresh so we start out synched + unsigned int count; +- err = glXGetVideoSyncSGI(&count); ++ err = m_imp->glXGetVideoSyncSGI(&count); + checkGLSyncError("OpenGLVideoSync::Start(): Frame Number Query", err); +- err = glXWaitVideoSyncSGI(2, (count+1)%2 ,&count); ++ err = m_imp->glXWaitVideoSyncSGI(2, (count+1)%2 ,&count); + checkGLSyncError("OpenGLVideoSync::Start(): A/V Sync", err); + + // Initialize next trigger +@@ -649,13 +703,13 @@ + OffsetTimeval(m_nexttrigger, sync_delay); + + unsigned int frameNum = 0; +- int err = glXGetVideoSyncSGI(&frameNum); ++ int err = m_imp->glXGetVideoSyncSGI(&frameNum); + checkGLSyncError("Frame Number Query", err); + + // Always sync to the next retrace execpt when we are very late. + if ((m_delay = CalcDelay()) > -(m_refresh_interval/2)) + { +- err = glXWaitVideoSyncSGI(2, (frameNum+1)%2 ,&frameNum); ++ err = m_imp->glXWaitVideoSyncSGI(2, (frameNum+1)%2 ,&frameNum); + checkGLSyncError(msg1, err); + m_delay = CalcDelay(); + } +@@ -664,7 +718,7 @@ + if (m_delay > 0) + { + uint n = m_delay / m_refresh_interval + 1; +- err = glXWaitVideoSyncSGI((n+1), (frameNum+n)%(n+1), &frameNum); ++ err = m_imp->glXWaitVideoSyncSGI((n+1), (frameNum+n)%(n+1), &frameNum); + checkGLSyncError(msg2, err); + m_delay = CalcDelay(); + } +Index: libs/libmythtv/vsync.h +=================================================================== +--- libs/libmythtv/vsync.h (revision 11251) ++++ libs/libmythtv/vsync.h (working copy) +@@ -214,6 +214,7 @@ + private: + GLXDrawable m_drawable; + GLXContext m_context; ++ class OpenGLVideoSyncPrivate *m_imp; + }; + + #ifdef __linux__ diff --git a/media-tv/mythtv/mythtv-0.20_p11244.ebuild b/media-tv/mythtv/mythtv-0.20_p11244.ebuild new file mode 100644 index 000000000000..049b7abab244 --- /dev/null +++ b/media-tv/mythtv/mythtv-0.20_p11244.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/mythtv-0.20_p11244.ebuild,v 1.1 2006/09/20 03:34:34 cardoe Exp $ + +inherit mythtv flag-o-matic multilib eutils debug qt3 + +DESCRIPTION="Homebrew PVR project" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" + +IUSE_VIDEO_CARDS="video_cards_i810 video_cards_nvidia video_cards_via" + +IUSE="alsa altivec backendonly crciprec debug dbox2 dts dvb dvd freebox frontendonly hdhomerun ieee1394 ivtv jack joystick lcd lirc mmx vorbis opengl perl xvmc ${IUSE_VIDEO_CARDS}" + +RDEPEND=">=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 + xvmc? ( + x11-libs/libXvMC + video_cards_nvidia? ( || ( x11-drivers/nvidia-drivers + x11-drivers/nvidia-legacy-drivers + media-video/nvidia-glx ) ) + video_cards_via? ( x11-drivers/xf86-video-via ) + video_cards_i810? ( x11-drivers/xf86-video-i810 ) + ) + $(qt_min_version 3.3) + dev-db/mysql + alsa? ( >=media-libs/alsa-lib-0.9 ) + dts? ( media-libs/libdts ) + dvd? ( media-libs/libdvdnav + media-libs/libdts ) + dvb? ( media-libs/libdvb media-tv/linuxtv-dvb-headers ) + ivtv? ( media-tv/ivtv ) + jack? ( media-sound/jack-audio-connection-kit ) + lcd? ( app-misc/lcdproc ) + lirc? ( app-misc/lirc ) + vorbis? ( media-libs/libvorbis ) + opengl? ( virtual/opengl ) + ieee1394? ( >=sys-libs/libraw1394-1.2.0 + >=sys-libs/libavc1394-0.5.0 + >=media-libs/libiec61883-1.0.0 ) + || ( >=net-misc/wget-1.9.1 >=media-tv/xmltv-0.5.34 )" + +DEPEND="${RDEPEND} + x11-apps/xinit" + +PDEPEND="=x11-themes/mythtv-themes-${MY_PV}*" + +S="${WORKDIR}/${PN}-${MY_PV}" + +MYTHTV_GROUPS="video,audio,tty" + +pkg_setup() { + + local rip=0 + if ! built_with_use -a =x11-libs/qt-3* mysql opengl ; then + echo + eerror "MythTV requires Qt to be built with mysql and opengl use flags enabled." + eerror "Please re-emerge =x11-libs/qt-3*, after having the use flags set." + echo + rip=1 + fi + + if use xvmc && use video_cards_nvidia; then + echo + ewarn "You enabled the 'xvmc' USE flag, you must have a GeForce 4 or" + ewarn "greater to use this. Otherwise, you'll have crashes with MythTV" + echo + fi + + if use xvmc && ! ( use video_cards_i810 || use video_cards_nvidia || use video_cards_via ); then + echo + eerror "You enabled the XvMC USE flag but did not configure VIDEO_CARDS with either" + eerror "an nVidia, Intel i810, or VIA video card." + echo + rip=1 + fi + + [[ $rip == 1 ]] && die "Please fix the above issues, before continuing." + + echo + einfo "This ebuild now uses a heavily stripped down version of your CFLAGS" + einfo "Don't complain because your -momfg-fast-speed CFLAG is being stripped" + einfo "Only additional CFLAG issues that will be addressed are for binary" + einfo "package building." + echo +} + +src_unpack() { + unpack ${A} + cd "${S}" + + #Fixes of the bugs found in the release + mythtv-fixes_patch + + # As needed fix since they don't know how to write qmake let alone a real + # make system + epatch "${FILESDIR}"/${PN}-${MY_PV}-as-needed.patch + + # Seriously... testing.. or maybe seeing if the OpenGL spec says these are + # public... or checking mesa before assuming they're there + epatch "${FILESDIR}"/${PN}-${MY_PV}-vsync.patch +} + +src_compile() { + local myconf="--prefix=/usr + --mandir=/usr/share/man + --libdir-name=$(get_libdir)" + use alsa || myconf="${myconf} --disable-audio-alsa" + use jack || myconf="${myconf} --disable-audio-jack" + use dts || myconf="${myconf} --disable-dts" + use ivtv || myconf="${myconf} --disable-ivtv" + use freebox || myconf="${myconf} --disable-freebox" + use dbox2 || myconf="${myconf} --disable-dbox2" + use hdhomerun || myconf="${myconf} --disable-hdhomerun" + use crciprec || myconf="${myconf} --disable-crciprec" + use altivec || myconf="${myconf} --disable-altivec" + use xvmc && myconf="${myconf} --enable-xvmc" + use xvmc && use video_cards_via && myconf="${myconf} --enable-xvmc-pro" + use perl && myconf="${myconf} --with-bindings=perl" + myconf="${myconf} + --disable-audio-arts + $(use_enable lirc) + $(use_enable joystick joystick-menu) + $(use_enable dvb) + --dvb-path=/usr/include + $(use_enable opengl opengl-vsync) + $(use_enable ieee1394 firewire) + --enable-xrandr + --enable-xv + --disable-directfb + --enable-x11 + --enable-proc-opt" + + if use mmx || use amd64; then + myconf="${myconf} --enable-mmx" + else + myconf="${myconf} --disable-mmx" + fi + + if use debug; then + myconf="${myconf} --compile-type=debug" + else + myconf="${myconf} --compile-type=release" + fi + + ## CFLAG cleaning so it compiles + MARCH=$(get-flag "march") + MTUNE=$(get-flag "mtune") + MCPU=$(get-flag "mcpu") + strip-flags + filter-flags "-march=*" "-mtune=*" "-mcpu=*" + filter-flags "-O" "-O?" + + if [[ -n "${MARCH}" ]]; then + myconf="${myconf} --arch=${MARCH}" + fi + if [[ -n "${MTUNE}" ]]; then + myconf="${myconf} --tune=${MTUNE}" + fi + if [[ -n "${MCPU}" ]]; then + myconf="${myconf} --cpu=${MCPU}" + fi + +# myconf="${myconf} --extra-cxxflags=\"${CXXFLAGS}\" --extra-cflags=\"${CFLAGS}\"" + hasq distcc ${FEATURES} || myconf="${myconf} --disable-distcc" + hasq ccache ${FEATURES} || myconf="${myconf} --disable-ccache" + + if use frontendonly; then + ##Backend Removal + ewarn + ewarn "You are using the experimental feature for only installing the frontend." + ewarn "You will not get Gentoo support nor support from MythTV upstream for this." + ewarn "If this breaks, you own both pieces." + ewarn + myconf="${myconf} --disable-backend" + fi + + if use backendonly; then + ##Frontend Removal + ewarn + ewarn "You are using the experimental feature for only installing the backend." + ewarn "You will not get Gentoo support nor support from MythTV upstream for this." + ewarn "If this breaks, you own both pieces." + ewarn + myconf="${myconf} --disable-frontend" + fi + + # let MythTV come up with our CFLAGS. Upstream will support this + CFLAGS="" + CXXFLAGS="" + einfo "Running ./configure ${myconf}" + ./configure ${myconf} || die "configure died" + + ${QTDIR}/bin/qmake QMAKE=${QTDIR}/bin/qmake -o "Makefile" mythtv.pro || die "qmake failed" + emake || die "emake failed" + +} + +src_install() { + + einstall INSTALL_ROOT="${D}" || die "install failed" + for doc in AUTHORS FAQ UPGRADING ChangeLog README; do + test -e "${doc}" && dodoc ${doc} + done + + if ! use frontendonly; then + 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 + fi + + dodoc keys.txt docs/*.{txt,pdf} + dohtml docs/*.html + + keepdir /etc/mythtv + chown -R mythtv "${D}"/etc/mythtv + keepdir /var/log/mythtv + chown -R mythtv "${D}"/var/log/mythtv + + insinto /usr/share/mythtv/contrib + doins contrib/* +} + +pkg_preinst() { + enewuser mythtv -1 "-1" -1 ${MYTHTV_GROUPS} || die "Problem adding mythtv user" + usermod -a -G ${MYTHTV_GROUPS} mythtv +} + +pkg_postinst() { + if ! use backendonly; then + echo + einfo "Want mythfrontend to start automatically? Run the following:" + echo "crontab -e -u mythtv" + einfo "Add add the following:" + echo "* * * * * /usr/bin/runmythfe &" + fi + echo + einfo "To always have MythBackend running and available run the following:" + echo "rc-update add mythbackend default" + echo + ewarn "Your recordings folder must be owned by the user 'mythtv' now" + echo "chown -R mythtv /path/to/store" +} + |