MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

Harmattan Appendix to the Debian Policy Manual

MeeGo 1.2 Harmattan platform uses Debian packages to install additional software. Most of the Debian Policy for packages applies to Harmattan unchanged; the differences are described in this section.

User visible packages

The Package Manager only shows packages that are marked to be user visible. This has been done to hide the existence of the hundreds of system packages that make up the operating system itself. The invisible packages are still managed by the Package Manager, but only indirectly through dependencies, and so on.

To mark a package as user visible, use the visible flag:

XB-Maemo-Flags: visible

See below about details of additional fields like Maemo-Flags.

Additional control fields

The Harmattan package manager can make use of some additional fields in the control fields of a package. These fields generally start with a Maemo- or MeeGo- prefix.

To get these fields into your .deb files, include them with a XB- prefix in your debian/control file. See the Debian Policy Manual, section 5.7.

If you are using a tool that creates the source packages for you, see the documentation of that tool for how to include these fields into the package.

Pretty names

A package can have a pretty name. This name is displayed in the UI instead of the real package name.

You can specify the pretty name with the Maemo-Display-Name field.

Upgrade descriptions

Note: Nokia Store does not currently support upgrade descriptions for Harmattan applications.

A package can have a separate description to be used when a upgrade for it is displayed. This description explains what is new in this version of the package.

You can specify the upgrade description with the Maemo-Upgrade-Description field. It is formatted like the normal Description field.

Localised names and descriptions

The Maemo-Display-Name, Description, and Maemo-Upgrade-Description fields can be provided in more than one language.

When the current locale is LOC (for example, "de_DE"), the Package Manager first tries Description-LOC to find the short and long descriptions of a package, and falls back to Description when that field does not exist. Like the rest of the control file, the values for these fields must be encoded in UTF-8.


A package can have an icon that is displayed next to its name by the Package Manager. Icons are included in the control information of a package as a base64 encoded field named Maemo-Icon-26.

The image format of the icon must be PNG and the maximum dimensions for the icon are 64 x 64 pixels, which is the recommended native size. The minimum dimensions for the icon are 26 x 26 pixels.


A package can specify certain flags, using the Maemo-Flags field.

The value of the Maemo-Flags field must be a comma separated list of one or more words. The following value is allowed:

  • visible
    The package is visible in the Package Manager UI. See above "User visible packages" for more information about this.


The value is the filename of the Desktop Entry of this package. It can either be a absolute filename or relative to /usr/share/applications. The ".desktop" extension can be omitted, too.

If you want your application entry in the launcher to be reliably integrated with the Package Manager, you need to specify this field, even if the name of your desktop entry file is the same as your package name.


MeeGo-Desktop-Entry-Filename: calc
MeeGo-Desktop-Entry-Filename: /usr/share/meegotouch/applicationextensions/calc.desktop


The value is a Desktop Entry content, encoded like the Description field. This value is used when creating Desktop Entries for this package before the package is installed, for example to show download progress in the launcher. It must contain everything that is necessary to correctly display the entry in the launcher, but does not need to contain anything else, such as how to actually launch the application.

Empty lines at the start of the value are removed. Example:

 [Desktop Entry]

Note the extra space at the beginning of each line.

If this field is omitted, it defaults to something minimal but useful, such as

[Desktop Entry]

In both cases, the Name field can be omitted. If omitted, the Name is filled in based on the Maemo-Display-Name field.