Hi, although for various reasons (mostly ongoing transitions) we are quite late in packaging GNOME 2.26 in Debian, we should also look at the future. GTK+ 3.0 is planned around march 2010, and GNOME 3.0 a little while later. With them comes the final deprecation of many GNOME 2.X interfaces.
It took a very long time (8 years!) to get rid of GTK+ 1.2 and the
process is in its final stage now. I’d like to avoid this horrible mess
for GTK+ 2.X and for the GNOME libraries that will stop being maintained
upstream after the 3.0 release. Fortunately, GTK+ 3.0 is an evolutionary
change, not a revolutionary one. Which means for some applications there
will be zero porting work, and for most of them there will only be minor
changes required. For GNOME libraries, the changes will be more radical.
This concerns less applications, but several libraries will simply
What you can do right now is start to work on packages using the GNOME
library stack. For affected packages, you can start working on patches
right now, or at least pester your upstream so that they do.
Now for the various pieces.
The changes in GLib will mostly concern in removing deprecated
APIs. If your packages build with -DG_DISABLE_DEPRECATED
-DG_DISABLE_SINGLE_INCLUDES, they are most likely to build with
GLib 3.0 with only compilation changes.
Removed functions have replacements described in the API
GDK / GTK+
Same as GLib. If you can build your package with GTK+ 2.16 using
-DGDK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES, it
is very likely that your package can build with GTK+ 3.0.
Applications still using EsounD should be ported to using
libcanberra (for sound events) or GStreamer (for the rest).
There are plans to replace GConf by dconf, but it is quite
certain that there will be at least a GConf compatiliby layer,
so there is nothing to be done here.
GnomeVFS has been deprecated for a while in favor of GIO, but
porting is not something trivial.
The GIO API documentation has some notes on how to port from
It is now preferred to draw custom objects directly using Cairo,
using the gdk_cairo_* API.
LIBBONOBO / LIBBONOBOUI
This part is completely going away, and it’s not easy. Replacing
it generally means revamping parts of the application to use
D-Bus for communication instead.
LIBIDL / ORBIT
ORBit will stay as a general-purpose CORBA implementation, but
it is not meant to be used in GNOME applications anymore –
currently its primary users are GConf and Bonobo.
Libglade is going away in favor of GtkBuilder.
This collection of random APIs with various uses is completely
going away. The replacements are scattered among various
* GnomeProgram => GLib, libunique
* gnome_execute_* => GLib (g_spawn)
* gnome_gconf => GConf
* gnome_help, gnome_url => GIO (g_app_info)
* gnome_sound => libcanberra
* Various stuff in GLib
* More information: http://live.gnome.org/LibgnomeMustDie
Same issue as with libgnome, the replacements depend on what the
API is originally about.
* gnome_init => GLib (GOption)
* GnomeClient => Session management will be added to GTK+,
it’s still missing AFAIK
* The various widgets have replacements in GTK+ now.
Deprecated in favor of libcairo.
It has never been a widely used library, and it will be gone
after 2.24. Replacements can be found in GTK+ for some widgets,
for some others you will have to look at how it is now done in
GtkSourceView 1.X is already deprecated, you should upgrade to
GtkSourceView 2.X now.
LIBGNOMEPRINT / LIBGNOMEPRINTUI
Both deprecated in favor of gtk-unix-print (in GTK+) which is
based on Cairo.
It is going to be replaced with libbrasero-burn which has a very
Now let’s get to work. FWIW, the end of the evolution transition should
be tonight, so you’re going to see things move in the GNOME area really
– .”`. Debian 5.0 “Lenny” has been released! : :’ : `. `’ Last night, Darth Vader came down from planet Vulcan and told `- me that if you don’t install Lenny, he’d melt your brain.