Qt4 / Phonon Poll

Michael Dickens michaelld at macports.org
Tue Aug 31 08:37:06 PDT 2010

This is the last poll (for now :); sorry for so many, but I have
a number of changes that I'd like to make to various ports, and
I'd like to believe that I'm not significantly messing anyone up
in the process and/or that these changes are sane.

In this poll, I'd like to know if there are users / developers
who actually use 'phonon' directly -- either as installed by Qt4
or by the Phonon port.  If so, do you use the QuickTime 7 (QT7)
audio back-end to Phonon (or even know what it is)?

The reason I'm asking is that the version of Phonon installed by
Qt4 is a '3rd party' extension and is out of date for what is
needed by the latest KDE release.  Hence I'd like to disable
phonon in Qt4 and require the use of the Phonon port instead --
these changes are quite simple.  This change has the added
benefit of reducing compile time for Qt4, which for most of us is
at least 1 hour if not much of a day (or night).  I can easily
get the "front-end" of the latest version of Phonon to work, but
getting the QT7 back-end to work might be a bit of a challenge;
hence the question as to whether anyone knows what it is and/or
uses it.  If not, then it's simple enough to make the Qt4 /
Phonon changes and just ignore this back-end.

Read on if you -really- want to know more ... and, yes, I know
this is above and beyond the basic scripting that MacPorts
developers generally provide; that's just how I work :)


-All- KDE ports current use the KDE-1.0 portgroup, which requires
qt4-mac to be installed so-as to provide Phonon (not
qt4-mac-devel, and there's no good way to make this change
without either messing around significantly with the qt4 ports or
by creating a new portgroup).  qt4-mac (4.6.3) installs Phonon
version 4.3.50, while qt4-mac-devel (4.7.0b2) installs Phonon
version 4.3.90.  The Phonon release is currently at version
4.4.2.  KDE 4.5.0 was recently released, and requires Phonon
version 4.3.90 or newer (so, qt4-mac-devel right now, until Qt
4.7.0 is release).  By separating out Phonon from Qt4, we think
we can update the KDE-1.0 portgroup to work with both KDE 4.4.X
as well as 4.5.X -- a robust solution to this KDE upgrade

Phonon is written in C++ and uses 'automoc' to handle certain
meta-object code generation, via CMake and its automoc extension.
 This CMake extension searches the list of provided MOC files to
make sure they have the correct C++ extension (.cc, .C, .c++,
.cxx, maybe others).  The QT7 backend is written in objective-c++
(so, .mm extension), yet it also requires 'automoc' to generate
the MOC files for proper compilation -- but, neither the CMake
automoc extension nor automoc itself will not work with .mm
extension files.  Qt4 solves this issue by using QMake (and
related files) instead of CMake, and that is certainly an option
that I haven't explored mainly because of the potential
complexity and non-robustness of it (doing so will work for the
current Phonon version, and needs to be re-checked for each new
version).  I have figured out a hack to get the QT7 backend to
compile on Mac OS X 10.5, but this hack doesn't seem to work on
10.6 (and, I don't have 10.6 installed far enough to figure out
what the issue really is).

If nobody cares about the QT7 backend then it's simple enough to
not include it & then we can just go forth with the Qt4 and KDE
portgroup changes.

More information about the macports-users mailing list