F43 Change Proposal: Retire gtk3-rs, gtk-rs-core v0.18, and gtk4-rs v0.7 (self-contained)

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

 



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




[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