This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.
== Summary ==
The webkit2gtk-4.0 API version will no longer be built. Packages that
depend on it will fail to build from source and eventually be retired.
== Owner ==
* Name: [[User:catanzaro|Michael Catanzaro]]
* Email: <mcatanzaro(a)redhat.com>
== Detailed Description ==
The webkitgtk source package currently provides three different API
versions of WebKitGTK:
* webkit2gtk-4.0: for GTK 3 and libsoup 2
* webkit2gtk-4.1: for GTK 3 and libsoup 3
* webkitgtk-6.0: for GTK 4 and libsoup 3
Building three different package versions is slow, and Red Hat does
not wish to do so anymore. We will remove the webkit2gtk-4.0 API
version, which is provided by the webkit2gtk4.0 and
packages will fail to build from source and will eventually be removed
from the distribution unless fixed.
The good news is that updating your package to webkit2gtk-4.1 is
probably easy because there are no API changes other than the version
of libsoup that is linked to. If your package does not directly or
indirectly depend on libsoup 2, then just change the API version
number from 4.0 to 4.1 and you're done.
Here is a typical example of how easy this is.]
However, if your package does directly or indirectly depend on libsoup
2, then you will need to eliminate that dependency, which will require
more effort. If your application links to libsoup 2 via any
dependency, it will crash if also linked to libsoup 3.
This is a slimmed-down version of the
[[Changes/libsoup_3:_Part_Two|libsoup 3: Part Two]] change proposal
that was previously rejected by FESCo. Instead of removing all
packages that depend on libsoup 2, packages will only be removed if
they depend on both libsoup 2 and also WebKitGTK. No effort will be
made to remove libsoup 2 from the distribution (though an obsolete
HTTP library is a major security risk and packages really ought to
stop using it).
== Benefit to Fedora ==
libsoup 3 brings support for HTTP/2, whereas libsoup 2 supports only
HTTP/1.1. Users will experience shorter load times and improved
responsiveness in applications that use WebKitGTK. Users of
applications that previously used webkit2gtk-4.0 will have one fewer
massive package installed after this transition is completed.
Additionally, the WebKitGTK package maintainer will be less grumpy
because WebKitGTK will need to be built only twice for each supported
version of Fedora, rather than three times.
== Scope ==
* Proposal owners: ensure packages required by Fedora Workstation and
ELN no longer depend on webkit2gtk-4.0 (already done)
* Other developers: ensure other packages no longer depend on webkit2gtk-4.0
* Release engineering: [https://pagure.io/releng/issue/11368
* Policies and guidelines: no policies or guidelines would need to be updated
* Trademark approval: N/A (not needed for this Change)
* Alignment with Community Initiatives: None
== Upgrade/compatibility impact ==
To be determined. The newer packages can either Obsoletes the older
ones, or not, since they are not compatible, it's probably not
appropriate to use Obsoletes?
== How To Test ==
Applications ported to webkit2gtk-4.1 need to be tested individually
to ensure they still work. It's unlikely anything will go wrong for
applications that do not directly or indirectly use libsoup 2. If an
application or one of its dependencies needs to be ported to libsoup
3, then there is more potential for trouble.
== User Experience ==
Users will experience shorter load times and improved responsiveness.
Additionally, there will be one fewer huge package that might be
installed on user systems.
== Dependencies ==
$ dnf repoquery --whatdepends webkit2gtk4.0 --latest-limit 1 --arch
Last metadata expiration check: 0:00:31 ago on Thu 30 Mar 2023 03:07:12 PM CDT.
== Contingency Plan ==
* Contingency mechanism: Bring back the removed subpackages
* Contingency deadline: F39 beta freeze
* Blocks release? No
== Documentation ==
WebKit2 - 4.1]
WebKit2WebExtension - 4.1]
- 3.0: Migrating from libsoup 2]
== Release Notes ==
WebKitGTK for GTK 3 and libsoup 2 applications have been removed. Use
WebKitGTK for GTK 3 and libsoup 3 applications.
He / Him / His
Fedora Program Manager