SailfishOS Source

From SailfishOS Documentation

Sailfish OS Source

As per the Sailfish OS Architecture, there are a variety of different layers which make up the Sailfish OS stack. The source repositories for components within each layer are usually hosted on the same infrastructure.


The base layer source code is usually proprietary, and thus is generally not available for public access. The source repositories for the Mer middleware and UI libraries can be found at https://git.merproject.org/, while software specific to Sailfish OS may be found on GitHub at https://github.com/sailfishos, including applications and middleware plugins. Projects specific for Sailfish SDK are located in https://github.com/sailfish-sdk.


Please see the Core Areas and APIs documentation for a comprehensive list of the various components which make up the Sailfish OS stack, including links to the source repositories for those components.


Finding The Source For A Package

There are a variety of ways to determine the location of the source repository for a particular package. The first is to search the Core Areas and APIs documentation to find the appropriate repository. The second is to search on https://build.merproject.org/ and then look at the `_service` file for a given package for its source URL. The third is to search https://git.merproject.org/ and https://github.com/sailfishos for the project.


You can also use package management tools like pkcon, zypper (may have to be installed from mer-tools first) and rpm to find out information about which packages are installed or installable, which packages provide which files, and which source repository the packages are built from.


For example:

devel-su pkcon search name browser
devel-su pkcon get-details sailfish-browser

or

devel-su zypper se browser
devel-su zypper info sailfish-browser

can be used to search for and get information about installed or installable packages.

devel-su rpm -qf /etc/gps.conf

could be used to determine which package provides that particular file.


Once the package name is known, the contributor can search for it on https://build.merproject.org/ and then examine that package's `_service` file to determine the source code repository.