Wiki - https://fedoraproject.org/wiki/Changes/Retire_gtk3-rs,_gtk-rs-core_v0.18,_and_gtk4-rs_v0.7 Discussion thread - https://discussion.fedoraproject.org/t/f43-change-proposal-retire-gtk3-rs-gtk-rs-core-v0-18-and-gtk4-rs-v0-7-self-contained/146853 This is a proposed Change for Fedora Linux. 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 Rust bindings for GTK3 (and related libraries) are unmaintained upstream, and are no longer updated in lockstep with bindings for GLib and other related libraries. The packages for gtk3-rs were previously [https://fedoraproject.org/wiki/Changes/Deprecate_gtk3-rs deprecated]. This is the next step - the removal of the packages for gtk3-rs, and the compat packages for old versions of gtk-rs-core (v0.18) and gtk4-rs (v0.7) that are associated with them. == Owner == * Name: [[User:Decathorpe| Fabio Valentini]] * Email: decathorpe (at) gmail (dot) com == Detailed Description == The Rust bindings for GTK3 have been officially on basic maintenance only since the release of [https://gtk-rs.org/blog/2023/02/10/new-release.html gtk-rs 0.17], and the last release that included updated GTK3 bindings was [https://gtk-rs.org/blog/2023/08/28/new-release.html gtk-rs 0.18]. As a result, the most recent version continues to pull in compat packages for version 0.18 of gtk-rs-core (Rust bindings for GLib, pango, cairo, etc.), which has not been maintained either, since it was obsoleted by versions 0.19 and 0.20 upstream. These Rust bindings receive regular fixes for safety and correctness issues - continuing to depend on old versions is not ideal, since only critical fixes are backported to the Fedora packages for these obsolete versions (if that is even possible). The upstream project does not backport fixes or release new versions of older release branches at all. This also affects packages that continue to depend on version 0.7 of the bindings for GTK4. However, packages that only depend on crates from gtk-rs-core or gtk4-rs do have a migration path to newer versions of these crates, whereas packages that depend on crates from gtk3-rs need to port from GTK3 to GTK4 first. == Feedback == N/Y == Benefit to Fedora == The Rust bindings for GTK3 - and gtk-rs 0.18 in general - are obsolete. This Change ensures that Fedora ships less obsolete software and / or fewer obsolete versions of packages. == Scope == * Proposal owners: Retire the following packages: gtk3-rs / libhandy-rs packages (unmaintained upstream): rust-atk rust-atk-sys rust-gdk rust-gdk-sys rust-gtk rust-gtk-sys rust-libhandy rust-libhandy-sys gtk-rs-core v0.18 compat packages: rust-cairo-rs0.18 rust-cairo-sys-rs0.18 rust-gdk-pixbuf0.18 rust-gdk-pixbuf-sys0.18 rust-gio0.18 rust-gio-sys0.18 rust-glib0.18 rust-glib-sys0.18 rust-glib-build-tools rust-gobject-sys0.18 rust-graphene-rs0.18 rust-graphene-sys0.18 rust-pango0.18 rust-pango-sys0.18 rust-pangocairo0.18 rust-pangocairo-sys0.18 gtk4-rs v0.7 / libadwaita-rs v0.5 compat packages: rust-gdk4_0.7 rust-gdk4-sys0.7 rust-gsk4_0.7 rust-gsk4-sys0.7 rust-gtk4_0.7 rust-gtk4-sys0.7 rust-libadwaita0.5 rust-libadwaita-sys0.5 The Change Owner(s) will file Pull Requests for dependent packages to move to newer versions of those libraries, where possible. === Other developers === There are some applications in Fedora that depend on these old bindings: * helvum → libadwaita-rs v0.5 and gtk-rs-core v0.18 compat packages * squeekboard → obsolete GTK3 bindings and gtk-rs-core v0.18 compat packages * system76-keyboard-configurator → obsolete GTK3 bindings and gtk-rs-core v0.18 compat packages * wildcard → libadwaita-rs v0.5 and gtk4-rs v0.7 compat packages All of these packages are either co-maintained by the Rust SIG or are maintained by a member of the Rust SIG. Most of these projects already have begun work on porting to a newer version of gtk-rs, or have been aware that continuing to depend on the obsolete GTK3 bindings is a problem for years: * helvum: https://gitlab.freedesktop.org/pipewire/helvum/-/commit/f325595 * squeekboard: https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/64 * system76-keyboard-configurator: https://github.com/pop-os/keyboard-configurator/issues/133 * wildcard: https://gitlab.gnome.org/World/Wildcard/-/issues/42 Packages that will not or cannot be ported to a newer version of gtk-rs in time - for example because it would also involve a port from GTK3 to GTK4 - will be broken, and should likely also be retired from Fedora. === Release engineering === N/A (not needed for this Change) === Policies and guidelines === N/A (not needed for this Change) === Trademark approval === N/A (not needed for this Change) === Alignment with the Fedora Strategy === 🤷🏻♂️ == Upgrade/compatibility impact == The packages for Rust libraries like the gtk-rs crates are only installed at build-time, and are not pulled in as dependencies on user systems. There should be no impact on upgrades other than the possible removal of applications that cannot be ported to gtk-rs 0.19+ or from gtk3-rs to gtk4-rs in time. == Early Testing (Optional) == N/A == How To Test == The listed packages should no longer be available from Fedora repositories. == User Experience == Packages for projects that cannot be ported to gtk-rs 0.19+ or from gtk3-rs to gtk4-rs will no longer be available from the Fedora repositories. == Dependencies == * helvum * squeekboard * system76-keyboard-configurator * wildcard == Contingency Plan == * Contingency mechanism: N/A (not a System Wide Change) * Contingency deadline: N/A (not a System Wide Change) * Blocks release? N/A (not a System Wide Change) == Documentation == * https://gtk-rs.org/blog/2023/02/10/new-release.html * https://gtk-rs.org/blog/2023/08/28/new-release.html * https://gtk-rs.org/blog/2024/06/01/new-release.html == Release Notes == The Rust bindings for GTK3 are obsolete and officially unmaintained. They had been marked as deprecated in Fedora 42, and were removed in Fedora 43, alongside the obsolete packages for version 0.18 of the gtk-rs-core crates and version 0.7 of the gtk4-rs crates. -- Aoife Moloney Fedora Operations Architect Fedora Project Matrix: @amoloney:fedora.im IRC: amoloney -- _______________________________________________ devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-announce-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-announce@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue -- _______________________________________________ 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