summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-tv/mythtv')
-rw-r--r--media-tv/mythtv/ChangeLog10
-rw-r--r--media-tv/mythtv/files/digest-mythtv-0.20_p112446
-rw-r--r--media-tv/mythtv/files/mythtv-0.20-vsync.patch154
-rw-r--r--media-tv/mythtv/mythtv-0.20_p11244.ebuild257
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"
+}
+