F42 Change Proposal: Deprecate gtk3-rs (self-contained)

Deprecate gtk3-rs

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.

Wiki
Announced

:link: 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.

:link: Owner

  • Name: Fabio Valentini
  • Email: decathorpe (at) gmail (dot) com
  • Name: Rust SIG
  • Email: rust (at) lists (dot) fedoraproject (dot) org

:link: 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.

:link: Feedback

N/Y

:link: 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).

:link: 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?

:link: Upgrade/compatibility impact

N/A

:link: How To Test

Ensure that dnf repoquery --provides rust-$crate-devel includes deprecated() for all listed packages in Fedora 42+.

:link: User Experience

N/A

:link: Dependencies

Two packages currently depend on the Rust bindings for GTK3, and both already have open upstream issues for moving to GTK4:

:link: 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)

:link: Documentation

:link: 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.

Last edited by @amoloney 2024-12-12T14:23:17Z

Last edited by @amoloney 2024-12-12T14:23:17Z

1 Like

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

This change proposal has now been submitted to FESCo with ticket #3311 for voting.

To find out more, please visit our Changes Policy documentation.