FFE: rust-gtk transition for GNOME 45
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
rust-gtk4 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Explanation of FeatureFreeze exception
=======
Ubuntu 23.10 ("Mantic") will include GNOME 45. It would be great if we could also ship the Rust bindings associated with GNOME 45. A lot of work has been done to package and devendor these libraries.
Earlier in the Mantic development cycle, we did this transition twice, first to the GNOME 43 level, then to GNOME 44. The first time was more difficult since it was also embedded with some other transitions in part because of the Debian Bookworm Freeze. The second time went fairly smoothly and it only took a few days. For the second transition, Debian also made many of the Rust GTK stack autopkgtests stricter (instead of ignoring failures).
All of these packages are in universe and none are seeded by any Ubuntu flavor.
Timing
======
Sorry, we were not ready to do this transition in mid August when this new major update was first released. (Needed new rustc in Debian, busy with Ubuntu Beta, etc.)
Testing Done
============
Everything built in
https:/
Successfully ran the Helvrum, Metronome, Process Viewer and Tour apps.
Transition is ongoing in Debian:
https:/
Not Tested Yet
==============
riscv64 builds on Ubuntu (unlikely to be a problem)
Ubuntu autopkgtests: Will work with Debian to resolve autopkgtest failures
Affected packages
=================
All of these ~59 packages need source uploads and can be synced from Debian Unstable except where noted.
rust-cairo-sys-rs
rust-glib-macros
rust-glib-sys
rust-gtk3-macros
rust-gtk4-macros
rust-libspa-sys (needs small change to lower bindgen dependency,
rust-gobject-sys
rust-graphene-sys
rust-pipewire-sys (needs small change to lower bindgen dependency, Experimental only because of rust-convert-case)
rust-atk-sys
rust-gio-sys
rust-gstreamer-sys
rust-pango-sys
rust-gdk-pixbuf-sys
rust-gstreamer-
rust-pangocairo-sys
rust-gdk-sys
rust-gdk4-sys
rust-gdk4-
rust-gdk4-x11-sys
rust-gdkx11-sys
rust-gsk4-sys
rust-gstreamer-
rust-gstreamer-
rust-gtk-sys
rust-gtk4-sys
rust-gstreamer-
rust-libadwaita-sys
rust-ashpd
rust-convert-case (NEW, required for rust-libspa)
rust-glib
rust-atk
rust-cairo-rs
rust-gio
rust-graphene-rs
rust-gstreamer
rust-gvdb
rust-libspa (Experimental only because of rust-convert-case)
rust-gdk-pixbuf
rust-gstreamer-base
rust-pango
rust-pipewire (Experimental only because of rust-convert-case))
rust-gdk
rust-gdk4
rust-gstreamer-
rust-gstreamer-
rust-pangocairo
rust-gdk4-wayland
rust-gdk4-x11
rust-gdkx11
rust-gsk4
rust-gstreamer-
rust-gtk
rust-gtk4
rust-libadwaita
gnome-metronome (Debian has much older pre-Rust version)
gnome-tour (not in Debian yet)
helvum (slight difference because Ubuntu is taking the new pipewire)
rust-process-viewer
Build system change
===================
To satisfy the Debian ftpmasters so that Rust+libadwaita apps could be packaged in Debian, starting with this transition, we are now building the -sys packages (except for libspa, pipewire, & gstreamer*) by regenerating their source code using gir-rust-
This diverges us from upstream who do not expect distros to do this, but the changes we have seen so far are minor formatting differences.
Trackers
========
Britney is able to manage the transition and it will all migrate together.
These trackers show current Rust uninstallability:
https:/
https:/
News and other details
=======
https:/
"less breaking changes" compared to previous releases
Final expected series for the GTK3 bindings. Almost everything using Rust GTK has switched to GTK4. So there will be less core library packages in future transitions, but we'll make up for it by adding more apps.
Ubuntu only has one packaged Rust GTK3 app: squeekboard.
And 4 packaged Rust GTK4 apps, shown in the final section of list of affected apps.
Changed in rust-gtk4 (Ubuntu): | |
status: | New → Incomplete |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in rust-gtk4 (Ubuntu): | |
status: | Incomplete → New |
description: | updated |
description: | updated |
description: | updated |
Changed in rust-gtk4 (Ubuntu): | |
status: | Triaged → Fix Released |
This is really quite late and doesn't fall into the documented Feature Freeze Exception categories but the scope of impact and risk seems low so go ahead.