Hello everyone,
I have been waiting for this moment for months, after fixing the Ladybird ports on FreeBSD, OpenBSD and NetBSD and creating a port to OpenIndiana (a Solaris derivate).
Some of you maybe remember that there was a downstream port by @3dEyes at HaikuPorts a year ago already, but SerenityOS’ compiler requirements became higher so that we couldn’t build any newer version of it later.
Now with GCC 13 finally being available on Haiku, I started an attempt to build the latest Ladybird version on Haiku and made big progress already.
This time I’m trying to upstream my porting efforts, as I’ve done that for all other systems as well and the SerenityOS people seem quite welcoming to unusual systems (would be quite ironic if they weren’t, I mean they’re also building a niche OS from scratch).
I’ve already created a draft pull request with my work from the last two days: [WIP] Everywhere: Add support for the Haiku platform by nipos · Pull Request #20808 · SerenityOS/serenity · GitHub
At the current state, Ladybird builds successful and even opens its main window, but the WebContent process immediately crashes without any useful error message, so I have no idea what’s going wrong here.
I’m sure it’s trivial to fix at this point, for the other systems only minor patches were required and I’ve already done all of them for Haiku as well.
There must only be some little thing I’m missing…
Here’s the console log from running Ladybird:
~/serenity> ninja -C Build/ladybird run
ninja: Entering directory `Build/ladybird'
[0/2] Re-checking globbed directories...
[0/1] cd /boot/home/serenity/Build/ladybird && /boot/system/bin/cmake -E env SERENITY_SOURCE_DIR=/boot/home/serenity /boot/home/serenity/Build/ladybird/bin/ladybird
IPC::ConnectionBase (0x0000121bf1f1a3c0) had an error (sendmsg: Socket is not connected (errno=-2147454946)), disconnecting.
WebContent process crashed!
QSocketNotifier: Invalid socket 11 with type Read, disabling...
Failed to parse a message
Local endpoint error: recvmsg: Bad file descriptor (errno=-2147459072)
Peer endpoint error: Endpoint magic number mismatch, not my message!
ConnectionFromClient(0x000010af7dead500) (id=1) had an error (send: Broken pipe (errno=-2147459059)), disconnecting.
ConnectionFromClient(0x00001209921c5500) (id=1) had an error (send: Broken pipe (errno=-2147459059)), disconnecting.
I’m happy if anyone has ideas what could be causing the crash and how it can be fixed?
Otherwise I’ll keep experimenting with that thing in my spare time, I really want to get this to work.
If you want to try it out yourself:
git clone https://github.com/nipos/serenity
git checkout add_haiku_platform
cmake -GNinja -S Ladybird -B Build/ladybird
cmake --build Build/ladybird
ninja -C Build/ladybird run
Qt6 and its _devel packages, as well as GCC 13 must be installed for that to work.