Patterns and Images
- Device configuration
- Sailfish OS package groups
Sailfish OS uses mic tool for creating OS images. The mic tool utilizes a kickstart file (.ks) for configuring the image creation. There exists a kickstart file for each device.
The packages to be installed on the image are listed in
%packages section. In order to not have to list all packages in the kickstart files we utilise patterns, which are really meta RPM packages i.e. empty packages with dependencies to other packages.
A device configuration pattern is the main pattern defining the contents of an image. The pattern is called
patterns-sailfish-device-configuration-@DEVICE@, where @DEVICE@ specifies the device the pattern is for. The patterns is created during the HW Adaptation process, using a template as a starting point.
For each device there exists common device configuration pattern (patterns-sailfish-device-configuration-common-@DEVICE@). The purpose of this pattern is that it contains packages which are common to most HW configurations. In practise it depends on Sailfish applications pattern and Saifish UI pattern. It also pulls in Sailfish hardware testing tool (CSD). In Sailfish OS 4.0.1 and later it’s also possible to use patterns-device-configuration pattern, i.e. without the -@DEVICE@ suffix.
The device adaptation pattern (patterns-sailfish-device-adaptation-@DEVICE@) pulls in all the device specific packages, Hybris packages, etc. Generally speaking all packages that are needed in order to use the hardware are pulled in from here.
Various Sailfish OS package groups are pulled in via patterns. The most important patterns are listed below.
The basic Sailfish Applications are pulled in from Sailfish Applications pattern (patterns-sailfish-applications).
Sailfish UI (patterns-sailfish-ui) pattern pulls in Sailfish Core, Jolla systemd user session with qt5 and wayland, Jolla homescreen for lipstick, and Jolla actdead charging animation.
Sailfish Core consists of two patterns, patterns-sailfish-core and patterns-sailfish-core-devices. These patterns pull in packages which are required on Sailfish devices, including middleware.
Generic Sailfish Middleware is pulled in by patterns-sailfish-mw.
Sailfish OS Device Tools (patterns-sailfish-device-tools) pattern brings in common debugging tools which are used during early stages of device bring-up.
Sailfish RND (patterns-sailfish-rnd) pulls in packages which are used for on-device development, testing and debugging.
Sailfish Cellular Applications (patterns-sailfish-cellular-apps) pattern pulls in cellular applications: MMS engine, SimKit, Voicecall UI, etc.
Sailfish Store Applications (patterns-sailfish-store-applications) pulls in Sailfish Apps which are available through Jolla Store: Calculator, Calendar, Email, Notes, Mediaplayer, Office and Weather.
Consumer requirements pattern (patterns-sailfish-consumer-generic) pulls in features which are standard in Jolla provided Sailfish OS images for consumer devices. If all features are not wanted, a different pattern can be used instead.
Sailfish customer content (patterns-sailfish-customer-content-default) pulls in customer content: ambiences, app configs, browser, gallery, profile settings and VPN plugins.
Sailfish SDK Target configuration (patterns-sailfish-configuration-sdk-target) pulls in all packages needed in a SDK Target.
Sailfish SDK Tooling configuration (patterns-sailfish-configuration-sdk-tooling) pulls in all packages needed in a SDK Tooling.