What’s cooking for the Application Manager?
Wednesday, 15. Aug 2007
I am trying out this blog thing, so that I can rant in color.
I work for Nokia on the Internet Tablet OS as a hacker, and that’s what I will be blogging about here. Or about whatever seems appropriate.
Our topic for today shall be a short introduction to the new Application Manager features in the next major IT OS release that are of interest to package maintainers. This stuff is documented in more detail here.
More .install file capabilities
A .install file can now instruct the Application Manager to add more than one catalogue.
You might have noticed that I don’t think that having as many repositories as we have now is a good idea, so please don’t take this feature as in invitation to spread your packages over many many repositories. If at all possible, put your packages into the maemo Extras repository. This repository will be preconfigured in the next IT OS release, and we will likely pay more attention to packages in the Extras repository when making new IT OS releases (when checking compatibility, for example).
You can now leave the distribution name blank in .install files and the Application Manager will provide the name of the current distribution. This will work across backup/flash/restore: your catalogue will then automatically start using the new distribution name.
Catalogue names are now localizable.
A package can specify a (localizable) string that will be displayed in the Application Manager UI instead of the package name.
A package can specify a alternate (and localizable) description that will be used instead of the normal description when showing the package in the “Check for updates” view. This can be considered as the end-user friendly version of debian/changelog.
The normal description of a package can now be localized.
Support for Conflicts/Replaces
The Application Manager is still a coward when it comes to automatically removing packages to resolve conflicts, but it now will remove a package when another package is to be installed that both “Conflitcs” with that package as well as “Replaces” it.
A package can cause the Application Manager to perform some special tricks. For example, setting the “reboot” flag will cause a reboot after installing or upgrading a package. Other flags cause the Application Manager to take a backup or close all applications. These flags are mostly intended for updates to system packages, but you might find them useful.
Checking for free space before installing
A package can declare how much free space must be available in the filesystem before the installation is allowed. The Application manager doesn’t dare to use Installed-Size for this since doing so is not reliable in general.
The Application Manager tries to keep track of where a package has been originally installed from, and will not allow updates to a package from a different source. This means you can no longer replace IT OS packages by providing them with a higher version number in your repository.
Of course, you still can do whatever you want with your package. Packages don’t get special privileges depending on where they are installed from. These additional checks are only there to catch some confusing situations that are best avoided.