Right-to-Left (RTL) Languages Support

Thanks, that’s a big help.

It actually looks like HarfBuzz is already packaged? I suppose it’s a dependency for a ported library. I’ll proceed to get more familiar with the Haiku sources.

Still happy to accept on pointers on how to get started with this and how best to proceed with getting this accepted. Is it better to bring it up on a mailing list than here?

Yes, development mailing list would definitely be more helpful, and would have a better signal to noise ratio.

1 Like

Yes, it’s already in use in a few places.

The work that remains is just the integration into app_server. One difficulty or pre-requirement is that app_server currently is still built with gcc2 for the 32 bit x86 version of Haiku. Since harfbuzz won’t build with the ancient gcc2, the most likely solution is to switch app_server to use gcc 13 instead.

But that can be solved separately, once we have a proof of concept working on the other architectures.

For the initial test, you need to get the Harfbuzz package and put it in the generated/downloads directory of your Haiku build. You then need to declare it in the package repository file in Haiku sources (build/jam/repositories/ I think) and build with the -sHAIKU_NO_DOWNLOADS=1 option to jam. This allows you to test your changes locally. When this is all working, the online package repository that’s normally used for Haiku will be updated to include harfbuzz.

There are a few other files in build/jam to fill in to declare a package. I think the best way to go about it is to search for how freetype is declared there and do something similar.

Then app_server can start making use of it.

Thank you so much for those pointers.

Using a brute force approach of smashing harfbuzz into basically every Jamfile that referenced freetype it appears that I can now find the header, call hb_buffer_create() at a more-or-less randomly picked place in the code, and link app_server with harfbuzz (according to ldd on the output file). So that’s definitely a step or two in some direction.

1 Like