Difference between revisions of "School Network/Open Build Service"

From Sugar Labs
Jump to navigation Jump to search
Line 58: Line 58:
 
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=resolve&repository=OLPC-11.3.1&arch=i586&package=pygame&withdeps&exclude=sugar
  
 
Will output:
 
Will output:
Line 77: Line 77:
 
  </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}}.
+
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|resolve|resolve}}.
  
 
== Policy ==
 
== Policy ==

Revision as of 05:55, 22 September 2012

Summary

This patched Sugar Labs instance of the Open Build System (OBS) has the following intentions:

  • Be a convenient instrument to create 3rd party repositories with native packages for all supported GNU/Linux distributions.

For detailed information, read the original Open Build System documentation.

Sites

obs.sugarlabs.org

This is an 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 possible.

The site uses HTTP Basic authentication. To get access, create a Sugar Labs Central Login account.

packages.sugarlabs.org

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 sweets command).

Usage

See original manuals and materials to learn more about what functionality OBS provides.

On top of original OBS behavior, the Sugar Labs instance brings the following new features and common practices.

Special projects

There is a special project, named 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.

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,

  • upload a sweets.recipe file in special notation to OBS package;
  • upload .tar.gz sources with filename composed using sweets.recipe fields:
<implement>-<version>.tar.gz

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

Resolve packages and dependencies

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]

Where:

  • PROJECT, REPOSITORY, ARCH and PACKAGE
    identification of particular OBS package;
  • withdeps
    include dependencies graph of the PACKAGE;
  • exclude
    restrict dependency graph from bottom side.

For example,

https://obs.sugarlabs.org/resolve?project=resolve&repository=OLPC-11.3.1&arch=i586&package=pygame&withdeps&exclude=sugar

Will output:

<resolve>
  <binary name="pygame" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/pygame-1.9.1-3.fc14.i686.rpm" />
  <binary name="SDL" url="http://mock.laptop.org/cgit/koji.dist-f14-i686-updates-11.3.1/plain/RPMS/SDL-1.2.14-11.fc14.i686.rpm" />
  <binary name="SDL_mixer" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/SDL_mixer-1.2.11-4.fc14.i686.rpm" />
  <binary name="SDL_image" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/SDL_image-1.2.10-1.fc13.i686.rpm" />
  <binary name="numpy" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/numpy-1.4.1-6.fc14.i686.rpm" />
  <binary name="SDL_ttf" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/SDL_ttf-2.0.10-1.fc14.i686.rpm" />
  <binary name="portmidi" url="http://mock.laptop.org/cgit/koji.dist-f14-i686-updates-11.3.1/plain/RPMS/portmidi-200-5.fc14.i686.rpm" />
  <binary name="libmikmod" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/libmikmod-3.2.0-11.beta2.fc14.i686.rpm" />
  <binary name="libgfortran" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/libgfortran-4.5.1-4.fc14.i686.rpm" />
  <binary name="python-nose" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/python-nose-0.11.3-5.fc14.noarch.rpm" />
  <binary name="python-setuptools" url="http://mock.laptop.org/cgit/koji.dist-f14-i686/plain/RPMS/python-setuptools-0.6.14-3.fc14.noarch.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>

Note that 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 resolve.

Policy

  1. REDIRECT School Network/Open Build Service/Policy

Resources