How to port apps to Haiku

Hello everyone,

I don’t really have much experience with software development, but I have a question. Is it difficult to port existing (Linux/QT5?) apps to HaikuOS? For example: SeaMonkey for Linux, QT5 (KDE?) apps? And how can it be done?

See https://github.com/haikuports wiki pages.

Haikuports is our repository for software ported to Haiku, it rely on our porting tool, haikuporter.

Porting can be as easy as duplicate a sample recipe file, edit it to change summary and description texts, point source url to what you want to port, putting some “make” in INSTALL() function and try how it goes.

But most of the time it requires a bit of skiils on how many softwares are built, either by autoconf tools + make, some are using cmake, some have their own build system, some don’t need to be built but the set of files already ready often still need to be adapt to map Haiku platform expectation regarding their location on disk, etc.

There is very good two parts tutorial “how to port” available in the wiki. Read it, try it.
And for there more complex things, you’ll find help regarding haikuports on IRC, #haiku channel.

2 Likes

Ok, for QT5 apps, here’s the quick and dirty way

  1. Make sure someone else hasn’t already ported it.
  2. install the QT5 and QT5_devel packages. These are large. There is also a QT5 documentation package, which is insanely large.
  3. Download and unzip the app you want to port
  4. Open a Terminal, cd to your unzipped files
  5. If you are compiling on x86_gcc2hybrid, type “setarch x86”. If you are compiling on x86_64, you can skip this step.
  6. Type “qmake”
  7. If that gives an error message type “cmake .”
  8. If that gives an error message, read the documentation. then return to step 4
  9. type “make”
  10. start praying
  11. If the compilation is successful, start hunting for where this one put the damn binary.
  12. If the compilation is not successful, read the documentation, fiddle with the code, then return to step 4. Repeat as required (or give up).
  13. Send an email to the original author informing him that his code compiles on Haiku.
  14. Start planning your .hpkg for distribution.

QT4 apps are much the same (with less prayer involved), but note that while you can have the QT4 and QT5 runtime libs in the same setup, the two _devel packages will clash mightily and attempt to uninstall one another. Since most QT apps under active development are transitioning to QT5 anyway, think twice before committing to QT4.

KDE apps cannot be ported unless you first port the entire KDE subsystem. It’s been done before in TiltOS - but Haiku and KDE are both moving targets and those ports no longer work.

SeaMonkey? Don’t, just don’t. Web browsers are fantastically complex applications, not for newbies! Besides, there is one on my repo. Not the latest, but it works.

5 Likes

Dear all… i try to compile qt app … and bump

… cannot find -ldl …

anyone can give me solution/hint?

Libdl exist on Haiku in libroot, but as libroot always linked in, it is not needed.
Remove that from the makefiles or in the config files.
Read the HaikuPorts wiki.

1 Like

thank you @extrowerk

Same here; limited experiences as developer in C, but I’m not a total newbie in IT and Unix after all. I would like to try to port something nice for data scientists (which is my job), for example the R programming language and RStudio (which requires GWT actually)

Do you have some good advices, aside from reading the wiki?

tnx!

R is already ported.
Read the wiki.

I mean…the GUI :slight_smile:

@TheClue: have fun then, and consider to join to the IRC channel.

sure! I’m still a IRC user

I’m not sure that as a developer I’m smart enough to port something useful but, well, it’s worth the try :slight_smile: