Exploring Porting in Programming

I’m taking my first steps in programming (I’m no longer a young man and I always have little time) and I’m very curious about porting.

It might be off-topic, but I’m interested in knowing what are the best features that simplify the process (libraries, languages, etc.).

I would like to know which types of graphical interface software are the easiest to port to Haiku, based on the languages or libraries already in use within the system. This way, I can explore potential candidates for my future porting experiments.

Thank you all for your patience! :pray:

3 Likes

Qt applications are the best candidates for porting since Qt is supported very well on Haiku and is nearly perfectly integrated with the system.
You often need to look twice if something is a Qt application or a native one.
GTK applications do also work,but they don’t integrate as good (both design and feature-wise),yet I still think it’s viable to try porting them.
Other UI toolkits that aren’t as widely used may or may not work,don’t know if it’s worth the trouble.
Things that directly target MacOS or Windows can’t be ported without essentially rewriting the whole thing,but Windows applications may run in Wine.

3 Likes

We could always use an extra pair of hands at haikuports, the place were we keep the recipes (scripts) that are used by the buildmasters so the packages end up in the depot for installation.
One thing you could start with is just build sources from Terminal, if you have some fairly good knowlidge on how build systems work (cmake, autotools, qmake, cargo et all) it shouldn’t be too hard to get something build very quickly.
Just give a yell if you have some specific interest.
FYI you can mostly find us active (mostly* :slight_smile: ) on IRC, OFTC #haiku channel.
Welcome to Haiku! :slight_smile:

3 Likes

Tnx.
During the time I was using BeOS 5 daily (good memories), I used to compile the source code of some software (I still remember searching the web for missing .so files).

I imagine the biggest challenge in porting is finding compatible libraries, checking for already ported components, or even rewriting functions…

I fear this goes beyond my current knowledge (at least for now).
I hope to carve out some time to dedicate to all this in the near future. :grin:

1 Like

With Haikuports,finding the needed libraries isn’t such a big problem anymore.
Most popular libraries are available as a package which is easy to find,and development headers are provided as _devel package.
It’s unlikely that ports exist that aren’t listed there.
If you don’t find it on Haikuports,it’s much more likely that you’ll have to port it yourself,then you can add it to Haikuports and make life easier for the next who needs the same library.

1 Like

Don’t jump in at the deep end. First get your feet wet by porting a few command-line C or C++ utilities and figuring out how to construct an .HPKG. Even if it is just for your private use. Once you know your way around make and package it is not such a big jump to move on to porting QT and GTK applications.

1 Like

I’ve successfully built a C++ app using FLTK on Haiku. Tcl/Tk apps also work fine. In the terminal, you can use ncurses with confidence, but the dialog utility isn’t in the repos for some reason(?!) Haven’t tried much else, but Perl and Python are preinstalled, though Tkinter is infamously still broken. Javascript is also an option, and so are niche languages like Nim or Vala.

1 Like

Could you give a bit more information on this? afaik there is no issue tracked in this regard on haikuports. :slight_smile:

1 Like

Dunno, it’s just, dialog doesn’t seem to be preinstalled, and pkgman search dialog doesn’t help either. Maybe I’m missing something obvious, and it’s just a nitpick. Only mentioned it because this came up.

Builds straight out of the box, shouldn’t be fairly simple to add it to the depot if there is a need for it :slight_smile:

/Opslag/wip/dialog-1.3-20240619> /boot/home/destdir/bin/dialog
cdialog (ComeOn Dialog!) version 1.3-20240619
Copyright 2000-2023,2024 Thomas E. Dickey
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

EDIT: should check first, it’s already in the tree dev-util/dialog-1.3_20170509.recipe :smiley:

2 Likes

That’s weird. I know that I’ve installed and used it. Were you thinking of xdialog?

We don’t have whiptail, though

No, I mean plain old dialog. That’s weird, I’ll try again. Thank you.

Remember you can use the cmd: form of search (e.g: pkgman search cmd:dialog) for when you want a specific command.

1 Like

Posted a PR at haikuports for this, bringing it up to the latest release, maybe you could check it out (before I merge)? :slight_smile:

I could find it and install it this time, go figure. Not sure what I was doing wrong before. It works, too. just seems to misidentify the terminal size(?) Going to do more testing later, can’t right now. Thanks a lot!

Try setting tput init explicitly first.

1 Like