[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Preparing for GTK 3.0 and GNOME 3



[ Re-posting to d-d-a so that everyone concerned gets the announcement. ]

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.

Attachment: signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=


Reply to: