School Network/Open Build Service: Difference between revisions

No edit summary
No edit summary
Line 57: Line 57:
== Supported platforms ==
== Supported platforms ==


There is special project, named [https://packages.sugarlabs.org/project/repositories?project=base base], it contains all GNU/Linux distributions that are supported on OBS. All other projects need to inherit repositories from this project.
There is a special project, named [https://packages.sugarlabs.org/project/repositories?project=base base]; it contains all GNU/Linux distributions that are supported on OBS. All other projects need to inherit repositories from this project.


== Usage ==
== Usage ==
Line 65: Line 65:
=== Sweets ===
=== Sweets ===


[[Platform_Team/Sweets|Sweets]] is using OBS as a place to host sources and, if there is need, build binaries. There are two ways to interact with OBS:
[[Platform_Team/Sweets|Sweets]] is using OBS as a place to host sources and, if there is a need, to build binaries. There are two ways to interact with OBS:


* Console based client, {{Code|sweets}}, for uploading new releases;
* Console based client, {{Code|sweets}}, for uploading new releases;
* Application to manage already released versions, it is possible to use packages.sugarlabs.org for that but it is too overfeatured and need to be replaced by more appropriate option.
* An application to manage already released versions. It is possible to use packages.sugarlabs.org for that, but it is too overfeatured and needs to be replaced by a more appropriate alternative.


The result will be reused via Zero Install.
The result will be reused via Zero Install.
Line 74: Line 74:
=== Sweet packages ===
=== Sweet packages ===


After beeing released, sweets might be formed to native packages repositories. For that case:
After being released, sweets might be formed into native package repositories. For that use case:


* Create new project;
* Create a new project;
* Add new repositories packages need to be build for, they should be directly or indirectly inherited from the {{Code|base}} project;
* Add packages that need to be built for, they should be directly or indirectly inherited from the {{Code|base}} project;
* Go to OBS package that represent a sweet you need to build native packages for, e.g., [https://packages.sugarlabs.org/package/show?package=sugar&project=sdk sugar];
* Go to the OBS package that represents a sweet you need to build native packages for, e.g., [https://packages.sugarlabs.org/package/show?package=sugar&project=sdk sugar];
* Click ''Link sweet package'' link to add it to your project.
* Click the ''Link sweet package'' link to add it to your project.


The result will be regular OBS repositories with native packages. The only difference is that after installing on target systems, the content of these packages will be placed to {{Code|/opt}} directory instead of regular {{Code|/usr}}. The reason is that sweets are not indented to be placed directly to the {{Code|/usr}} and there might be file name collisions with existed files.
The result will be regular OBS repositories with native packages. The only difference is that after installation on target systems, the content of these packages will be placed in the {{Code|/opt}} directory instead of the regular {{Code|/usr}}. The reason is that sweets are not intended to be placed directly in the {{Code|/usr}} directory as there might be file name collisions with existing files.


=== Recipe based packages ===
=== Recipe based packages ===


These are regular OBS packages except that instead of regular spec files, e.g., RPM {{Code|.spec}}, they might be build basing on [[Platform_Team/Recipe_Specification#.5BPackage.5D|sweets.recipe]] files. It is a kind of meta packaging but restricted by design. In comparing with sweet packages, these packages will be placed to {{Code|/usr}}.
These are regular OBS packages except that instead of regular spec files, e.g., RPM {{Code|.spec}}, they might be built based on [[Platform_Team/Recipe_Specification#.5BPackage.5D|sweets.recipe]] files. It is a kind of meta packaging, but restricted by design. In comparison with sweet packages, these packages will be placed in the {{Code|/usr}} directory.


=== Regular packages ===
=== Regular packages ===