Andreas Kling splits Ladybird web browser from SerenityOS, steps down as SerenityOS BDFL

5 Likes

I see mentions of Andreas Kling occasionally while working on WebKit, so he’s definitely worked on it in the past. He should be a pretty knowledgeable developer/leader of Ladybird. I can’t wait to see what comes out of the project!

BTW, BDFL = Benevolent Dictator For Live. It’s where one person leads the project. AFAIK, Michael Phipps was Haiku’s creator and benevolent dictator.

3 Likes

Doesn’t really come unexpected, for anyone who has followed SerenityOS and Ladybird recently. The only thing I find a bit strange is that Serenity is dropped as a target OS for Ladybird. Personally, I don´t care about it, since I’m more interested in Ladybird than Serenity OS. But SO seems to have a very active community so I guess it will be doing fine.

To be not completely OT here: maybe it’s time we update our Ladybird port in haikuports. Anybody around that maintains it?

1 Like

Well, if you think about it, Serenity OS was a project he did just for fun, but Ladybird is a new web engine from a past WebKit contributor, who knows what he is doing, and something he can make a living off (as he received many donations specifically for Ladybird development).

In that view, it makes sense that the toy project will be left on the side. I don’t think he ever considered using it as his main OS.

It will hopefully be easier, now that it is untangled from Serenity sourcecode.

4 Likes

Per Kling, from here:

By dropping SerenityOS as a target, Ladybird is free to make use of 3rd party libraries that don’t currently work on SerenityOS. And keep in mind, SerenityOS would be unable to integrate Ladybird in this new state anyway, since SerenityOS has a strict “no 3rd party code” policy.

(Also nice: it stops being necessary to wait 30+ minutes for multiple CI runs on SerenityOS every time you post a browser engine pull request!)

In time, I’d love to see Ladybird come back as a port on SerenityOS.

5 Likes

I makes sense completely. My statement wasn’t meant as criticism, I was just that I´d expected he would still retain Serenity as target platform, maybe tier-2 or something like that.

That explains it all. Thanks.

With some patches I contributed in September 2023,it was possible to build Ladybird from source on Haiku directly with the upstream code.
I made a topic about it back then: My progress at porting Ladybird, the SerenityOS Browser
Seems it has been broken again since December unfortunately,I dropped M$ Github since then and the patches I sent to Mr. Kling by email remained unanswered.
I guess it won’t be that hard to make it work again using the code that still mostly involves Serenity libraries which are written in a way that’s very easy to understand and make work on different OSes.

Now with the fork and the goal that Ladybird may require more third-party libraries and focus only on Linux and MacOS,it may actually become more difficult to support it on Haiku,especially if they decide to require libraries that don’t run here.
Well,it remains to be seen how this change affects ports to different OSes,but I personally didn’t see the use of many own/internal libraries as a problem,but rather the exact opposite.
In fact,Serenitys “LibLagom” and “LibCore” provided a lot of abstraction layers for OS-dependent code so that the ifdefs weren’t required again and again,but only once for one thing.
I hope they’ll keep it that way.

2 Likes

I think that wether Haiku is supported or not depends on wether Haiku developers are interested in helping with support, personally I am somewhat interested.

However github + discord is a nogo for me, so for the moment I won‘t do much there.

Luckily there is enough work to do in Haiku. : )

3 Likes

Same here,I have enough work to do on own projects,but after initial porting,which I’ve done in September,keeping it working is only one additional patch every week or two,so for me that isn’t a show-stopper.
The communication channels are,however.
It’s really a shame that a project of this size doesn’t have some forum or IRC channel or at least a email address that gets attention by the maintainers.
I could probably host a fork on Codeberg that includes my patches,but with the risk that nobody will ever notice that it exists,since it’s not in the upstream repo,I’m not sure it’s worth the time.

1 Like

I am however fine with both and can act as a liaison or point of contact between Haiku and SerenityOS/Ladybird if there is interest in collaboration across communication platforms.

3 Likes

That sounds good.
When I have enough free time,I’ll look into making Ladybird build on Haiku again.
Maybe you can submit the pull requests for me then.

3 Likes

My take on this is that its a bad move.

SerenityOS and Ladybird have synergy that is lost by splitting them, if you have build infrastructure issues that should be a separate concern.

Using external libraries… also seems like a bad move at face value. Why make your browser LESS portable?

2 Likes

Much of the work there can even be nicely automated if @nipos sets up the repo on Codeberg:

My take on this is that its a bad move.

But inevitable. Ladybird is actively developed, SerenityOS is less so.

What synergy? When the main developer of Ladybird says he is doing all his development on Linux, and maintaining support for Serenity gets in his way, that’s not synergy. It’s like two roommates living in the same home, but not talking to each other anymore.

Such relationships can’t work. It is probably best for both projects that they now each have their separate homes, developer teams, and cultures.

Also, what 3rd party libraries are we talking about? Is it basic things like curl and opensl? Is it switching to webkit (or whichever other one) instead of developing a new web engine from scratch? Is itQt for the GUI? Each of these (and many other possible cases) would have quite different consequences both for a Serenity and for a Haiku version of Ladybird. So, without further details, it seems the best thing to do is wait and see where this is going,

4 Likes

A quick look at this guide shows that it won’t work in this case.
It requires steps both in the Codeberg and the Github repository.
I don’t have a Github account and even if I did,I don’t have any rights in Serenitys repository.
What I could do is just clone the source from Github and reupload it to Codeberg,including my own patches.

1 Like

I meant a bit different thing. My idea was that @win8linux could fork the Ladybird repo, and establish a two-way sync with the repo you create on Codeberg. That way win8linux can easily submit PRs with your changes to the upstream. Also, syncing the fork with the upstream would automatically bring the upstream changes to the repo on Codeberg too.

Got a simular setup for haikuports:

/Opslag/codeberg/haikuports> git remote -v
origin  git@codeberg.org:Begasus/haikuports.git (fetch)
origin  git@codeberg.org:Begasus/haikuports.git (push)
upstream        https://github.com/haikuports/haikuports.git (fetch)
upstream        https://github.com/haikuports/haikuports.git (push)

EDIT: Didn’t check if I push there I could do a PR upstream though :slight_smile:

3 Likes

There is the whole… its written with all our own libraries part?

If you just port LadyBird to regular old libraries, which is apparently his main goal for the split, then you throw away about half of the benefit and will be running on relatively crufty old libs.

Its not like working on Ladybird from Linux has been problematic has it? I can’t imagine that if external libaries were desired that it would be terribly hard to port them to ladybird AND serenity either…