https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version

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: <mcatanz...@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
javascriptcoregtk4.0 packages. Everything that depends on these
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.
[https://src.fedoraproject.org/rpms/emacs/c/1670e57f63e0897d6d6027826f247bb3e90ddd2a?branch=rawhide
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 #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
'noarch,x86_64'
 Last metadata expiration check: 0:00:31 ago on Thu 30 Mar 2023 03:07:12 PM CDT.
 apostrophe-1:2.6.3-6.fc38.noarch
 apvlv-0:0.4.0-2.fc38.x86_64
 atril-libs-0:1.26.0-4.fc38.x86_64
 badwolf-0:1.2.2-4.fc38.x86_64
 balsa-0:2.6.4-2.fc38.x86_64
 bookworm-0:1.1.3-0.9.20200414git.c7c3643.fc38.x86_64
 cairo-dock-plug-ins-webkit-0:3.4.1-42.20210730gitf24f769.fc38.1.x86_64
 claws-mail-plugins-fancy-0:4.1.1-5.fc38.x86_64
 eclipse-swt-1:4.26-2.fc38.x86_64
 emacs-1:28.2-4.fc38.x86_64
 ephemeral-0:7.1.0-5.fc38.x86_64
 exaile-0:4.1.2-2.fc38.noarch
 exfalso-0:4.5.0-5.fc38.noarch
 fapolicy-analyzer-0:1.0.0-1.fc38.x86_64
 foliate-0:2.6.4-6.fc38.noarch
 gambas3-gb-gtk3-webview-0:3.18.1-1.fc38.x86_64
 gamehub-0:0.16.3.2-6.fc38.x86_64
 geany-plugins-markdown-0:1.38-9.fc38.x86_64
 glade-libs-0:3.40.0-2.fc38.x86_64
 gnucash-0:4.13-6.fc38.x86_64
 gphotoframe-0:2.0.2-17.hg2084299dffb6.fc38.1.noarch
 gthumb-1:3.12.2-7.fc38.x86_64
 liferea-1:1.14.1-1.fc38.x86_64
 lutris-0:0.5.12-3.fc38.x86_64
 marker-0:0.0.2020.04.04-10.fc38.x86_64
 meteo-0:0.9.9.1-4.fc38.x86_64
 midori-0:9.0-12.fc38.x86_64
 minigalaxy-0:1.2.2-3.fc38.noarch
 notes-up-0:2.0.6-4.fc38.x86_64
 osmo-0:0.4.4-2.fc38.x86_64
 pdfpc-0:4.6.0-1.fc38.x86_64
 perl-Gtk3-WebKit-0:0.06-27.fc38.noarch
 rednotebook-0:2.29.3-2.fc38.noarch
 rubygem-webkit2-gtk-0:4.1.2-1.fc38.noarch
 setzer-0:0.4.8-2.fc38.noarch
 sugar-0:0.120-2.fc38.noarch
 sugar-browse-0:207-6.fc38.noarch
 sugar-toolkit-gtk3-0:0.120-2.fc38.x86_64
 surf-0:2.0-15.fc38.x86_64
 ulauncher-0:5.15.2-1.fc38.noarch
 vfrnav-0:20201231-38.fc38.x86_64
 webkit2-sharp-0:0-0.17.20170219gita59fd76.fc38.x86_64
 webkit2gtk4.0-devel-0:2.40.0-2.fc38.x86_64
 webkit2gtk4.0-doc-0:2.40.0-2.fc38.noarch
 wxGTK-webview-0:3.2.1-5.fc38.x86_64
 wxGTK3-webview-0:3.0.5.1-10.fc38.x86_64
 xiphos-0:4.2.1-18.fc38.x86_64
 xreader-libs-0:3.6.3-1.fc38.x86_64
 yad-0:9.3-5.fc38.x86_6

== Contingency Plan ==

* Contingency mechanism: Bring back the removed subpackages
* Contingency deadline: F39 beta freeze
* Blocks release? No

== Documentation ==

* [https://webkitgtk.org/reference/webkit2gtk/stable/index.html WebKit2 - 4.1]
* [https://webkitgtk.org/reference/webkit2gtk-web-extension/stable/index.html
WebKit2WebExtension - 4.1]
* [https://webkitgtk.org/reference/jsc-glib/stable/index.html
JavaScriptCore - 4.1]
* [https://libsoup.org/libsoup-3.0/migrating-from-libsoup-2.html Soup
- 3.0: Migrating from libsoup 2]

== Release Notes ==

The webkit2gtk4.0 and javascriptcoregtk4.0 packages providing
WebKitGTK for GTK 3 and libsoup 2 applications have been removed. Use
the webkit2gtk4.1 and javascriptcoregtk4.1 packages instead, providing
WebKitGTK for GTK 3 and libsoup 3 applications.


-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to