Build Service
From openSUSE
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 and for a broad user audience. Users can easily find the latest open source packages they are looking for and customize them. It provides a bridge between developers and users with feedback and rating functionality. For developers it is an efficient place to build up groups and work together through its project model.
|
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.
Users of openSUSE can easily browse through user side of the web interface http://software.opensuse.org/ and download 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 3.5.7 for SL 10.0)
- 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 via any package manager, have a look here for detailed instructions.
Look at the video.
For Developers
- 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. Currently, the list of supported distributions is:
- SUSE
- openSUSE 10.3
- openSUSE 10.2
- SUSE Linux 10.1
- SUSE Linux Enterprise 10
- SUSE Linux Enterprise 9
- openSUSE Factory
- Debian
- Debian Etch
- Red Hat
- Fedora 8
- Fedora 7
- Fedora 6 + Extras
- Red Hat Enterprise Linux 5
- CentOS 5
- Mandriva Linux
- Mandriva 2008
- Mandriva 2007
- Mandriva 2006
- xUbuntu
- xUbuntu 6.06
- xUbuntu 7.04
- xUbuntu 7.10
- SUSE
For Distributors
- 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.
Roadmap
We have a Roadmap and we also maintain a log of smaller changes as well as some green-fields Concepts.
How to Use It
The Build Service can be used either via the Web Interface, via the 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 Novell 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.
Summer of Code
There are several Google Summer of Code projects going on in the context of the openSUSE Build Service:
Build Service Source Code
SVN Repository
The source and documentation of the Build Service tools is hosted on forge.novell.com. This repository contains the sources for the client tools as well the sources for the servers.
Use this command to check out the current source code:
svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice
Packages
Packages are around in the buildserver, but they are not really production ready yet. There is quite some work needed, before they can be declared ready. The packages can be found in the openSUSE:/Tools repository. Look for packages named obs-* (openSUSE Build Server).
How To Contribute
As with most open source projects, please start to write patches or a concept what you plan to develop. People who have proven to deliver working code will get write access to the SVN repository.
There have also already been Google Summer of Code projects in the context of the openSUSE Build Service:
Documentation
- The Tutorial shows the first steps to create your own projects and packages.
- The Build Service Installation Tutorial explains how to install the Build Service on a local server.
- The Tips & Tricks explain some features and tricks.
- Specific information on building .deb packages.
- 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.
- 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.
- You do not like our Web Frontend or command line tool ? You can either improve it or write your own. The source for both is as well available in the forge repository.
Contact
Subscribe to the opensuse-buildservice mailing list (archive). Feedback is welcome, even more welcome are patches, new tools and new ideas.
Some of us do also hang around in #openSUSE-buildservice channel on freenode.
You can report bugs for the build service through Bugzilla.
Your openSUSE Build Service Team
Build Service Clients
The architecture based on a REST API allows to write different clients easily. That gives us the chance to address the needs of users with different experience. The clients can put different emphases on different usecases.
Web Client
The Web-based client for the openSUSE Build Service gives easy access to all the functions of the Build Service, and is the most complete graphical interface.
Command Line Clients
Currently there are two command line tools for the build service. Both are described here:
Additionally, if you're a build service developer, you might be interested in using the build service rest API directly via curl
KDE Rich Client
There has been a Google Summer of Code project that started to implement a KDE Rich Client, for more information see Rich Client

