Summary

This spec is about reusing Ubuntu apps in Xubuntu when it makes sense, instead of having entirely different ones written from scratch.

Rationale

Since users have similar demands from various desktop environments, it is desirable to provide these using the same applications when possible. This reduces the development and maintenance efforts and results in a more consistent user experience.

This spec covers various aspects of making Gnome apps reusable in Xubuntu. While it would be even nicer to increase reuse across all three desktops this is only about the easier part, namely Gtk based apps for Gnome and Xfce.

Use cases

Scope

Packages identified are:

Design

Naturally, all applications in the Gnome environment link to the platform libraries in addition to glib/gtk. This means about extra 25-30 library dependencies vs the gtk-only case when such a build is possible. The memory footprint and resulting impact on performance of this is the reason Xubuntu installs only GTK apps by default.

In some cases the dependency is essential for the functioning of the app, all uses of GnomeVFS and Bonobo fall in this category. There are however apps where the dependency is either only for historical reasons or because it was more convenient to use a Gnome library than gtk/glib directly (ex. GDM went GTK-only for 2.14 with no loss of features and with few changes)

Long term, Project Ridley addresses this problem, but for now there are still apps which for one or two functions depend on all the Gnome libraries.

Examples:

All of these bring in the whole dependency chain including vfs,bonobo,esd,avahi

Most of these functions are not done in gtk2.10 and have no alternatives in the Project Ridley wiki.

For the case of apps which cannot be made Gtk only and are using CDBS, we need to make CDBS support multibuild so we use the same source package at least. The method of making CDBS support multibuild is yet to be decided.

Implementation

IMPORTANT: since this is about reducing duplication, no new source package will be added(like evince-gtk, xubuntu-system-tools) So packages which we cannot make gtk-only and shared with gnome, or patch and have two binary packages (debhelper, or cdbs iff it gets the functionality) we will not consider as the maintenance burden is too high.

For each application

Python Gnome bindings could be made more granular so when using only the gnomecanvas library only libgnomecanvas is depended upon (the case of hwdb-client, ldm, gcompris)

Code

Data preservation and migration

Outstanding issues

List of packages and what are the issues for each of them:

BoF agenda and discussion

Comments


CategorySpec

Xubuntu/Roadmap/Specifications/Dapper/ReducingDuplicationSpec (last edited 2012-07-17 21:26:02 by nblzone-227-162)