School Network/Open Build Service: Difference between revisions

No edit summary
Line 1: Line 1:
== Summary ==
== Summary ==


This is a [http://git.sugarlabs.org/0sugar/build-service patched] Sugar Labs instance of the [http://openbuildservice.org/ Open Build System] (OBS), which is intended to be a:
This [http://git.sugarlabs.org/0sugar/build-service patched] Sugar Labs instance of the [http://openbuildservice.org/ Open Build System] (OBS) has the following intentions:


* Place to host sources and to make binaries, if there is a need, for [[Platform_Team/Sweets|Sweets]] projects.
* Provide a place to host sources and to make binaries, if there is a need, for [[Platform_Team/Sweets|Sweets]] projects.
* Convenient instrument to create 3rd party repositories with native packages for all [[#Supported_platforms|supported]] GNU/Linux distributions.
* Be a convenient instrument to create 3rd party repositories with native packages for all [[#Supported_platforms|supported]] GNU/Linux distributions.


For detailed information, read the original Open Build System [http://openbuildservice.org/documentation.html documentation].
For detailed information, read the original Open Build System [http://openbuildservice.org/documentation.html documentation].
Line 12: Line 12:
=== obs.sugarlabs.org ===
=== obs.sugarlabs.org ===


This is an [https://obs.sugarlabs.org/apidocs/ API] site, all OBS clients use it to get access to OBS. There is no need to work with the site directly, but that is [http://en.opensuse.org//openSUSE:Build_Service_Curl possible].
This is an [https://obs.sugarlabs.org/apidocs/ API] site, all OBS clients use it to get access to OBS. There is no need to work with the site directly, although that is [http://en.opensuse.org//openSUSE:Build_Service_Curl possible].


The site uses HTTP Basic authentication. To get access, [[Service/Account#Sugar_Labs_Central_Login|create]] a Sugar Labs Central Login account.
The site uses HTTP Basic authentication. To get access, [[Service/Account#Sugar_Labs_Central_Login|create]] a Sugar Labs Central Login account.
Line 62: Line 62:
== Usage ==
== Usage ==


On top of original OBS behavior, Sugar Labs patch brings the following new features.
On top of original OBS behavior, the Sugar Labs patch brings the following new features.


=== Distribution agnostic packages ===
=== Distribution agnostic packages ===


Instead of using spec files for every distribution packages should be built against, it is possible to use special spec file that will be used as-is an all platforms Sugar Labs OBS supports.
Instead of using spec files of packages to be built against for every distribution, it is possible to use a special spec file that will be used as-is in all platforms that Sugar Labs OBS supports.


To create such distro-agnostic packages:
To create such distro-agnostic packages,


* upload {{Code|sweets.recipe}} file in [[Platform_Team/Recipe_Specification|special notation]] to OBS package;
* upload a {{Code|sweets.recipe}} file in [[Platform_Team/Recipe_Specification|special notation]] to OBS package;
* upload {{Code|.tar.gz}} sources with filename composed using {{Code|sweets.recipe}} fields:
* upload {{Code|.tar.gz}} sources with filename composed using {{Code|sweets.recipe}} fields:


  <implement>-<version>.tar.gz
  <implement>-<version>.tar.gz


After that, OBS will star building submitted package on all attached OBS repositories.
After that, OBS will start building submitted package on all attached OBS repositories.


=== Resolve packages and dependencies ===
=== Resolve packages and dependencies ===


There is new API command that might be used to resolve package names and package dependencies on particular OBS platform.
There is new API command that might be used to resolve package names and package dependencies on a particular OBS platform.


  GET '''/resolve'''?project=PROJECT&repository=REPOSITORY&arch=ARCH&package=PACKAGE[&withdeps][&exclude=PACKAGE]
  GET '''/resolve'''?project=PROJECT&repository=REPOSITORY&arch=ARCH&package=PACKAGE[&withdeps][&exclude=PACKAGE]
Line 110: Line 110:
  </resolve>
  </resolve>


Note that {{Code|url}} attributes might be invalid if corresponding packages were used for building on OBS. So, keep special OBS projects, only for resolving purpose, like {{OBS/project|OLPC:11.3.1|OLPC:11.3.1}}.
Note that {{Code|url}} attributes might be invalid if corresponding packages were used for building on OBS. So, keep special OBS projects, used only for resolving purposes, like {{OBS/project|OLPC:11.3.1|OLPC:11.3.1}}.


== Policy ==
== Policy ==