mythtv apparently does not compile using qt4, and is not to be ported to use qt4 in the short term. I have both qt-3.3.4-r8 and qt-4.0.1 emerged on my system. When I try to re-emerge mythtv, it incorrectly chooses qt4 to compile/link with. The reason I'm trying to re-emerge mythtv is that I upgraded to mysql 5.0. I whacked all the mysql databases on my system and am rebuilding them. Mythtv is the last one. Reproducible: Always Steps to Reproduce: 1. Have qt4 emerged on your system. 2. Try to re-emerge mythtv 3. Actual Results: Here's the output from 'equery list qt': # equery list qt [ Searching for package 'qt' in all categories among: ] * installed packages [I--] [ ] x11-libs/qt-3.3.4-r8 (3) [I--] [ ] x11-libs/qt-4.0.1 (4) # And, here's the beginning part of an 'emerge mythtv': # emerge mythtv Calculating dependencies * You enabled the 'nvidia' USE flag, you must have a GeForce 4 or * greater to use this. Otherwise, you'll have crashes with MythTV * * This ebuild now uses a heavily stripped down version of your CFLAGS * Don't complain because your -momfg-fast-speed CFLAG is being stripp ed * Only additional CFLAG issues that will be addressed are for binary * package building. * >>> Unpacking source... >>> Unpacking mythtv-0.18.1.tar.bz2 to /var/tmp/portage/mythtv-0.18.1-r2/work * Applying mythtv-0.18.1-opengl-fix.patch ... [ ok ] * Applying mythtv-0.18.1-cputypes-configure.patch ... [ ok ] >>> Source unpacked. ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --inf odir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var /lib --disable-altivec --enable-audio-oss --enable-audio-alsa --disable-audio-ar ts --enable-audio-jack --disable-lirc --disable-joystick-menu --disable-xvmc-vld --enable-dvb --enable-dvb-eit --dvb-path=/usr/include --enable-opengl-vsync --e nable-vorbis --enable-xvmc --enable-xv --disable-firewire --disable-directfb --e nable-x11 --enable-proc-opt --enable-mmx --compile-type=release --arch=pentium3 --extra-cflags=-pipe --disable-distcc --disable-ccache --build=i686-pc-linux-gnu WARNING: include the output of ./configure along with any bug report, when using a processor optimized build. Warning: DVB location points into kernel (ok if kernel >= 2.6.11) # Basic Settings Compile type release Compiler cache no DistCC no Install prefix /usr CPU x86 (pentium3) Big Endian no MMX enabled yes Vector Builtins no # Input Support Joystick menu no lirc support no ivtv support yes FireWire support no DVB support yes [/usr/include] # Sound Output Support OSS support yes ALSA support yes aRts support no JACK support yes # Video Output Support x11 support yes xrandr support yes xv support yes XvMC support yes XvMC VLD support no OpenGL vsync yes DirectFB no Creating config.mak and config.h cd libs && qmake libs.pro -o Makefile cd filters && qmake filters.pro -o Makefile cd programs && qmake programs.pro -o Makefile cd themes && qmake themes.pro -o Makefile cd setup && qmake setup.pro -o Makefile cd i18n && qmake i18n.pro -o Makefile cd libs && make -f Makefile make[1]: Entering directory `/var/tmp/portage/mythtv-0.18.1-r2/work/mythtv-0.18. 1/libs' cd libavcodec && /usr/bin/qmake libavcodec.pro -unix cd libavformat && /usr/bin/qmake libavformat.pro -unix cd libmythsamplerate && /usr/bin/qmake libmythsamplerate.pro -unix cd libmythsoundtouch && /usr/bin/qmake libmythsoundtouch.pro -unix cd libmythmpeg2 && /usr/bin/qmake libmythmpeg2.pro -unix cd libmyth && /usr/bin/qmake libmyth.pro -unix cd libmythtv && /usr/bin/qmake libmythtv.pro -unix cd libavcodec && make make[2]: Entering directory `/var/tmp/portage/mythtv-0.18.1-r2/work/mythtv-0.18. 1/libs/libavcodec' gcc -c -pipe -march=pentium3 -pipe -O3 -Wall -Wno-switch -fomit-frame-pointer -w -D_REENTRANT -DMMX -Di386 -DUSING_IVTV -DUSING_DVB -DUSING_DVB_EIT -DUSING_XRAN DR -DUSING_XVMC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DHAVE_AV _CONFIG_H -D_LARGEFILE_SOURCE -DHAVE_XVMC -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_L IB -DQT_SHARED -I/usr/share/doc/qt-4.0.1/mkspecs/linux-g++ -I. -I/usr/include/qt 4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I.. -I../.. -I. -I. -o uti ls.o utils.c Expected Results: As mythtv requires qt3, it should have used that to compile and link with. # emerge info Portage 2.0.53_rc7 (default-linux/x86/2005.1, gcc-3.4.4, glibc-2.3.5-r3, 2.6.14-rc3 i686) ================================================================= System uname: 2.6.14-rc3 i686 Pentium III (Coppermine) Gentoo Base System version 1.12.0_pre10 dev-lang/python: 2.2.3-r5, 2.3.5, 2.4.2 sys-apps/sandbox: 1.2.13 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.20-r1 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /etc/mail/dspam /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/bind /var/qmail/control /var/run/dspam" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://prometheus.cs.wmich.edu/gentoo http://gentoo.mirrors.tds.net/gentoo http://gentoo.chem.wisc.edu/gentoo/" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="x86 X aac acl acpi alsa apache2 apm audiofile avi berkdb bitmap-fonts bonobo bzip2 cdr crypt cscope cups curl dba divx4linux doc dvb dvd dvdr dvdread eds emboss encode esd ethereal exif expat fam ffmpeg flac foomaticdb fortran gd gdbm gif glut gmp gnome gpm gstreamer gtk gtk2 gtkhtml guile idn imagemagick imlib ipv6 jack java jpeg junit kde lcms ldap libg++ libwww mad mhash mikmod mmx mng motif mp3 mpeg mysql ncurses nls nptl nvidia ogg oggvorbis openal opengl oss pam pcre pdflib perl png python qt quicktime readline samba scanner sdl slang spell sse ssl svga tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts udev usb vorbis xine xml xml2 xmms xv xvid zeroconf zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Ok, I don't think I can actually blame this on the ebuild. It looks to be more like problems with mythtv and the way that it calls qmake. I'm thinking that if I linked /usr/bin/qmake to /usr/qt/3/bin/qmake, that it'd probably emerge ok. Then revert /usr/bin/qmake back to normal again. If anyone tries this, please drop a comment here.
I gave this a try last night and it worked. I symlinked /usr/bin/qmake to /usr/qt/3/bin/qmake and then did the re-emerge of mythtv and it succeeded. I them moved my saved copy of the real /usr/bin/qmake back and things are more or less back to normal. Not normal because mythbackend still can't connect to the database due to: # mythbackend QSqlDatabase: QMYSQL3 driver not loaded QSqlDatabase: available drivers: 2005-12-01 07:21:41.817 New DB connection, total: 1 2005-12-01 07:21:41.818 Unable to connect to database! 2005-12-01 07:21:41.818 No error type from QSqlError? Strange... 2005-12-01 07:21:41.819 Failed to init MythContext, exiting.
Ok, I believe I have my qt/mysql problem figured out now. I upgraded to mysql 5, and rebuilt qt, ran revdep-rebuild, etc etc... However, mythtv was still using qt-3.3.4-r8 (as it should have been doing) - however, the sqlplugin for this version of qt was still referencing the *old* libmysqlclient.so... which no longer existed. Finally it dawned on me that revdep-rebuild wasn't catching the dependency and hadn't rebuilt qt-3.3.4-r8. I did this manually, and now mythbackend can at least connect to the mysql database again. Problem solved. Though - this problem with revdep-rebuild not catching the issue should probably be a separate bug. This bug I'll leave open as I think that the mythtv should either: 1. upstream mythtv should be fixed to properly call qmake 2. the ebuild should patch the mythtv source to properly call qmake It does it wrong on systems that have both qt-3 and qt-4 installed. And of course, mythtv won't compile against qt-4.
*** This bug has been marked as a duplicate of 113419 ***