Line 6: |
Line 6: |
| == Introduction == | | == Introduction == |
| | | |
− | The purpose of this Guide is describing how to package activities that use Sugar Services. | + | The purpose of this Guide is to describe how to package activities that use Sugar Services. |
| | | |
| == Activity dependencies == | | == Activity dependencies == |
| | | |
− | Every activity which uses Sugar Services will contain additional options in activity.info file: | + | 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 resulted 0install link will contain proper information about dependency - home page, link to sources, licence etc. | + | In any case, the resulting 0install link will contain the appropriate information about dependency - home page, link to sources, licence, etc. |
| | | |
− | Activity itself doesn't contain any 0sugar related code, 0sugar will export proper environment variables to activity process e.g. PYTHONPATH or LD_LIBRARY_PATH thus dependencies could packaged and activity will not notice any differences between 0install dependencies and installed from packages. Exception is libsugarize service which exports LD_PRELOAD environment variable.
| + | 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 which uses Sugar Services will contain .0sugar subdirectory in activity root: | + | Every activity that uses Sugar Services will contain a .0sugar subdirectory in its activity root |
| | | |
− | * to keep all dependencies implementations (to not download them on demand)<br>could be any content including binaries | + | * 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 that starts 0sugar launching code<br>''exec'' option from activity.info invokes this 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. |