[webkit-gtk] ABI compatibility between releases

Gustavo Noronha Silva gns at gnome.org
Mon May 9 07:03:10 PDT 2011

On Fri, 2011-05-06 at 10:39 -0400, Grant Gayed wrote:
> I understand the tension between maintaining compatibility and moving
> forward, SWT/Eclipse also lives in such a world.  However I think GTK
> balanced this well by maintaining compatibility throughout each major
> release, and then as the burden of doing so became too painful,
> creating a new major release.  The GTK devs may feel that they kept
> the 2.x stream alive for too long (possibly true), but even if they
> had cut it off earlier, this would not have caused a problem for
> clients because Linux distros continue to ship GTK libs from each
> major stream.  As a result apps written for GTK 1.x can still run
> today, even though GTK abandoned this codebase long ago.  Eclipse is

WebKitGTK+ 1.2.x is parallel installable with WebKitGTK+ 1.4.x, so the
same thing you're talking about above applies to WebKitGTK+. You can
still run applications that use WebKitGTK+ 1.2.x, you just need to keep
shipping it.

Also, 1.4.x actually retains API compatibility, so it's just a matter of
doing a rebuild with the newer .pc file in case you want to have only
the 1.4.x library around.

>  doing something similar: its 3.x stream has maintained compatibility
> for 8 years, but as this has become too constraining, the 4.x stream
> has emerged.  My hope was that WebKitGTK would have a similar
> approach, since other similar libs, including the other WebKit ports
> we use, maintain compatibility within major revisions which last for
> at least a few years. 

I believe the thing that led to this was that ABI/API stability promises
were made too early. WebKitGTK+'s API was lacking very basic stuff and
the understanding the team had of some concepts were not really well
formed at that time. As the project matures, breakage will be less of a
need. I believe after WebKitGTK+ 1.4.x we're likely to have two major

1. we'll eventually drop support for GTK+ 2 - I don't think we have a
time frame set in stone and your input would be helpful in setting it,
but at this point in time we still need to switch to GTK+ 3 by default
on the buildbots to start considering it.

2. we'll move to a WebKit2 (multi-process) base for the port as the
recommended library; after those, I believe we'll be able to have a
quite stable ABI for a few years

Like Xan said, we don't make these decisions lightly, but we have to
balance our team's ability to keep WebKitGTK+ relevant for new users and
bleeding-edge users like browsers with keeping it ABI stable.


> users download rather than using a version that's bundled with their OS.  I
> assume there are other apps out there that also become broken by changes
> like this (?).

I think you're the first to complain about it, so I assume the vast
majority of our users are software shipped by distributions and not
downloaded from third-party/upstreams sites pre-compiled. I don't mean
to imply that your usage is not important for us, though.


Gustavo Noronha Silva <gns at gnome.org>
GNOME Project

More information about the webkit-gtk mailing list