Qt 4.7

Hey guys im trying to get Qt creator up and running in haiku but i needed Qt 4.7, i cant seem to compile it without it erroring out, any one know if there are any Qt 4.7 prebuilt binaries for alpha two available at the moment? if any one has a copy of them pre build i would be forever grateful if you sent them my way.

Thanks

The Haiku Qt port is right now getting updated, but no binary of the 4.7 version is out yet. You might want to check the port’s website out: http://qt-haiku.ru/

Well i actually downloaded the Qt 4.7 from there git and tried to compile it and it failed, is there anyone out there that has successfully built the source that would be willing to share it.

I built and use Qt 4.5.1 svn130 (latest). Qt 4.7 is being worked on. Not ready yet. Use 4.5.1 for now until developers say 4.7 is ready.

Qt Creator requires ptrace. Ptrace not available in Haiku. You would have to rewrite the ptrace code for qt-creator. There is patch available but it ignores ptrace making qt-creator unstable and very likely crash or freeze.

No qt-creator until Haiku gets ptrace support (or rewrite ptrace code in qt-creator). Use Qt 4.5.1 for now.

Thanks for the reply, any notion of when they will have some sort of release for 4.7 on Qt? i have an application that i built in OS X that i want to compile on my Haiku box but apparently i need Qt 4.7, its a bit of show stopper not having it… the whole point of a library being cross platform is that i can use multiple applications coded the same way on various different platforms.

Impossible to know when Qt 4.7 will be available for Haiku. Developers are working on it and when ready they will make an announcement. Maybe there is an older version of the application you can compile with Qt 4.5? Otherwise, you’ll have to wait for actual release.

Hey, well its my application so i could just down grade the version of Qt to 4.5 and rebuild it on that?

You can try compiling it with Qt4.5 and see what happens. It may compile or give you errors. Which depends if you use any of the features (newer code) of Qt4.7

At least with any errors you can go back and change the code if you want to. Worth compiling it with Qt4.5 to see what happens. I would then comment out any parts that give errors to see if you can get it to fully compile and determine which parts have to be fixed to make it 4.5 compliant. I would expect few changes if at all but see for yourself.

Haiku’s Qt has no OpenGL, no phonon backend (gstreamer) - for video/audio playback, no glib but everything else should work.

Strange… since glib already been ported. and gstreamer is very easy too

I’d avoid Gstreamer… Haiku has the media_server. Phonon → media_server is better than Phonon → Gstreamer → media_server I think.

Thanks for the advice, i think i just might make my own small framework, im only using the QtWebKit and thus a very very small subset of Qt so it would be best to build my own.

They built Qt without those extra libraries (gstreamer, glib, etc.). I have newer Qt built without those libs but I want to include gstreamer to see if I can get video&audio backend to work. gstreamer is supposed to be used for the phonon backend to play multimedia files. Not sure what glib is used for in Qt4.

Phonon I am fairly sure is only for KDE (ie: don’t believe it compiles without KDE). I tried to build it but was asking for KDE stuff. Gstreamer is OS independent.
Wikipedia:
Phonon is the multimedia API provided by Qt and is the standard abstraction for handling multimedia streams within the KDE 4 software collection.

Biggest problem with libraries is that they can be dependent on other libraries which sometimes are only for KDE or GTK.

Sure you can build your own framework if you like to become Qt independent. Or you can try with Qt 4.5 and include only Qt library you use (ie: QtWebKit in application lib folder). Your choice.

Does QtWebKit not require stuff (dependencies) from the rest of the Qt Library?

You’re right. It would require some of the other Qt libraries too (QtGui, QtNetwork, QtCore). All of these are available on Haiku. Arora uses QtWebKit.
http://haikuware.com/remository/view-details/internet-network/web-browsers/arora

WebPositive uses WebKit (regular, non Qt version) and provides you another option too.
you will see libwebkit.so in lib folder under WebPositive.

Source here:
http://mmlr.dyndns.org/browser

So, you have some choice: QtWebKit, WebKit or your own framework. :slight_smile:

Are you really sure about that? One of KDE’s stated goals when making Phonon was that it would be multimedia framework-independent, and in KDE you can switch between Gstreamer and Xine (I believe VLC and MPlayer backends can be added somehow too, but I couldn’t find that in my distro). It sounds pretty odd that either Qt or KDE would depend on Gstreamer, though I’m not a developer so I can’t proof-check the code.

You could be right about KDE+Phonon Denise.
http://packages.ubuntu.com/lucid/libphonon4

Looks like Phonon depends on Qt. I actually see libphonon with Qt.

Source for: Phonon + VLC & Mplayer phonon backends:
http://www.gitorious.org/phonon/

I built Mplayer phonon backend but Qt does not look for it. I will have to look into it more. I need to see what others say about using mplayer phonon backend in Qt. I do not know if this backend will work in Qt.

Qt + Gstreamer phonon backend information:
http://doc.trolltech.com/4.5/phonon-overview.html#linux

Qt document says to use Gstreamer for the backend. That’s what Qt looks for.

I found this in the documentation you sent:

"Backends

The multimedia functionality is not implemented by Phonon itself, but by a back end - often also referred to as an engine. This includes connecting to, managing, and driving the underlying hardware or intermediate technology. For the programmer, this implies that the media nodes, e.g., media objects, processors, and sinks, are produced by the back end. Also, it is responsible for building the graph, i.e., connecting the nodes.

The backends of Qt use the media systems DirectShow (which requires DirectX) on Windows, QuickTime on Mac, and GStreamer on Linux. The functionality provided on the different platforms are dependent on these underlying systems and may vary somewhat, e.g., in the media formats supported.

Backends expose information about the underlying system. It can tell which media formats are supported, e.g., AVI, mp3, or OGG.

A user can often add support for new formats and filters to the underlying system, by, for instance, installing the DivX codex. We can therefore not give an exact overview of which formats are available with the Qt backends."

It seems they recommend Gstreamer on Linux. That’s fine, however, just like they use DirectShow on Windows, shouldn’t Haiku’s native media_server be used on Haiku? This isn’t Linux, Haiku’s media_server is the native solution here. Sticking to it as much as possible should come a long way in making things consistent and avoiding any possible confusing codec issues. Gstreamer would also add yet another layer, and I’m a bit worried about latency. With that said though, this is just on the long term; I can certainly understand if you want to try easier solutions first.

i would have to agree, there is absolutely no need to have gstreamer in there Haiku’s media server is more than up to the task im sure, if they are going to go by that ideology then they should be porting gstreamer to Mac and Windows too…

Ok so back to my original question, i should be using only the Qt webkit part of the Qt 4.5 port and get what ever other dependencies its looking for and dump the rest? also is there any way to compile Qt webkit with a newer version of the WebKit rendering engine or something to that effect? iv noticed that Qt webkit is pretty sluggish in terms of rendering javascript.