[maemo-developers] Application Manager scripting, second try

From: Kees Jongenburger kees.jongenburger at gmail.com
Date: Mon Feb 26 21:42:23 EET 2007
Hello Marius

> ### Overview
> The Application Manager offers some pre-defined 'interaction flows'
> that can be controlled with a ".install" file.  Such a .install file
> is a text file following the GKeyfile format, as defined by glib.

I like this approach very much. (convention over configuration)

> For example, the following file will offer to install the `maemofoo`
> package from the Foobar catalogue:
>     [install]
>     catalogues = foobar
>     package = maemofoo
>     [foobar]
>     name = Foobar Catalogue
>     name[en_GB] = Foobar Catalogue
>     name[de_DE] = Foobar Katalog
>     uri = http://foobar.com/repository
>     components = main

I would try to make the file more self describing so that that you
really can create a syntax for it. therefore I would replace the
[foobar] with [catalogue]. does the glib ini file parser allow mutiple
init entries with the same name?

id = foobar
name = Foobar Catalogue
name[nl_NL] = .....

> As explained below, omitting the "dist" key means that the 'current'
> distribution will be used.
> ### Catalogues
> ### Adding catalogues.
> Each catalogue is considered in turn and the user is asked whether to
> add it or not.  When it should be added and a catalogue is already
> configured in the Application Manager that is equal to the one
> considered, the configured catalogue is removed first.  When the user
> declines the adding, the next catalogue is considered.

What happens if the .install file wants to replace the uri or name of
a catalogue?
Is this considered a security risk?

>     [sdk]
>     name = maemo SDK catalogue
>     uri = http://repository.maemo.org/
>     components = free non-freees

I still think this all looks way to much like debian , nobody in
theire right mind
would create an installer with different components, repositories.
They would also not
let the package management system tell then where to download the deb
, they would just list the direct uri's /.install files for all the
dependent packages.

> Each catalogue is considered in turn and when it there isn't already a
> catalogue configured that is equal to it, the user is informed that it
> needs to be added and is asked for confirmation.  Alternatively, when
> a catalogue is already present but disabled, the user is informed that
> it needs to be enabled and is asked for confirmation.  When the user
> confirms, the catalogue is added and processing continues.  When s/he
> declines, processing of the .install file stops and the changes to the
> configured catalogues that have been made for it are reverted.

I tried to install maemo-mapper for the n770 this week-end, it did not contain
a it2006 repository and the installer just told me the installation "failed".
I think you are right it should be an all or nothing situation. currently
even after those steps are completed. the install still can fail
because some deps are missing. If possible I would present the user
with a list of changes that are going to happen
-add repo bla
-update repo x
-install libsqlite3 from maemo-repo
-install maemo-mapper from contributors-repo

> The "packages" key lists the names of packages that can be installed
> from the memory card, using the "card_catalogues".
> Installation of the packages happens in a temporary environment: in
> this environment, the normally configured catalogues are not
> available, only the catalogues listed by the "card_catalogues" key are
> configured.  All of these catalogues must use "file_uri" instead of
> "uri".

Is a package allowed to have both a file_uri and a "web"uri?

> The packages are installed in this temporary environment.  The user
> gets to select them from a list.  Only packages that are not already
> installed or are not uptodate are offered.  When the offered list
> would be empty, processing stops with an appropriate note.

would there be some "autorun.bat" file on the media card?
is there a format that just gets executed from the file manager?

> ### Compatibility with IT OS 2007.
> In addition to the format described above, the Hildon Application
> Manager also understands the old .install files from IT OS 2007.

why is it Hildon Application Manager and not Maemo Application Manager?

> where URI, DIST, and COMPONENTS are parsed out of DEB, as
> appropriate.

Are we thinking planing on automatic server side enhancements to the
.install file, if not
when does the deb get parsed?

The main thing really is that I would not allow all these catalogue
information  and translations to end up in the .install files. I will
be a mess in no time. so I would "just"
create a website where developers can register catalogue names /
perform translations.
the manager would download the list once in a while.  The install file
format would be
very simple because it would only list the required repositories,

The catalogue file format would also allow to give more information
about the catalogues.
100% of the irc users thrust the maemo-hackers catelogue.


More information about the maemo-developers mailing list