← Back to team overview

openshot.developers team mailing list archive

HowTo: Add Application to Ubuntu Add/Remove Applications (gnome-app-install)

 

I've found that the various instructions I gave previously from a
multitude of half-baked forum/blog/wiki posts were all inaccurate or
incomplete.

This is the definitive How-To for adding a program to Ubuntu's
"Add/Remove Applications" tool manually.

** The application will only show when its package is installed **

The tool is properly called "gnome-app-install" and is in the package
"gnome-app-install".

It maintains a *separate* database of XDG .desktop files and icons at:

/usr/share/app-install/desktop/
/usr/share/app-install/icons/

The files installed in these directories are shipped in the Ubuntu
package "app-install-data".

It maintains a cache of the applications which is generated using
"update-app-install".

The source package's "xdg/openshot.desktop" looks like this:
-----
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Terminal=true
Exec=openshot %F
Categories=GNOME;Application;AudioVideo
Name=OpenShot Video Editor
Comment=Create and Edit Videos
Icon=openshot.png
Name[en]=OpenShot Video Editor
Comment[en]=Create and Edit Videos
Icon[en]=openshot.png
MimeType=application/vnd.openshot-project
X-AppInstall-Package=openshot
X-Ubuntu-Gettext-Domain=OpenShot
-----

The "debian/openshot.install" file, which instructs "dh_install" on
where to put files in the package, is used to install the ".desktop" and
icon files to gnome-app-install's directories as well as the XDG
directories:
-----
xdg/openshot.desktop	usr/share/applications
xdg/openshot.desktop	usr/share/app-install/desktop
xdg/openshot.png /usr/share/pixmaps
xdg/openshot.png /usr/share/app-install/icons
-----

The "debian/openshot.postinst" script that runs on the user's system
after files have been installed, calls the "gnome-app-install" database
updater:
-----
#!/bin/sh
set -e
# update the Add/Remove... list from the openshot.desktop file
if [ "$1" = "configure" ] && [ -x "`which update-app-install
2>/dev/null`" ]; then
	update-app-install
fi
-----
The "debian/openshot.postrm" script that runs when the user's system has
removed the package's files
(/usr/share/app-install/desktop/openshot.desktop will now have been
deleted), calls the "gnome-app-install" database updater so OpenShot
will no longer appear in the list:
-----
#!/bin/sh
set -e
# update the Add/Remove... list
if [ -x "`which update-app-install 2>/dev/null`" ]; then
	update-app-install
fi
-----

I've attached a screenshot "Add/Remove Applications" showing OpenShot.

The thing to understand about this is that OpenShot *will not* appear in
Add/Remove Applications unless it is already installed on the user's
system.

For OpenShot to appear in the list when not installed Ubuntu would need
to add it to the "app-install-data" package. For that to happen OpenShot
would need to be accepted into the Ubuntu archive - probably "universe"
or "multiverse".

For that to happen all OpenShot's dependencies would need to be in the
Ubuntu archives already.

That implies that the dependency versions we have packaged separately
would all need to be in the Ubuntu archives. Additionally, we'd need the
MLT package maintainer to accept my 'python-mlt' patches so the archives
carried "python-mlt".

I think this should be the aim for Karmic+1, Ubuntu 10.04.

Once I've got the Debian/Ubuntu packaging stable the next step will be
to contact the maintainers of the dependency package in the Debian and
Ubuntu projects to ensure they are closer to the latest upstream
versions and accept any patches we've created.

With that in hand we can find sponsors in both projects to get OpenShot
accepted. The ideal is to get it accepted in Debian since then Ubuntu
will sync it automatically from the Debian archive.

Attachment: OpenShot-Add-Remove Applications.png
Description: PNG image


Follow ups

References