Maemo packaging features you're missing out on

2008-11-17 19:24 UTC by Ryan Abel

Since a lot of you will be changing your packaging once the new categories are added to the Application Manager (which we are still missing a few translations!), now seems like a good time to discuss some of the packaging features many of you are missing out on.

Pretty names in Application Manager

Much like you can specify separate "Unix" and a "pretty" names for your project on Garage, you can specify a "Maemo-Display-Name" to show a "pretty" name for your package in Application Manager. Simply add a line with "XB-Maemo-Display-Name" to your debian/control file with the desired display name of your package, and it will show up as the package name in Application Manager. For instance, "OS2008 Feature upgrade" instead of "osso-software-version-rx34". This makes the package list look much cleaner, and package names much more readable. It's a dead-simple way to improve the user experience for everybody.

Upgrade descriptions

Typically users will either have to refer to a website (assuming you have one) or dig into the changelog in the .deb if they want to know what new things they're getting with an upgrade. Fortunately there's an easy way to provide a user-friendly change log right in the Application Manager. Simply specify an "XB-Maemo-Upgrade-Description" field in your debian/control file with a description of the update (formatted the same as the Description field), and users will see the description in a separate tab in the info dialog during updates.

Package icons

Packages can have icons displayed next to their names in the Application Manager, to have an icon, you simply need to encode a 26x26 pixel image (PNG is a reasonable choice) of your icon into base64 (uuencode -m) and add it to your debian/control file under "XB-Maemo-Icon-26". If you don't provide an icon your package will end up with the drab, ugly default package icon.

Selecting a menu location

Most of you know you can show a dialog to let the user select a menu location for your application by calling "maemo-select-menu-location" from your postinst script, but what many of you may not realize, is that doing just this will show the dialog again during updates even when the user has already selected a location, which can be quite irritating.

Thankfully there's a simple fix. Simply wrap the maemo-select-menu-location with an if statement to get something like this:

if [ -z "$oldversion" ]; then
maemo-select-menu-location your.desktop

Which will check to see if the package has been previously installed and suppress the folder selection dialog if it has.

For more information about these and packaging in general, see the hildon-application-manager packaging guide, the Maemo Packaging Policy, and the Debian Packaging Policy.