Quick N' dirty QT porting guide somewhere?

Hi!

Have been lurking here for a while and would love to contribute to Haiku somehow.
I see lots of lots of Linux QT applications getting ported over the last couple of months, and which is great! I would love to help out somehow, so now I’m looking for some kind of guide on how to port QT applications specifically from Linux to Haiku.

I’m not after how to fix broken stuff, because that lays more in the porting effort.
I’m more curious to how I set up the build environment, since it seems to be quite different to what I’m used to in Linux/Mac OS X land. Mind you, I haven’t really read all that much Haiku specific documentation on the matter either, so if I missed some obvious piece of documentation describing what I’m after, I do apologize.

I miss the XMPP client Psi quite a lot in Haiku, so this is what I’m aiming to port.

1 Like

Hi!

is this Psi? https://github.com/haikuports/haikuports/blob/master/net-im/psi_plus/psi_plus-1.2.105.recipe

So it seems! Psi+ at least, but that works fine as well.
I’ll just wait until it’s in the repo, then :slight_smile:

But; the question remains. Is there any guide or piece of documentation, or even thread on the forum that describes a simple build environment for porting applications from Linux to Haiku?

Theres more than Psi that I want to try to port, so I would still like to be pointed in the right direction.

Well, we don’t have an exact guide, but I’d recommend heading over to HaikuPorts: github.com/haikuports/haikuports and check out some of the Qt based recipes for examples, I do agree it would be good to have a porting guide though, in fact once you figure out how to port, that could be just a suggestion in how you could contribute in another way.

Check the Qt based recipes, they are self-explanatory enough for the start, and you can ask your specific questions here or over the IRC.

Actually there is absolutely no magic in building Qt based stuff to Haiku. The programs using either cmake or qmake as build tool, so creating a build folder and running

cmake …

or

qmake …

works in plenty cases, except if it using some strange logic to find the required dependencies, in which case one have to adjust the build scripts manually to get them recognized correctly, or one have to use environmental variables.

But as i told, there is almost no difference in case of porting Qt stuff from Linux to Haiku. The most important differences are:

  • Qt on Haiku can no GL (FIXME or FIXIT!)
  • Haiku got no includes folder, but headers
  • Haiku got networking in -lnetwork instead of -lsocket

So porting stuff is from my viewpoint 70% fighting with the build tools and with unix heritage from the 60’s and the rest is the interesting part with code adjustments, but i don’t do heavy-lifting in my porting sessions, korli does, he could write a book or similar :wink: Would buy it for sure.

1 Like

Doing proper recipes on the other hand could be pretty hard and the learning curve is pretty steep, but as counter-example there are the GCI students. They was able to learn it, and they did a great job.

I would say, try to write a recipe for your favorite-but-not-yet-available-for-Haiku ™ software, create a PR, and we will help to get it in proper shape. OR update the PSI recipe to the latest version, as it currently 3 months behind.

One have to work on this field hard and long enoug, then it will be just as easy as 1x1.

3 Likes

How to port apps to Haiku except that the bit about KDE is outdated.

Thanks a lot everyone! I will surely try porting something to Haiku :slight_smile:

On another note, about Psi+ mentioned above.
I can’t find it in the 64bit Haiku repo. I guess it’s 32bit only, but when I look at the recepie I found this:
ARCHITECTURES="!x86_gcc2 ?x86_64"

It looks like it should be built for 64bit as well, or am I reading this wrong?
How does the process look like from ported application on my machine, to built package in the repo? Sorry for the stupid questions.

1 Like

? means untested.

Check the wiki:

Thanks! Will do :slight_smile:

1 Like