Application Install Tool for Whore^WHoary Hedgehog
Ross Burton <ross@burtonini.com>


The application presents to the user a list of applications which can be
installed or removed.  These applications are either end-user applications (such
as OpenOffice, GIMP, Gaim) or server-side roles (HTTP server, FTP server).
These can be added and removed by toggling a check box.  The applications will
be shown in a tree identical to the Applications menu on the panel, and system
roles in a separate list.

The package information based on Freedesktop .desktop files.  This is due to all
end-user applications already having a .desktop file which can be extended with
a small amount of metadata for use by the application install tool.  These
.desktop files will be extracted from the Hoary archive automatically and a
package solely containing .desktop files and the relevant icons created.

For a package to be available the .desktop file must have a X-AppInstall-Package
key under the [Desktop Entry] group, which is the name of the package the
desktop file relates too.  The Name, Comment and Icon keys will be used in the
interface.


Example 1: Sound Juicer

[Desktop Entry]
Encoding=UTF-8
Name=Sound Juicer CD Ripper
Comment=Extract music from your CDs
Exec=sound-juicer
Icon=sound-juicer.png
StartupNotify=true
Terminal=false
Type=Application
Categories=GNOME;Application;AudioVideo;
X-AppInstall-Package=sound-juicer

The only change her from the upstream .desktop file is the X-AppInstall-Package
key, which marks this application as to be displayed in the interface. The
existing Name, Comment and Icon fields are displayed to the user in the
interface.


Example 2: OpenOffice.org

OpenOffice.org installs a number of .desktop files, none of which are suitable
for displaying in an Application Install tool as they are for particular aspects
of the suite (i.e. Writer or Impress).  In this case a new .desktop file is
added to the package, which contains the required information alongside a
Hidden=true key.  The Hidden key ensures that it won't be displayed in any
application menus, but can be picked up by the Application Install Tool.

[Desktop Entry]
Encoding=UTF-8
Name=OpenOffice.org
Comment=Powerful office suite
Icon=ooo.png
Type=Application
Categories=GNOME;Application;Office;
X-AppInstall-Package=openoffice.org


The menu layout is based upon the Freedesktop menu specification.  Currently
GNOME does not support this standard, but hopefully GNOMEE 2.10 will.  At the
moment the Application Install Tool includes a copy of the Applications menu
structure in the Freedesktop menu format, which can be removed if GNOME 2.10
does move to it. [note: this depends on API additions to PyXDG]


TODO: Instead of X-AppInstall-Package, use X-AppInstall-Packages which is a list
of required packages.  This will primarily used for the "Web Server" role which
would require "apache-mpm-worker" and "apache2-doc" at least.  The UI should
represent partial-installs and allow the user to fully install or remove a
partial install.  I'm not sure if this or enforcing Recommends: to be installed
is a better solution.

TODO: Currently the X-AppInstall-Icon key is used in preference over the Icon
key if the standard Icon is not suitable.  I'm not sure there is a solid
use-case for this.
