Skip to content

sailfishos/sailfish-api-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sailfish Third Party API Patterns
=================================

This repository contains some tooling that we use to build an API patterns file
that can be pre-installed on the device.

Technical background
--------------------

This is required so that applications that would otherwise drag in a new
dependency already work on first launch (the booster process will not have
"seen" the Qt/QML plug-in at the time it was launched), if we don't do this,
applications could end up without some plugins on first launch due to the
way boosting and mapplauncherd works:

  time ---- >

  A ..... B ..... C
  ^       ^       ^
  |       |       user taps icon, doesn't work on first run
  |       application and new plugin gets installed
  booster process launches

By making sure that all possible Qt plug-ins (possible as in "can be depended
on by third party apps") are already installed in the base image, the booster
process will always "see" all allowed plug-ins.

Updating the package
--------------------

To update this package when new requirements are allowed:

 1.) git submodule update
 2.) git submodule foreach git pull origin master
 3.) Update API_LEVEL in update.py
 4.) python update.py
 5.) Commit all changes with [api] Bump to API version ...
 6.) Tag new version

Packages depending on new API levels can depend on "sailfish-api-2" 
(for example), whereas old packages might still depend on "sailfish-api-1".

All patterns also provide "sailfish-api = <version>", e.g. "sailfish-api-1"
provides "sailfish-api = 1", so apps can also use that to depend on the
Sailfish API without specifying the API level in the package name.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages