What’s cooking for the Application Manager?
Wednesday, 12. Aug 2009
I am no longer closely involved with the venerable, aging, and often renamed Hildon Application Manager; Víctor has very successfully
stepped into bigger shoes and is maintaining it now. Nevertheless, I
can’t stop myself from giving a brief rundown of its new Fremantle
Development has moved to Gitorious, so you can check the detailed
The common theme of the changes is “policy”. The application manager
has gained a lot more attitude and polices packages much more than
Some of these policies have been designed by the Maemo community,
others not so much. In my opinion, most of them are better off being
implemented in the Maemo package upload processes than in the
I think it would be good to copy the rules into the Maemo QA process
and reduce the policy implemented by the application manager to a
simple “Does it come from the Maemo Extras repository” check.
We finally managed to ship the category cleanups that had been
prepared for Diablo: The application manager has a builtin list of
valid categories, and any package that has a category not in this list
is forcefully moved to “Other”.
The list of categories is maintained by the Maemo community; see here for more information.
So if you find your package in “Other”, you should probably update its
OS Update Protectionism
The application manager is still not as smart as apt-get or aptitude
when it comes to navigating the system out of a tight spot. This
means that a application package can prevent the installation of a OS
update in obscure ways.
For example, if an application package depends on a specific version
of a OS package, and on that version only, then this OS package can
not be updated without first removing the application package.
Ideally, the application manager would explain this clearly to the
user and just do what is necessary after getting confirmation to
remove the application package.
The current application manager will just sit there and refuse to
Instead of smartening up it, the application manager now checks for
some problematic dependencies and conflicts that could potentially
interfere with the next OS update and refuses to install packages that
fail the check.
If package X is a OS package, then a package will be rejected when it
declares one or more of the following relationships with X:
Depends: X (= version) (or Pre-Depends) Depends: X (< version) Depends: X (<= version) Conflicts: X (> version) (or Breaks) Conflicts: X (>= version) Conflicts: X (well, couldn't be installed anyway)
Note that X must be a OS package for these rules to apply.
Technically, a package is a OS package when it is a direct dependency
of any installed package with the “system-update” flag.
If a package has one of these problematic dependencies, then that is
very likely a bug that should be fixed.
There is a Wiki page about this.
Erase-Everything-Reflashing tries to scare us again from afar.
Sometimes, a package can not be installed. Maybe some of its
dependencies are missing, or there are unresolvable conflicts. A
error message is displayed in this case.
If this happens to a OS update, the error message will now
tell people to reflash their device, like we did in times memorial.
I think this error message gives bad advice, and I am a bit worried
that it might be easily triggered by accident.
If you see this error message, please read it as “There is a bug
somehwere that prevents this OS update from being installed.” We
should try hard to find this bug.
Let’s hope that the tighter policy checks will prevent this error message from ever being seen.
Installation from memory cards is no longer supported.
A new way of copying information has been invented recently, rather
blandly named “The Internet”. We don’t know yet whether it will be a
success, but some people seem to be using it already. It is not
unlikely that, in the not so distant future, most software will be
‘downloaded’ though a series of ‘tubes’ instead of being ferried
around on physical media. We are watching this development carefully.
Installation of standalone Debian package files is harder.
You need to go to red-pill mode now to install a *.deb file directly.
We really want people to install packages from only very few, well
controlled sources, like the Maemo Extras repository.
Maemo-select-menu location has disappeared.
Just don’t use it. In general, try not to perform any user
interaction during package installation.