I don’t know if the port in HaikuArchives is the same code,but AbiWord did have upstream support for BeOS years ago.
Here’s the commit which removes it: https://github.com/AbiWord/abiword/commit/e153cb594fdc9d781c8c687d29a47c0a60ada980
Sadly,it was removed earlier than I thought and probably difficult to reuse on top of a more modern version
Abiword never worked well for BeOS… I remember how often it crashed!
Then Audacity can be ported more easily now? i suppose, Audacity is like the gimp for audio.
g_spawn_async
is supposed to use posix_spawn
if it is available, already. Does it not for some reason on Haiku? We should fix that if so, probably other things make use of it.
Very strange, but indeed at the moment glib2 uses posix_spawn in g_spawn_async. A direct call from GIMP posix_spawn works fine, but g_spawn_async throws an exception. Apparently we need to build glib2 with debugging information and find out the reason.
The problem has been found, and it is, after all, inside haiku.
The implementation of g_spawn_async in glib2 calls posix_spawn with parameters file_actions and spawnattr set. If these parameters are not NULL, haiku uses fork(), and if they are NULL, it uses image loading - spawn.cpp « posix « libroot « system « src - haiku - Haiku's main repository.
Loading plugins in GIMP only works correctly if load image is used.
That doesn’t seem to make much sense. Why does fork()
not work here?
I don’t know. Calling fork or vfork from gimp causes an instant exception.
UPD: not an exception, but a Sigmentation Violation signal
The GIMP recipe (and missing dependencies) is published.
Known problems at the moment:
- Hangs when trying to open Preferences dialog (fatal error: Segmentation vialation).
- Inverting the colors on the canvas. Apparently an error somewhere in xlibe - wrong RGB <-> BGR order.
It can make sense if things like pthread_atfork(3) - Linux manual page are involved. Or also if file descriptors have the close-on-exec flag set (this will happen at exec and not fork time), but don’t expect posix_spawn to do that, and so they additionally used https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_addclose.html to cover that case?
Seems like there are amny things that can possibly go wrong
It would be good to get HaikuPorts tickets for this and the fork() crashes.
Possibly it wants to use LSB/MSB flags in XImage, I didn’t implement that. I can take a look.
'Twas indeed a bug in Xlibe’s XImage processing. Now fixed, and the new version is in HaikuPorts:
do the 3d modelling features work ?
What did do to get that Dark theme?, i’ve been trying with gsettings with no luck.
Very niiiiiiiiice…
I’ve just made an update to Xlibe which should allow for the system fonts to be used in GIMP (and all other GTK applications). That should improve integration somewhat
Is gimp only 64bit? i do not see it in 32 it haikudepot
Disabled in the recipe: