Deprecate gtk3-rs
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. This Change to mark the packages for the gtk3-rs crates as deprecated reflects this status.
Owner
- Name: Fabio Valentini
- Email: decathorpe (at) gmail (dot) com
- Name: Rust SIG
- Email: rust (at) lists (dot) fedoraproject (dot) org
Current status
- Targeted release: Fedora Linux 42
- Last updated: 2024-12-12
- Announced
- Discussion thread
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
It was announced that the Rust bindings for GTK3 are on basic maintenance only in the release announcement for gtk-rs 0.17.
The release announcement for gtk-rs 0.18 noted that it would be the last release that included the GTK3 bindings.
As expected, the release announcement for gtk-rs 0.19 announces that support for the GTK3 bindings was officially dropped.
Applications that rely on the Rust bindings for GTK3 continue to pull in version 0.18 of the Rust bindings for GLib, cairo, pango, etc. (which were obsoleted by version 0.19 and then 0.20) and the unmaintained bindings for atk and gdk. This also affects the Rust bindings for libhandy.
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.
Feedback
N/Y
Benefit to Fedora
The Rust bindings for GTK3 are obsolete. This Change ensures that no new packages are introduced that depend on them, and that they can eventually be removed from Fedora entirely (alongside old versions of the bindings for GLib, cairo, pango, etc. that are only still present because they are pulled in by the GTK3 bindings that are no longer updated in lockstep).
Scope
- Proposal owners:
All affected packages are marked with Provides: deprecated()
according to the Packaging Guidelines for deprecating packages.
rust-atk rust-atk-sys rust-gdk rust-gdk-sys rust-gtk rust-gtk-sys rust-gtk3-macros rust-libhandy rust-libhandy-sys
- Other developers:
N/A
- Release engineering:
N/A
- Policies and guidelines:
N/A
- Trademark approval:
N/A
- Alignment with the Fedora Strategy:
Err ... maybe?
Upgrade/compatibility impact
N/A
How To Test
Ensure that dnf repoquery --provides rust-$crate-devel
includes deprecated()
for all listed packages in Fedora 42+.
User Experience
N/A
Dependencies
Two packages currently depend on the Rust bindings for GTK3, and both already have open upstream issues for moving to GTK4:
- squeekboard: https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/64
- system76-keyboard-configurator: https://github.com/pop-os/keyboard-configurator/issues/133
Contingency Plan
N/A (not a System Wide Change)
In the extremely unlikely event that adding Provides: deprecated()
to any or all of the listed packages causes problems, this change can be easily reverted.
- Contingency mechanism: N/A (not a System Wide Change)
- Contingency deadline: F42 Final Freeze
- 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. The packages for them have been marked as deprecated to prevent new packages that depend on them from being added to Fedora, and they will be removed from a future release.