[mythtv] Prep for compiling on QT4

Colin Cross colin at colincross.com
Wed Oct 26 19:53:55 UTC 2005


I've started trying to get myth to compile on QT4.  So far, I have
libmyth compiling with no errors.

I put three patches at http://birch.colincross.com/myth-qt4/
mythtv-libmyth-qt4prep.diff: these changes are compatible with qt3 and
could be commited to SVN
<http://birch.colincross.com/myth-qt4/mythtv-libmyth-qt4prep.diff>.
Most of the changes are converting cerr's to VERBOSE.  In QT4, cerr <<
QString("test") doesn't work, but the VERBOSE macro can be fixed by
using a QTextStream.  A few changes convert QStringList list =
QString("test") to QStringList list = QStringList(QString("test")), and
the rest should be converting constants like black to Qt::black, because
QWidget no long inherits from the Qt class (which is actually a
namespace in QT4).  Only changes libmyth, I haven't gotten to the rest yet.

mythtv-qt3to4.diff
<http://birch.colincross.com/myth-qt4/mythtv-qt3to4.diff>:  These
changes are created by QT4's automatic porting tool, qt3to4, after the
previous patch has been applied.  qt3to4 turns on qt3support in the .pro
files, and renames lots of classes like QSocket to Q3Socket when the
class no longer exists in the base QT4 libraries, but still exists in
the QT3 support library.  This affects the entire myth tree.

mythtv-libmyth-qt4-changes.diff
<http://birch.colincross.com/myth-qt4/mythtv-libmyth-qt4-changes.diff>:
These are the rest of the changes needed to get libmyth to compile.
Replaces features that have been removed or APIs that have changed and
are not in the QT3 support libraries.  This code compiles, but obviously
has not been tested since the rest of myth doesn't compile yet.  Its
mostly there to give an idea of what will have to be changed for QT4
support.

For anyone who is interested, I have some QT4 RPMs that work on Fedora
Core 2 and 3 (at least), that mostly don't clobber existing QT3
installs.  Only the devel tools like qmake, moc, uic, linguist, etc. get
overwritten in /usr/bin, but they are still available through
/usr/lib/qt-3.3/bin, although I haven't been able to get myth to compile
under QT3 by using /usr/lib/qt3-3/bin/qmake as it still picks up the QT4
qmake for subdirectories .  You can find the RPMs at
http://rpm.colincross.com/



More information about the mythtv-dev mailing list