Sailfish OS Source
Contents
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.
Name | Description | How to get an account | How to contribute |
---|---|---|---|
Sailfish OS Repositories | Sailfish OS Core source code repositories | Account can be created at https://github.com/join | Contributions 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 Repositories | Hardware adaptation related git trees | ||
Sailfish OS Tools Repositories | Some tools that are useful in development and are located in separate repository | ||
Sailfish OS Quality Assurance Repositories | Some tools that are useful in development and are located in separate repository | ||
Sailfish OS CI & Build Repositories | Tools used in the CI and build process, like OBS. | ||
Sailfish OS Mirror | Mirrors all upstream packages which Sailfish OS uses in git modules | Contribute directly in upstream instead | |
Closed git trees | There are some closed git trees for proprietary code | Accounts created on case by case basis | Contributions 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.