FFE: rust-gtk transition for GNOME 45

Bug #2033403 reported by Jeremy Bícha
8
This bug affects 1 person
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://launchpad.net/~jbicha/+archive/ubuntu/rust/+packages

Successfully ran the Helvrum, Metronome, Process Viewer and Tour apps.

Transition is ongoing in Debian:
https://release.debian.org/britney/update_excuses.html#rust-atk

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,Experimental only because of rust-convert-case)

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-base-sys
rust-pangocairo-sys

rust-gdk-sys
rust-gdk4-sys

rust-gdk4-wayland-sys
rust-gdk4-x11-sys
rust-gdkx11-sys
rust-gsk4-sys
rust-gstreamer-audio-sys
rust-gstreamer-video-sys
rust-gtk-sys

rust-gtk4-sys
rust-gstreamer-player-sys (Experimental only because not needed in Unstable)

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-audio
rust-gstreamer-video
rust-pangocairo

rust-gdk4-wayland
rust-gdk4-x11
rust-gdkx11
rust-gsk4
rust-gstreamer-player (not in Debian)
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-code-generator and the gir packages provided by libgtk-4-dev etc.

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://ubuntu-archive-team.ubuntu.com/transitions/html/rust.html
https://release.debian.org/transitions/html/rust.html

News and other details
======================
https://gtk-rs.org/blog/2023/08/28/new-release.html

"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.

Tags: mantic
Jeremy Bícha (jbicha)
Changed in rust-gtk4 (Ubuntu):
status: New → Incomplete
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
description: updated
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Changed in rust-gtk4 (Ubuntu):
status: Incomplete → New
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
Revision history for this message
Brian Murray (brian-murray) wrote :

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.

Changed in rust-gtk4 (Ubuntu):
status: New → Triaged
Revision history for this message
Jeremy Bícha (jbicha) wrote :

I ported rust-process-viewer and am uploading to Debian now

Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
Changed in rust-gtk4 (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.