Port your application from GNOME 2 to GNOME 3
GNOME's developer technologies have been dramatically improved for version 3.0, making them faster, easier to use, and delivering enhanced user experiences. If you are responsible for an application which makes use of GNOME's developer technologies, it is recommended that you port to GNOME 3 in order to take advantage of these improvements.
The following guide is a checklist of the steps required to port a piece of GNOME 2 software to version 3.
The following procedures are essential parts of the porting process:
- Do not use deprecated libraries:
libglade: use GtkBuilder instead.
- libgnome, libgnomeui: use GTK+ features directly instead.
- libsexy: use GTK+ features directly instead.
- gnome-vfs: use GIO instead.
Bonobo: use GTK+ features and GDBus (see below).
- Make your GTK+ 2 application GTK+ 3 compliant:
Port your GTK+ 2 application to GTK+ 3: migration guide
Fix your .desktop file: GNOME Goal
- Include a high-resolution application icon. Sizes covered should include 16x16, 22x22 (24x24), 32x32, 48x48 and 256x256.
If your application reads proxy configuration from GConf (such as the keys under /system/proxy), you will need to update your code to look at the new DConf proxy keys. See DevGnomeOrg/Gnome3PortingGuide/ProxyConfiguration.
While these are not essential, the following steps are advised. They will prevent you from having to do further porting work in the future, and will enable you to take advantage of the full range of the improvements in GNOME 3.
Use GSettings instead of GConf.
Use GDBus instead of dbus-glib.
Port your documentation to the new Mallard format.
Add GObject Introspection support to your library.
Use the correct icon names: GNOME Goal.
If you use Python, move to the new introspection-based PyGObject bindings.
Use the XDG Base Directory Specification.
If your module installs a panel applet, write a gnome-shell extension instead.
All the content of this page is under Creative Commons Attribution 3.0 License