Mythtv depends on >=x11-libs/qt-3.1. It should check X use flag instead and either depend on qt or embedded-qt. Maybe there should probably be a QT virtual.
Created attachment 33204 [details, diff] mythtv-0.15.1.ebuild.patch ok this patch fixes compiling with qt/e and a few typos in the ebuild.
added
Unfortunately this broke mythtv on AMD64, since qt-embedded doesn't have amd64 or ~amd64 keyword yet: # emerge -pv mythtv These are the packages that I would merge, in order: Calculating dependencies \ !!! all ebuilds that could satisfy ">=x11-libs/qt-embedded-3.1" have been masked. !!! possible candidates are: - x11-libs/qt-embedded-3.3.2-r1 (masked by: missing keyword) - x11-libs/qt-embedded-3.1.2 (masked by: missing keyword) - x11-libs/qt-embedded-3.3.2 (masked by: missing keyword) !!! (dependency required by "media-tv/mythtv-0.15.1-r1" [ebuild]) !!! Error calculating dependencies. Please correct. # emerge -s mythtv Searching... [ Results for search key : mythtv ] [ Applications found : 2 ] * media-tv/mythtv Latest version available: 0.15.1-r1 Latest version installed: 0.15.1 Size of downloaded files: 6,063 kB Homepage: http://www.mythtv.org/ Description: Homebrew PVR project. License: GPL-2 # emerge -s qt-embedded Searching... [ Results for search key : qt-embedded ] [ Applications found : 1 ] * x11-libs/qt-embedded [ Masked ] Latest version available: 3.3.2-r1 Latest version installed: [ Not Installed ] Size of downloaded files: 19,159 kB Homepage: http://www.trolltech.com/ Description: QT version 3.3.2 License: QPL-1.0 | GPL-2 emerge info: Portage 2.0.50-r8 (gcc34-amd64-2004.1, gcc-3.4.0, glibc-2.3.4.20040605-r0, 2.6.7-gentoo-r8) ================================================================= System uname: 2.6.7-gentoo-r8 x86_64 4 Gentoo Base System version 1.5.1 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-O2 -march=k8 -fomit-frame-pointer -momit-leaf-frame-pointer -fweb -frename-registers -pipe" CHOST="x86_64-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=k8 -fomit-frame-pointer -momit-leaf-frame-pointer -fweb -frename-registers -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.tiscali.nl/pub/mirror/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage" USE="S3TC X aac aalib acpi acpi4linux alsa amd64 apm arts asterisk audiofile avi berkdb cdr chroot crypt cups dga directfb divx4linux dv dvd dvdr encode faad fbcon fbdev ffmpeg fftw flac flash foomaticdb gd gdbm ggi gif gphoto2 gpm gstreamer gtk2 icq ieee1394 imagemagick imap imlib imlib2 irmc jabber java javascript joystick jpeg kde kerberos krb4 lcd lcms ldap libcaca libg++ libwww linguas_en_GB linguas_nl lirc live mad mbox mikmod mng motif mozdomi mozilla mozp3p mozsvg mozxmlterm mpeg mpeg4 mpi msn mysql nas ncurses net nls nptl oav offensive oggvorbis opengl opie oss pam pda pdflib perl pic plotutils png python qt quicktime readline samba sasl sdl slang slp speex spell ssl tcltk tcpd tetex theora tiff transcode truetype usb v4l v4l2 videos wmf xml2 xmms xosd xprint xrandr xv xvid zlib zvbi"
This only happens if you have directfb in your USE flags. I will add ~amd64 to qt-e anyway, but this probably isn't what you want as it will emerge qt-embedded. Unless you really are running directfb mythtv on an amd64?
Okay, I'm afraid I still have problems when I have directfb in USE: # emerge -av mythtv These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] x11-libs/qt-embedded-3.3.2-r1 -build -debug -doc +gif +mysql -odbc +opengl -postgres 19,159 kB [ebuild U ] media-tv/mythtv-0.15.1-r1 [0.15.1] +alsa +arts -cle266 +directfb -dvb +lcd +lirc -nvidia +opengl 0 kB Total size of downloads: 19,159 kB Do you want me to merge these packages? [Yes/No] y >>> emerge (1 of 2) x11-libs/qt-embedded-3.3.2-r1 to / >>> Downloading ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo/distfiles/qt-embedded-free-3.3.2.tar.bz2 --14:20:25-- ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo/distfiles/qt-embedded-free-3.3.2.tar.bz2 => `/usr/portage/distfiles/qt-embedded-free-3.3.2.tar.bz2' Resolving ftp.snt.utwente.nl... 130.89.175.1 Connecting to ftp.snt.utwente.nl[130.89.175.1]:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /pub/os/linux/gentoo/distfiles ... done. ==> PASV ... done. ==> RETR qt-embedded-free-3.3.2.tar.bz2 ... done. Length: 19,619,660 (unauthoritative) 100%[===============================================================================================>] 19,619,660 479.81K/s ETA 00:00 14:21:09 (441.11 KB/s) - `/usr/portage/distfiles/qt-embedded-free-3.3.2.tar.bz2' saved [19619660] >>> md5 src_uri ;-) qt-embedded-free-3.3.2.tar.bz2 * Note: this will build a rather bloated qt/e, with all features enabled. * It may be suitable for testing, but definitely not for real embedded systems * where memory is precious. I advise you select your own featureset (e.g. by * editing this ebuild) if building for such a system. >>> Unpacking source... >>> Unpacking qt-embedded-free-3.3.2.tar.bz2 to /var/tmp/portage/qt-embedded-3.3.2-r1/work >>> Source unpacked. gif mysql The specified system/compiler is not supported: /var/tmp/portage/qt-embedded-3.3.2-r1/work/qt-embedded-free-3.3.2/mkspecs/generic Please see the PLATFORMS file for a complete list. !!! ERROR: x11-libs/qt-embedded-3.3.2-r1 failed. !!! Function src_compile, Line 63, Exitcode 2 !!! (no error message) I've now removed directfb, and mythtv starts to compile fine. It doesn't finish succesfully, but I'm guessing that's another bug :P g++ -c -pipe `artsc-config --cflags` -Wall -W `freetype-config --cflags` -D_REENTRANT -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DUSING_IVTV -DLCD_DEVICE -DUSING_OPENGL_VSYNC -DUSING_XV -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I/usr/include -I../libmyth -I.. -Idvbdev -I../libavcodec -I/usr/qt/3/include -o RTjpegN.o RTjpegN.cpp RTjpegN.cpp: In member function `int RTjpeg::b2s(int16_t*, int8_t*, uint8_t)': RTjpegN.cpp:136: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:145: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:174: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:186: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:203: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:224: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:234: error: ISO C++ forbids cast to non-reference type used as lvalue RTjpegN.cpp:241: error: ISO C++ forbids cast to non-reference type used as lvalue make[2]: *** [RTjpegN.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/mythtv-0.15.1-r1/work/mythtv-0.15.1/libs/libmythtv' make[1]: *** [sub-libmythtv] Error 2 make[1]: Leaving directory `/var/tmp/portage/mythtv-0.15.1-r1/work/mythtv-0.15.1/libs' make: *** [sub-libs] Error 2 !!! ERROR: media-tv/mythtv-0.15.1-r1 failed. !!! Function src_compile, Line 153, Exitcode 2 !!! compile problem
Alright, I can't test this myself, but this should work if you build for embedded x86 platform on amd64. In qt-embedded-3.3.2-r1.ebuild change the line: use x86 && myconf="$myconf -embedded x86" || myconf="$myconf -xplatform generic -embedded generic" to: use x86 && myconf="$myconf -embedded x86" || use amd64 && myconf="$myco\ nf -embedded x86" || myconf="$myconf -xplatform generic -embedded generic"
The 0.15.1-r1 ebuild in portage uses use flag X but it IUSE doesn't include X. I think thats a bug. I'm not sure I like the logic of the ebuild. Right now I seem to have X and directfb use flags set (even though I didn't set directfb myself in make.conf and its not in make.default---how can that happen?) and still this ebuild wants to install qt-e. Why should the directfb use flag "win" over the X flag? mplayer for example uses both the X and directfb use flags to enable support for both X and DirectFB. I think I agree with the originally poster: why not make mythtv depend on a KDE virtual and then decide whether its qt or qt-e at that level. Also, can someone explain how the following happens: Here is partial output of euse -i: X [+] [D] [G] Adds support for X11 directfb [-] [ ] [G] Adds support for DirectFB layer (library for FB devices) now here is the results of emerge -vp mythtv: [ebuild N ] x11-libs/qt-embedded-3.3.2-r1 -build -debug -doc +gif +mysql -odbc +opengl -postgres 19,159 kB [ebuild U ] media-tv/mythtv-0.15.1-r1 [0.15.1] +alsa +arts -cle266 +directfb -dvb -lcd +lirc -nvidia +opengl 0 kB how does the directfb use flag get set? its not set according to euse but then it is according to emerge!
Sorry should have read "QT virtual"
Added X to IUSE. Not sure about why directfb is being set, but directfb doesnt "win" against X. If you set directfb and X they should both be detected by mythtv and compiled. I'm not sure if this works, as I haven't tested it. Directfb is a layer over the framebuffer device. If you want an X version of myth, and not a framebuffer version, set USE="-directfb X". If you want a directfb version of mythtv (which is what you are saying if you have directfb in USE) then qt-embedded has to be a dependency, because it is the only version of QT that runs on a framebuffer device. I agree that the QT virtual would probably still be a good idea.
I got -r1 to compile when I removed directfb from the ebuild USE, and added X. unmerged qt-embedded. In make.conf to USE add -directfb. Then mythtv compiled. Thanks Chris.