Changes

Jump to navigation Jump to search
m
no edit summary
Line 1: Line 1:  
== Summary ==
 
== Summary ==
   −
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:
+
This [http://git.sugarlabs.org/0sugar/build-service patched] Sugar Labs instance of the [http://openbuildservice.org/ Open Build Service] (OBS) has the following intentions:
   −
* Unattended building of software from [[Sugar Network]] on all [[#Supported_platforms|supported]] platforms.
+
* Unattended building of software hosted on [[Sugar Network]] for all [[Sweets_Distribution/Supported_platforms|supported]] platforms.
   −
* Be a 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 [[Sweets_Distribution/Supported_platforms|supported]] GNU/Linux distributions.
 
  −
For detailed information, read the original Open Build System [http://openbuildservice.org/documentation.html documentation].
      
== Sites ==
 
== Sites ==
   −
=== obs.sugarlabs.org ===
+
* [https://obs.sugarlabs.org obs.sugarlabs.org]<br>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].
   −
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].
+
* [https://packages.sugarlabs.org packages.sugarlabs.org]<br>This is an original OBS Web client. It is intended to be used only by people who need to create native packages, i.e., it is not needed for most Sugar developers assuming that [[Sugar Network]] will process building procedures in unattended mode.
   −
The site uses HTTP Basic authentication. To get access, [[Service/Account#Sugar_Labs_Central_Login|create]] a Sugar Labs Central Login account.
+
* [http://download.sugarlabs.org/packages/ download.sugarlabs.org]<br>After building, binary packages will be acceptable from the Sugar Labs download site.
   −
=== packages.sugarlabs.org ===
+
== Usage ==
 
  −
This is an original OBS Web client. It is intended to be used only by people who need to create native packages, i.e., it is not needed for most Sugar developers. But, until a more appropriate tool is created for Sugar needs, it is the only Web client available to manage already released software (those released by being processed by the [[Platform_Team/Guide/Sweets_Packaging#Releasing|sweets command]]).
  −
 
  −
== Content ==
  −
 
  −
The content on OBS might be of several kinds:
  −
 
  −
=== Projects ===
  −
 
  −
Projects are directories of Packages and might be of two types:
  −
 
  −
* top level, regular projects, like {{Code|base}} or {{Code|sdk}};
  −
* user's home projects, like {{Code|home:''<user>''}}.
  −
 
  −
=== Packages ===
  −
 
  −
Packages represent particular software projects and contain all files associated with these projects, e.g., tarballs with sources.
  −
 
  −
There are several types of packages supported on OBS:
  −
 
  −
* packages that represent sweets,
  −
* native packages based on sweets,
  −
* native packages using sweet recipes as spec files,
  −
* aliases,
  −
* regular OBS packages.
  −
 
  −
See [[#Usage|Usage]] section for more details.
  −
 
  −
=== Repositories ===
  −
 
  −
Every project has repositories to build its packages against. Repositories might be of two types:
  −
 
  −
* inherited from another project;
  −
* initial repositories, aka, downloaded-on-demand, that are associated with a particular GNU/Linux distribution release;
     −
Note: The {{Code|sweets.sugarlabs.org}} repository should be present if Packages need to be distributed via Zero Install.
+
See original [http://openbuildservice.org/help/manuals/ manuals] and [http://openbuildservice.org/help/materials/ materials] to learn more about what functionality OBS provides.
   −
Every repository has supported architectures, e.g., {{Code|i586}} or {{Code|x86_64}}. There is also the special architecture, {{Code|0install}}, only for {{Code|sweets.sugarlabs.org}}.
+
On top of original OBS behavior, the Sugar Labs instance brings the following new features and common practices.
   −
== Supported platforms ==
+
=== Special projects ===
   −
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.
+
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, that are intended for building packages, need to inherit repositories from this project.
   −
== Usage ==
+
=== GNU/Linux distribution agnostic packages ===
   −
On top of original OBS behavior, the Sugar Labs patch brings the following new features.
+
Instead of using spec files of packages to be built against for every GNU/Linux distribution, it is possible to use a special spec file that will be used as-is in all platforms that Sugar Labs OBS supports.
 
  −
=== Distribution agnostic packages ===
  −
 
  −
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 a {{Code|sweets.recipe}} file in [[Platform_Team/Recipe_Specification|special notation]] to OBS package;
+
* upload a {{Code|sweets.recipe}} file in [[Sweets_Distribution/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
+
  <context>-<version>.tar.gz
    
After that, OBS will start 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 ===
    
There is new API command that might be used to resolve package names and package dependencies on a particular OBS platform.
 
There is new API command that might be used to resolve package names and package dependencies on a particular OBS platform.
Line 92: Line 52:  
For example,
 
For example,
   −
  https://obs.sugarlabs.org/resolve?project=OLPC:11.3.1&repository=Fedora-14&arch=i586&package=pygame&withdeps&exclude=sugar
+
  https://obs.sugarlabs.org/resolve?project=OLPC&repository=11.3.1&arch=i586&package=pygame&withdeps&exclude=sugar
    
Will output:
 
Will output:
Line 110: Line 70:  
   <binary name="atlas" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/atlas-3.8.3-18.fc14.i686.rpm" />
 
   <binary name="atlas" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/atlas-3.8.3-18.fc14.i686.rpm" />
 
  </resolve>
 
  </resolve>
  −
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 ==
   −
{{:Platform_Team/Open_Build_System/Policy}}
+
{{:School_Network/Open_Build_Service/Policy}}
    
== Resources ==
 
== Resources ==
   −
* Open Build System [http://openbuildservice.org/ home page].
+
* Open Build Service [http://openbuildservice.org/ home page].
* Open Build System API [https://obs.sugarlabs.org/apidocs/ specification].
+
* Open Build Service API [https://obs.sugarlabs.org/apidocs/ specification].
* Downstream patch [http://git.sugarlabs.org/0sugar/build-service sources].
+
* Downstream patch [https://git.sugarlabs.org/sl-tweaks/obs sources].

Navigation menu