About Phonon in Qt 4.6.1

Alessandro Ghersi alessandro-ghersi at kubuntu.org
Fri Jan 29 23:32:59 GMT 2010


Hi, Phonon headers path is changed in Qt 4.6.1, this change is made by Thiago:

****************************************************************************
* Important Behavior Changes *
****************************************************************************

 - Phonon
   * Include headers have been changed. The only official method for
     including Phonon headers is <phonon/ClassName> or
     <phonon/classname.h>. This change was necessary because of
     frameworks on Mac.

     Compatibility is provided for <Phonon/*> includes, but is not
     guaranteed to work. Including <phonon> and <Phonon> is not
     supported.

****************************************************************************

At the moment, we built Qt + Sandsmark's patch to ensure Phonon is update with 
KDE's phonon, since KDE wants that. KDE developer doesn't want comply the 
change made by Thiago for the Phonon headers. So, kdebase-runtime will fail to 
build against Qt 4.6.1, as you see:

http://pastebin.ca/1770960

because runtime looking for Phonon/ObjectDescription instead of 
phonon/ObjectDescription

I talk about this issue with Thiago, I paste here the conversation:

####

<Lex79> hi thiago I'm sorry for the disturb, I think you are always busy :) 
I'm kubuntu developer and I write in #kde-devel the issue that it's come from 
building kdebase-runtime against Qt 4.6.1
<Lex79> I don't know if you' read that, btw:
<Lex79> <Lex79> Hi, kdebase-runtime in branch, is updated to comply this 
change in Qt 4.6.1 http://pastebin.ca/1770956 ?
<Lex79> <Lex79> it seems not since I have this issue to building runtime 
against Qt 4.6.1 http://pastebin.ca/1770960
<Lex79> <Lex79> the problem is Phonon/ObjectDescription and Phonon/* that are 
changed to phonon/* (lowercase)
<Lex79> <Lex79> in qt 4.6.1
<Lex79> <Lex79> in Kubuntu we building phonon from Qt and we have sandsmark 
patch for KDE phonon
<Lex79> <Lex79> btw the phonon headers are those http://git.debian.org/?p=pkg-
kde/qt4-x11.git;a=blob_plain;f=debian/libphonon-
dev.install;hb=3b139eb815fc90cc7ad18c22038e449a23582196
<Lex79> <Lex79> and come from phonon in Qt 4.6.1
<Lex79> Thanks
<thiago> you've got the description
<thiago> it has to be a lowercase p
<Lex79> I'm come back, well I know, but seems kde developers doesn't
<Lex79> and I'm not a kde developer :P
<Lex79> can you poke someone to fix that?
<Lex79> in kdebase-runtime I mean
<thiago> it won't be fixed
<thiago> it's a source-incompatible change
<thiago> I've notified kde-multimedia that Qt was going to break source 
compatibility
<thiago> KDE has not pronounced itself on the subject.
<Lex79> uhmm perfect
<Lex79> so it's a distro problem now
<thiago> I recommend you use KDE's Phonon package
<thiago> it's more up-to-date anyway
<Lex79> we use Qt phonon
<Lex79> with sandsmark patch
<thiago> most KDE apps and KDE developers don't ever test or use Qt's Phonon
<thiago> you're asking for trouble
<Lex79> so, what is your advice? Build KDE core packages against KDE's phonon? 
and for apps which use Qt's phonon?
<Lex79> it's a bit mess....
<thiago> none
<thiago> just use Phonon everywhere
<thiago> I meant KDE's Phonon everywhere
<Lex79> well, thanks, I will talk with others Kubuntu developers
<Lex79> thanks
<thiago> you're welcome
<Lex79> just for to be sure, you mean also build Qt's Phonon but not install 
it in the distro, and don't build anything against it?  right?
<thiago> if you had the option, I'd recommend build Qt with -no-phonon
<Lex79> ok
<thiago> but if you do that, QtWebKit will be built without <audio> and 
<video> support
<thiago> so don't do it
<thiago> build Qt's Phonon, but don't install it
<Lex79> uhm, ok :)

#####

Premise:
1) I know that KDE's Phonon will be part of Qt 4.7.0.
2) Wait a patch from one only KDE developer (sandsmark) it's a bit mess for 
every Qt bugfixes release.

So, what we do?
1) The easy fix is do the symlinks in libphonon-dev.install in qt4-x11 
package.
2) Do the patch for kdebase-runtime and anywhere is needs
3) Do what Thiago said (build KDE's Phonon and build all packages against 
that, build Qt's Phonon for webkit but don't install Phonon from Qt)

I think we need a decision...any suggestions?

Thanks
Lex





More information about the kubuntu-devel mailing list