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:
Only use toplevel Glib / GTK+ headers:
- Do not use deprecated GLib / GTK+ symbols:
- Compile your app with -DGSEAL_ENABLE:
- Use Cairo instead deprecated GDK api:
Port your GTK+2 application to GTK+3: migration guide
Fix your .desktop file: more info
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 the 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 Gconf.
Use GDBus instead dbus-glib.
Port your documentation to the new Mallard format.
Add GObject Introspection support to your library.
Use the correct icon names: more info.
If you use Python, move to the new introspection-based PyGObject bindings.
Use the XDG Base Directory Specification.
- Turn your references capplets into system settings panels.
If your module installs a panel applet, consult with the GNOME designers on how to make its functionality available in GNOME 3. See the gizmos page.
All the content of this page is under Creative Commons Attribution 3.0 License