F39 proposal: libsoup 3: Part two (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://fedoraproject.org/wiki/Changes/libsoup_3:_Part_Two

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 ==

libsoup 3 is a new API version of libsoup that provides support for
HTTP/2. We will remove libsoup 2 and all packages that still depend on
it.

== Owner ==
* Name: [[User:catanzaro|Michael Catanzaro]]
* Email: <mcatanzaro@xxxxxxxxxx>


== Detailed Description ==

[[Changes/libsoup_3:_Part_One|We previously introduced libsoup 3 to
Fedora 37.]] Because applications will crash on startup if linked to
both libsoup 2 and libsoup 3 at the same time, and because many
libraries depend on libsoup, and because applications therefore have
limited control over which libsoup they link to transitively, this
transition was quite tricky and caused several serious problems during
the Fedora 37 development cycle. Fortunately, the trickiest part of
the migration to libsoup 3 is now behind us.

The next step is to remove libsoup 2 from Fedora. We propose to do
this for Fedora 39. This should happen sooner rather than later
because libsoup is a security-sensitive networking library and
maintaining an old version in Fedora indefinitely is inadvisable. We
know from experience that a deadline will be required in order to
ensure applications and libraries make the transition; otherwise, we
will wind up maintaining libsoup 2 indefinitely. Removing libsoup 2
from Fedora 38 seems too soon: applications need a little more time to
smoothly transition. Accordingly, we propose to remove libsoup 2 from
Fedora 39. The package will be retired in rawhide shortly after Fedora
38 is branched in February 2023. At this point, all packages that
still depend on it will break in rawhide. This  rest of the year will
be available to fix broken packages before Fedora 39 is released to
users in October 2023.

This will likely cause some temporary problems and force some
compromises. E.g. we may have to drop software like ABRT or geoclue
from composes if not ported in time.


== Benefit to Fedora ==

Removing libsoup 2 ensures Fedora does not package an obsolete version
of a security-sensitive networking library. It will also eliminate the
possibility of linkage conflicts between libsoup 2 and libsoup 3,
which have been extremely annoying during the Fedora 37 development
cycle and will continue to plague us during Fedora 38 development.

== Scope ==
* Proposal owners: we will ensure the package is retired

* Other developers: software must be ported from libsoup 2 to libsoup
3. This may require substantial upstream effort.

* Release engineering: [https://pagure.io/releng/issue/10985 #10985]

* Policies and guidelines: no new policies needed

* Trademark approval: N/A (not needed for this Change)

* Alignment with Objectives: no alignment with objectives

== Upgrade/compatibility impact ==

Software that still depends on libsoup 2 will break.

== How To Test ==

Fortunately not much testing is needed. The main challenge of the
transition to libsoup 3 was testing applications to ensure they do not
crash on startup due to libsoup 2 vs. libsoup 3 conflicts. Such
conflicts will no longer occur once this change is implemented,
because libsoup 2 won't exist anymore. Of course, it's also good to
test applications to ensure they still work properly after being
ported to libsoup 3.

== User Experience ==

Applications that use libsoup 3 will support HTTP/2, which multiplexes
multiple HTTP requests over a single connection. Users may notice
significant performance improvements.

== Dependencies ==

 $ dnf repoquery --whatdepends libsoup --latest-limit 1 --arch
'noarch,x86_64' --disablerepo='*' --enablerepo=rawhide
 Fedora - Rawhide - Developmental packages for t  18 MB/s |  64 MB     00:03
 Last metadata expiration check: 0:00:15 ago on Tue 23 Aug 2022 11:17:32 AM CDT.
 abrt-retrace-client-0:2.15.1-4.fc37.x86_64
 badwolf-0:1.2.2-3.fc37.x86_64
 bookworm-0:1.1.3-0.8.20200414git.c7c3643.fc37.x86_64
 cawbird-0:1.4.2-4.fc37.x86_64
 cinnamon-0:5.4.11-1.fc38.x86_64
 claws-mail-plugins-fancy-0:4.1.0-5.fc37.x86_64
 claws-mail-plugins-gdata-0:4.1.0-5.fc37.x86_64
 coin-0:1.3.0-7.fc37.x86_64
 cutter-0:1.2.7-7.fc37.x86_64
 darktable-0:4.0.0-3.fc37.x86_64
 dino-0:0.3.0-4.fc37.x86_64
 dleyna-renderer-0:0.6.0-15.fc37.x86_64
 dleyna-server-0:0.6.0-14.fc37.x86_64
 dmapd-0:0.0.91-4.fc37.x86_64
 elementary-calendar-0:6.1.1-1.fc37.x86_64
 elementary-code-0:6.2.0-2.fc37.x86_64
 elementary-mail-0:6.4.0-1.fc36.x86_64
 elementary-photos-0:2.7.5-2.fc37.x86_64
 elementary-planner-1:3.0.7-1.fc37.x86_64
 elementary-tasks-0:6.3.0-1.fc37.x86_64
 emacs-1:28.1-3.fc37.x86_64
 ephemeral-0:7.1.0-4.fc37.x86_64
 exfalso-0:4.5.0-3.fc37.noarch
 flatpak-builder-0:1.2.2-4.fc37.x86_64
 fondo-0:1.6.1-3.fc37.x86_64
 frogr-0:1.6-5.fc35.x86_64
 gajim-0:1.4.7-1.fc37.noarch
 gambas3-gb-gtk3-webview-0:3.17.3-2.fc37.x86_64
 gamehub-0:0.16.3.2-5.fc37.x86_64
 geany-plugins-geniuspaste-0:1.38-5.fc37.x86_64
 geany-plugins-markdown-0:1.38-5.fc37.x86_64
 geany-plugins-updatechecker-0:1.38-5.fc37.x86_64
 geoclue2-0:2.6.0-3.fc37.x86_64
 geocode-glib-0:3.26.4-1.fc37.x86_64
 gfbgraph-0:0.2.5-2.fc37.x86_64
 gnome-calculator-0:43~alpha-2.fc37.x86_64
 gnome-games-0:40.0-3.fc36.x86_64
 gnome-music-0:42.1-3.fc37.noarch
 gnome-software-0:43.beta-3.fc38.x86_64
 gnome-video-arcade-0:0.8.8-13.fc37.x86_64
 goodvibes-0:0.7.4-2.fc37.x86_64
 grilo-0:0.3.15-2.fc38.x86_64
 grilo-plugins-0:0.3.15-1.fc38.x86_64
 gssdp-0:1.4.0.1-3.fc37.x86_64
 gssdp-utils-0:1.4.0.1-3.fc37.x86_64
 gupnp-0:1.4.3-3.fc37.x86_64
 gupnp-tools-0:0.10.3-2.fc37.x86_64
 homebank-0:5.5.6-2.fc37.x86_64
 libabiword-1:3.0.5-4.fc37.x86_64
 libchamplain-0:0.12.20-7.fc37.x86_64
 libdmapsharing-0:2.9.41-8.fc37.x86_64
 libdmapsharing4-0:3.9.10-6.fc37.x86_64
 libepc-0:0.4.0-23.fc37.x86_64
 libepc-ui-0:0.4.0-23.fc37.x86_64
 libgda5-tools-1:5.2.10-12.fc38.x86_64
 libgda5-web-1:5.2.10-12.fc38.x86_64
 libgdata-0:0.18.1-6.fc37.x86_64
 libgepub-0:0.6.0-10.fc37.x86_64
 libgovirt-0:0.3.8-5.fc37.x86_64
 libgrss-0:0.7.0-15.fc37.x86_64
 libgweather-0:40.0-4.fc37.x86_64
 libmateweather-0:1.26.0-3.fc37.x86_64
 libsoup-devel-0:2.74.2-3.fc37.x86_64
 libtimezonemap-0:0.4.5.2-1.fc38.x86_64
 libtranslate-0:0.99-113.fc37.x86_64
 liferea-1:1.13.9-1.fc37.x86_64
 linphone-0:3.6.1-49.fc37.x86_64
 logjam-1:4.6.2-28.fc37.x86_64
 meteo-0:0.9.9.1-3.fc37.x86_64
 midori-0:9.0-11.fc37.x86_64
 mmsd-tng-0:1.9-2.fc37.x86_64
 mpdscribble-0:0.22-25.fc37.x86_64
 osinfo-db-tools-0:1.10.0-4.fc37.x86_64
 osm-gps-map-0:1.1.0-11.fc37.x86_64
 ostree-tests-0:2022.5-2.fc37.x86_64
 perl-HTTP-Soup-0:0.01-28.fc37.x86_64
 polari-0:42.1-2.fc37.x86_64
 pragha-0:1.3.3-23.fc37.x86_64
 purple-chime-0:1.4.1-7.fc37.x86_64
 python3-nbxmpp-0:3.1.1-1.fc37.noarch
 remmina-0:1.4.27-5.fc37.x86_64
 rest0.7-0:0.8.1-2.fc37.x86_64
 rhythmbox-0:3.4.6-2.fc37.x86_64
 rygel-0:0.40.4-2.fc37.x86_64
 seahorse-0:42.0-2.fc37.x86_64
 snapd-glib-0:1.58-5.fc37.x86_64
 snapd-glib-tests-0:1.58-5.fc37.x86_64
 snapd-qt-tests-0:1.58-5.fc37.x86_64
 soup-sharp-0:2.42.2-7.20190810git0f36d10.fc37.x86_64
 srain-0:1.4.0-3.fc37.x86_64
 surf-0:2.0-14.fc37.x86_64
 switchboard-plug-onlineaccounts-0:6.5.0-1.fc37.x86_64
 taxi-0:2.0.1-3.fc37.x86_64
 telepathy-gabble-0:0.18.4-19.fc37.x86_64
 telepathy-salut-0:0.8.1-28.fc37.x86_64
 uhttpmock-0:0.5.5-2.fc37.x86_64
 vfrnav-0:20201231-30.fc37.x86_64
 webkit2gtk4.0-0:2.37.90-1.fc38.x86_64
 webkit2gtk4.0-devel-0:2.37.90-1.fc38.x86_64
 xfce4-screenshooter-0:1.9.11-1.fc38.x86_64
 xfce4-screenshooter-plugin-0:1.9.11-1.fc38.x86_64
 xfce4-weather-plugin-0:0.11.0-4.fc37.x86_64

== Contingency Plan ==

* Contingency mechanism: restore libsoup 2 package
* Contingency deadline: beta freeze
* Blocks release? possibly, it will depend on which packages
successfully make the transition


== Documentation ==

[https://libsoup.org/libsoup-3.0/migrating-from-libsoup-2.html
Migrating from libsoup 2]

== Release Notes ==

To-do


-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux