Link Search Menu Expand Document

Sailfish OS Source

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

Here is a table that contains the information about different code locations, how to get an account and what is the contribution policy.

NameDescriptionHow to get an accountHow to contribute
Sailfish OS RepositoriesSailfish OS Core source code repositoriesAccount can be created at https://github.com/joinContributions done by forking the git tree (https://help.github.com/en/articles/fork-a-repo) and creating a pull request (https://help.github.com/en/articles/creating-a-pull-request-from-a-fork).

NOTE: Only repository maintainers can do pull requests from a branch of the main git tree (https://help.github.com/en/articles/creating-a-pull-request).

NOTE: For each repository git submodules must be using https urls.
Sailfish OS Adaptation RepositoriesHardware adaptation related git trees
"
"
Sailfish OS Tools RepositoriesSome tools that are useful in development and are located in separate repository
"
"
Sailfish OS Quality Assurance RepositoriesSome tools that are useful in development and are located in separate repository
"
"
Sailfish OS CI & Build RepositoriesTools used in the CI and build process, like OBS.
"
"
Sailfish OS MirrorMirrors all upstream packages which Sailfish OS uses in git modules
-
Contribute directly in upstream instead
Closed git treesThere are some closed git trees for proprietary codeAccounts created on case by case basisContributions are done with pull requests from branches. Contributor has rights to create branch that has contribution- prefix or company name, i.e., companyname- prefix

Please check contribution guidelines and changelog generation guidelines before actual contribution.

Release specific sourcecode drops can be found from http://releases.sailfishos.org/sources/

Finding the Source for a Package

There are a variety of ways to determine the location of the source repository for a particular package:

  • search the git trees mentioned in the table above
  • search the Core Areas and APIs documentation to find the appropriate repository
  • look hints on the device, e.g.:

If you have developer mode installed, via command line you can search for more detailed information. For example searching packages by name:

pkcon search name browser

Alternatively, you can utilise the rpm tool, combined with grep to query installed packages on the device:

rpm --query --all|grep browser

… and after finding the package name you can get more details:

pkcon get-details sailfish-browser

or

rpm --query --info sailfish-browser

Same actions can be done also with zypper (zypper not included by default, and needs to be installed, with devel-su pkcon -p install zypper)

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

If you want to know which package a file belongs to you can check with rpm the package name:

rpm -qf /etc/gps.conf

The other way around, to list all files a package contains, use:

rpm --query --list sailfish-browser

If all other means fail and the package name is known, the contributor can search for it on an available OBS instance and then examine that package’s _service file to determine the source code repository.