Build Service

From openSUSE

OBS The openSUSE Build Service is an open and complete distribution development platform that provides infrastructure for a development of the future openSUSE distributions.

The service provides software developers with a tool to create and release open source software for openSUSE and other Linux distributions easily on different hardware architectures. Users can easily find the latest open source packages they are looking for, and through world-wide mirroring a broad user audience can be reached. For developers it is an efficient place to build up groups and work together through its project model.


Contents


Features

  • In the introduction section above, we mentioned that the Build Service is a complete distribution development platform providing the infrastructure required for development of future openSUSE based distributions.
  • It also features services that enable compilation and packaging for the other Linux distributions, like Fedora, Debian, Ubuntu, and many more.
  • The current openSUSE releases are transparently build in the openSUSE:Factory project, including automatic image creation.
  • Users can easily browse through the software web interface http://software.opensuse.org/ to download and install the latest packages.
  • Open interfaces allow external services (e.g. SourceForge) and web pages to interface with the Build Service and to use its resources.
  • In an advanced state, it will be accessible to anybody equipped with user/trust management and will be able to create further build targets (e.g. LSB, Xen images).

Advantages

For Users

  • Always get the newest software versions for their distribution. Using a trust relationship in the build service, the user can declare "I trust the Project xy" and can afterwards install packages only from this project.
  • Getting upgrades for older distributions. (Like getting a new KDE 4.3 for openSUSE 11.1)
  • More unification between the different distributions. Packages from the build service can bring people together - thinking about "Why do they do such things? Why do they use these directories? - I want to get it for my distribution, too". (But this is something for the future... :-)
  • You can easily find and install software via the End User Interface. Additionally you can also install manually with any package manager, have a look here for detailed instructions.

For Developers

openSUSE Build Service Developer Web Interface
  • No "compiler farms" of different hardware needed to build a package for different architectures.
  • Produce better software: some software-projects still use 16bit processes and wonder why their code doesn't compile on 32bit or 64bit platforms.
  • Automatic resolving of dependencies to other packages. If a package depends on another package, this package will be triggered for a rebuild automatically if the depending package is rebuilt.
  • Linking to other projects: Patches can be tested with the newest packages from other projects. For example: a developer has a patch for Amarok and wants to test it in a defined environment. He can create a link to the KDE project and use it as environment for his own tests. The result: his patched version of Amarok will always be triggered for a rebuild when the KDE project initiates a new build.
  • Build your software for multiple Linux distributions.

For embedded Developers

  • Build your software for other processor platforms.
  • The OBS version supporting cross-development with qemu emulator is released in the normal OBS Code. Also, arm support has been activated in the public OBS. The use of the local build feature via osc/build is also fully supported. For a technical information read the Cross Development Concept and Example. For QEMU use, up to ARMv7 EABI and VFPv3 is in a usable state. Three classes exist in the scheduler for arm: armv4l, armv5el and armv7el.
  • There is a second approach used for powerpc architectures. PowerPC is a well supported server architecture, and the OBS also supports the use of native local builds and also worker build on powerpc machines. Due to security restrictions, the powerpc workers in the public OBS are not yet for public use. See the Build_Service/Roadmap for more details what is missing and when it will be available. Nevertheless, powerpc can be used now in private OBS installations if you have a powerpc machine running Linux for the OBS workers, or the local build process (chrooted OBS workers, local builds).

For Distributors or Independent Software Vendors

  • The Build Service is able to create complete distributions or modified images easily to be used in different ways. A first version of KIWI to create images for booting via network or to be used as Xen or VMware image has been released.

Documentation

This wiki contains plenty of articles. There is also a stub of a handbook, the DocBook source to the manual is available in the git repository and patches are welcome.

The Build Service can be used either via the Web Interface, via the OSC Command Line Tool or any other tool using the public API. Packagers might also want to read the cross distribution package how to and the Build Service Tutorial.

To log into the Build Service you have to use your openSUSE account. For more information about login process, please read the login section in the Build_Service/Tutorial.

Some hints can be found on the Build Service Tips & Tricks site.

  • The Tutorial wiki page shows the first steps to create your own projects and packages.
  • There is a book project initiated by the Lessons for Lizards project about the Build Service.
  • The Build Service Installation Tutorial explains how to install the Build Service on a local server.
  • Specific information on building .deb packages.
  • Overview presentation about appliance and product building with the OBS.
  • You can find the latest information on the News site.
  • We do provide two talks from FOSDEM about the Build Service. The first talk gives an overview about the idea of the Build Service and its architecture. The second talk describes the project model in detail and explains how to build for multiple distributions, including openSUSE, Fedora, Mandriva and Debian. A third talk from FOSDEM about cross build is here.
  • An important piece is the documentation for the API. The API is a simple and generic interface to work with the Build Server. You may use it to integrate it into your tools to submit code updates, check the current state of your projects or doing something very different and cool.
  • A description of the Key Components may be useful

Roadmap

We have a Roadmap and we also maintain a log of smaller changes as well as some green-fields Concepts.

A list of proposed features is available in openFATE.


Own instance

OBS server is licensed under GPL license and can be installed by everybody. The easiest way to run an own instance is to use the OBS appliance. But you can also install the rpm packages from openSUSE:Tools project on your system.


Source Code

The source and documentation of the Build Service Server and its tools are hosted inside the openSUSE Project at gitorious.org. Please read this documentation to learn how to access and run it.

Packages

The packages can be found in the openSUSE:/Tools repository. Look for packages named obs-* (openSUSE Buildservice).

How To Contribute

As with most open source projects, please start to write patches or a concept what you plan to develop. Gitorious offers a nice feature to clone from the obs project, change the code and submitting it back into the base project. There are some smaller projects which are a good start for discovering the code and joining the development team. This howto can help you to get started with the development of the webui.

Contact and Support

The service is developed by the openSUSE Build Service Team. We can be contacted in various ways.

Meet OBS Developers

OBS Developers are known to be keen on visiting fairs. Just go to any of the listed ones to meet us.


Build Service Clients

The server can be used via multiple clients, an overview is maintained here.


Buildservice installations

Build_Service/PoweredBy - an incomplete list of people running a local version of the openSUSE Buildservice. Add yourself or your company if you run a local version of the openSUSE Build Service.


Project Collaboration Model

Build_Service/Collaboration - The Build Service offers different ways of collaboration which can be seen on this wiki.


See also