User:Beineri/Software Installer

From openSUSE

This is a scratch area for my ITO project.
Status: openSUSE 10.3 meta-data exists, implementation of application started.

The goal would be to write (a prototype of) a simplified desktop application installer. The emphasis is on "desktop application", no library, no development package, no command-line utility will be selectable - only what installs a .desktop file visible in the start menu. It should work with openSUSE 10.3 so modifying the package management/repository meta-data or changing the .desktop files of all application packages is not a viable solution.

Application start-up should be fast (no remote data download, no RPM database reading, delayed installation check in file system). For that all information about possible applications for a fixed set (DVD or FTP repository) has to be shipped with the application including Name, GenericName, Category, icon (if not using one provided by desktop-data-SuSE or generic icon-theme;only one icon size), .desktop file it installs, rpm package its contained within and description (only if installed?).

The installer has to deal with the cases of more than one .desktop file/application being packaged into one package and required dependencies installing additional .desktop files/menu entries. The user should be notified how installation or removal of the wanted application affects the installation or removal of additional applications and should have a chance to revert his current action in case of dislike.

root password should be only required when the changes are about to be applied (eg with zypper) after a confirmation dialog was shown. This dialog has to show implicitely to be installed/removed applications and mark them as such.

The interface will look like this.

Implementation done in Qt 4 with the data gathering part using bash scripts and internal buildsystem data.

Interesting cases discovered until now requiring special attention:

  • Same .desktop file installed by different conflicting packages (acroread.desktop, banshee.desktop, gimp.desktop, nvidia-settings.desktop)
  • Packages appearing in more than one category in the menu (eg smart.desktop)
  • Packages providing more than one .desktop file (eg gnome-games)
  • .desktop files being only shown under certain desktops
  • internal packages
  • packages missing from /dist/unpackaged/ (evolution, gnumeric, monodevelop, tsclient, ...)