Documentation Team/Obsolete/Services Activity Packagers Guide: Difference between revisions
No edit summary |
|||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{Obsolete | Was only draft content.}} | |||
<noinclude> | <noinclude> | ||
{{TOCright}} | {{TOCright}} | ||
| Line 6: | Line 8: | ||
== Introduction == | == Introduction == | ||
The purpose of this Guide is | The purpose of this Guide is to describe how to package activities that use Sugar Services. | ||
== Activity dependencies == | == Activity dependencies == | ||
Every activity | Every activity that uses Sugar Services will contain additional options in an activity.info file: | ||
* ''requires'' option, comma separated list of dependencies that should exist | * ''requires'' option, a comma-separated list of dependencies that should exist, | ||
* ''suggests'' option, comma separated list of dependencies that could not exist | * ''suggests'' option, a comma-separated list of dependencies that could not exist. | ||
Each dependency could be | Each dependency could be a, | ||
* service name, the full 0install link will be http://services.sugarlabs.org/<dependency-name> | * service name, the full 0install link will be http://services.sugarlabs.org/<dependency-name>, | ||
* sub service slashed name, the full 0install link will be http://services.sugarlabs.org/<dependency-name>.xml | * sub service slashed name, the full 0install link will be http://services.sugarlabs.org/<dependency-name>.xml | ||
* full 0install link | * full 0install link. | ||
In any case, the resulting 0install link will contain the appropriate information about dependency - home page, link to sources, licence, etc. | |||
The activity itself doesn't contain any 0sugar-related code. 0sugar will export the appropriate environment variables to the activity process, e.g., PYTHONPATH or LD_LIBRARY_PATH. Thus, dependencies could be packaged and the activity will not notice any differences between 0install dependencies and those installed from packages. An exception is the libsugarize service, which exports the LD_PRELOAD environment variable. | |||
== Cache directory == | == Cache directory == | ||
Every activity | Every activity that uses Sugar Services will contain a .0sugar subdirectory in its activity root | ||
* to keep all | * to keep all necessary dependency implementations (so as not to download them on demand).<br>This could be any content, including binaries. | ||
* 0sugar launching code, since 0sugar is not part of Sugar Platform<br>pure python code | * 0sugar launching code, since 0sugar is not part of Sugar Platform.<br>This is pure python code. | ||
* .0sugar/launch script | * .0sugar/launch script, which starts 0sugar launching code<br>The ''exec'' option from activity.info invokes this script. | ||
exec $(dirname $0)/<path-to-0sugar>/0sugar-selector "$@" | exec $(dirname $0)/<path-to-0sugar>/0sugar-selector "$@" | ||
If all dependencies(including 0sugar) are packaged then this directory could be just removed. | If all dependencies (including 0sugar) are packaged, then this directory could be just removed. | ||