Debian-news is about one simple thing - news about Debian GNU/Linux and the top free distributions based on Debian GNU/Linux.


 

Preparing for GTK 3.0 and GNOME 3

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

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.

GLIB
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
documentation.

GDK / GTK+
Same as GLib. If you can build your package with GTK+ 2.16 using
-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED
-DGDK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES, it
is very likely that your package can build with GTK+ 3.0.

ESOUND
Applications still using EsounD should be ported to using
libcanberra (for sound events) or GStreamer (for the rest).

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

GNOME-VFS
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
GnomeVFS.

LIBART
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
Libglade is going away in favor of GtkBuilder.

LIBGNOME
This collection of random APIs with various uses is completely
going away. The replacements are scattered among various
libraries now:
* 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

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

LIBGNOMECANVAS
Deprecated in favor of libcairo.

LIBEEL
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
Nautilus.

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

LIBNAUTILUS-BURN
It is going to be replaced with libbrasero-burn which has a very
similar API.

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

Cheers,
— .”`. 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.

No Response to “Preparing for GTK 3.0 and GNOME 3” »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Debian-News is not related to the Debian Project.
All logos and trademarks on this site are property of their respective owners.