Libgnome-desktop currently has a dependency on GTK 3. Various applications, including GNOME Control Center, are in the process of being ported to GTK 4 for GNOME 42, which means untangling dependencies like libgnome-desktop.
Libgnome-desktop has no API stability guarantee, so projects using it will need to ensure that they are ported to the changes in the library.
Currently, the following parts of libgnome-desktop depend on GTK or GDK:
GnomeBG: a collection of background rendering utility API
GnomeBGCrossfade: support for cross-fading two background images on a
GnomeRR: a collection of utilities for querying the physical and logical displays
- various tests
I have looked in the Debian code search for users of
GnomeBGCrossfade, and found nothing outside of libgnome-desktop and the internal copy of libgnome-desktop shipped by Cinnamon, so this API will be removed in GNOME 42.
GnomeBGSlideShow does not depend on GTK, I’ve also checked and the only user of this API is Phosh; this API will likely be removed as well, but I’m going to contact the Phosh developers to see if they can either stop using it, or copy it in tree.
GnomeBG will require some porting for GTK4, or ideally stop using GTK altogether.
Ideally, libgnome-desktop will stop depending on GTK; if that proves to be impossible, then it will be split into two separate library:
- libgnome-desktop-base-4.0, containing all the non-GUI/non-windowing system related API
- libgnome-desktop-ui-4.0, containing all the GUI/windowing system related API
to allow for phased deprecations and porting to newer versions of GTK in the future.
The overall goal, though, is to try and move as much as possible out of libgnome-desktop and into the core GNOME platform.
Feedback from current users of libgnome-desktop is welcome.