Line 23: |
Line 23: |
| | | |
| * ''version'', used only for services with [[#Native_versions|native]] versioning scheme | | * ''version'', used only for services with [[#Native_versions|native]] versioning scheme |
| + | |
| * ''binding'', what environment variables, 0install should export to session which uses this service | | * ''binding'', what environment variables, 0install should export to session which uses this service |
| binding = [prepend|append|replace] ''<variable-name>'' [''<insert-text-to-prepand-variable-value>''] [; ...] | | binding = [prepend|append|replace] ''<variable-name>'' [''<insert-text-to-prepand-variable-value>''] [; ...] |
| + | |
| * ''main'', for applications, path to exec file from service root directory | | * ''main'', for applications, path to exec file from service root directory |
| + | |
| * ''requires'', for any arch and binary implementations, list of runtime services that should exist before using service | | * ''requires'', for any arch and binary implementations, list of runtime services that should exist before using service |
| requires = <service-name> [<not-before-version>[-<before-version>]] [; ...] | | requires = <service-name> [<not-before-version>[-<before-version>]] [; ...] |
| + | |
| * exec, command how to make bundle for ''dist'' command, ''0sugar'' will pick up newly created file in service root directory<br>Shell command, executed from service root directory. If this command starts to get complicated, you should move it to a script and just set this attribute to the command to run the script.<br>By default ''0sugar'' just bundle entirely service directory excluding temporary files. | | * exec, command how to make bundle for ''dist'' command, ''0sugar'' will pick up newly created file in service root directory<br>Shell command, executed from service root directory. If this command starts to get complicated, you should move it to a script and just set this attribute to the command to run the script.<br>By default ''0sugar'' just bundle entirely service directory excluding temporary files. |
| + | |
| exec = make distcheck | | exec = make distcheck |
| + | |
| + | * ''files'', list of files that will be included to runtime bundle and won't be included to buildtime<br>if glob-mask contains symbol ''/'', it will be applied to the whole path string, otherwise only to file names<br>if section exists, only mentioned files will be bundled to runtime tarball, otherwise all files except ''files'' from ''[Buildtime]'' section |
| + | |
| + | files = <glob-mask> [; <glob-mask> ...] |
| | | |
| == [Library] section == | | == [Library] section == |
Line 47: |
Line 56: |
| * ''requires'', additional dependencies that will be required during building other service which depends on this one | | * ''requires'', additional dependencies that will be required during building other service which depends on this one |
| | | |
− | * ''files'', list of files that will be included to buildtime.xml feed and won't be included to runtime.xml, format: | + | * ''files'', list of files that will be included to buildtime bundle and won't be included to runtime<br>if glob-mask contains symbol ''/'', it will be applied to the whole path string, otherwise only to file names<br>if section exists, only mentioned files will be bundled to buildtime tarball, otherwise all files except ''files'' from ''[Runtime]'' section |
| + | |
| files = <glob-mask> [; <glob-mask> ...] | | files = <glob-mask> [; <glob-mask> ...] |
| | | |
Line 63: |
Line 73: |
| * ''exec'', command how to build binaries<br>Its value is a shell command, executed inside the build directory $BUILDDIR. It must compile the source in $SRCDIR, putting the final result (ready for distribution) in $DISTDIR. If this command starts to get complicated, you should move it to a script (either inside the main source archive or in a separate dependency) and just set this attribute to the command to run the script.<br>'''NOTE''': This command will be executed not only in service developer environment but also on user side if proper binary wasn't found, so do not use here any development related commands like ''autogen.sh''<br>For example, followed command builds regular autotools based project | | * ''exec'', command how to build binaries<br>Its value is a shell command, executed inside the build directory $BUILDDIR. It must compile the source in $SRCDIR, putting the final result (ready for distribution) in $DISTDIR. If this command starts to get complicated, you should move it to a script (either inside the main source archive or in a separate dependency) and just set this attribute to the command to run the script.<br>'''NOTE''': This command will be executed not only in service developer environment but also on user side if proper binary wasn't found, so do not use here any development related commands like ''autogen.sh''<br>For example, followed command builds regular autotools based project |
| exec = "$SRCDIR"/configure --prefix="$DISTDIR" && make install | | exec = "$SRCDIR"/configure --prefix="$DISTDIR" && make install |
− |
| |
− | == Support several ABIs of service dependencies ==
| |
− |
| |
− | File ''service.info'' could contain other sections for various binary implementations. These sections are intended to describe particular dependencies environment and should contain only:
| |
− |
| |
− | * ''requires'' that overwrite ''Service'''s section ''requires''
| |
− |
| |
− | For example if service developer is going to add binary implementations for f9/f11, and the same service dependency in these distributions has different ABIs, activity developer has to build two additional binaries, for f9 and f11. In that case developer creates two sections ''F9'' and ''F11'', put exact dependency versions(to separate particular section from others) and invoke ''0sugar dist_bin <section-name>'' in proper f9/f11 environment.
| |