Symbian
Symbian OS Library

SYMBIAN OS V9.2

[Index] [Spacer] [Previous] [Next]



Embedding SIS files within other SIS files

A SIS file may contain a number of embedded or nested SIS files. Embedded SIS files are installed and removed together with the embedding SIS file. But note that an embedded SIS file is not removed if another installed component has declared a dependency upon it.

Embedding SIS files might be useful for packaging multiple components into a single SIS file, but which can later be removed independently of each other. For example, if a SIS file needs to install an application and a library that is shared with other installed applications, the shared library could be installed as an embedded SIS file, so that when the application is uninstalled, the shared library will remain on the phone if still required by other applications.

The PKG file syntax for embedding SIS files is as follows:

@"source-filename", (package-uid)

The package() function can be used if you only want to install an embedded package if it has not already been installed, for example:

IF NOT package(0x11223344)
; install foo.sis only if not already installed
@"foo.sis", (0x11223344)

Note that uninstalling an embedding package will cause any embedded packages to also be uninstalled, unless other installed components have specified a dependency on them.

In general, nested SIS files are processed as separate installations in an inline fashion. This means that containing (outer) SIS files do not propagate capabilities into contained (inner) SIS files. Essentially, nested SIS files are validated and installed on their own merit, but there is one exception to this rule: It is also possible for a package to be dependent on an embedded SIS file that it contains. Note that if any embedded SIS installation fails, the entire installation fails.

Language-specific embedded SIS files can be included in a language block, for instance:

{
@"foo_en.sis"
@"foo_fr.sis"
@"foo_ge.sis"
},(0x11223344)