But in the case of openSUSE, the community distribution set up by the SUSE Linux company, one feature is indeed unique: the Open Build Service (OBS) that allows anyone to build packages for any distribution, any supported architecture, yielding binaries and even installation media. Its reference implementation is here.
The OBS came about as the result of an idea that Adrian Schröter, who has been with SUSE with 1999 and is now project manager of the build service, had when he was made project manager of openSUSE soon after the community distribution was set up in 2005.
In Schröter's own words, "I had the right problem at the right time which I wanted to solve." The problem? He had something in the region of 400 packages to maintain and wanted to lessen his own workload.
|
The OBS itself is a web-based facility that supplies the space and processing power and, depending on the projects which have been set up, the source for many of the packages that developers may want to compile for their own, and other, distributions.
Schröter says SUSE had a similar service before OBS was set up in 2006 - but it could only be used for internal operations as it needed a local login. The OBS builds from source and one can obtain binaries for a single use. Else one can create a repository within the build service for multiple downloads.
"Everything is organised into projects," Schröter explained. "You can build packages for other distributions, you can search for packages or you can upload your own source. There are multiple kernel projects against which you can build your packages."
The OBS can be used on the web or else the software to set up one's own instance can be downloaded and installed elsewhere.
This can lead to abuse of the system as well. Schröter says that "if we see packages that do not comply with our policy, then we remove them. It has happened many times". Packages have to necessarily have licences that allow them to be freely distributed.
How does the service benefit openSUSE? Schröter says it provides a system where developers can communicate and co-operate. "If we can convince the author of a package to build on the OBS, then it increases the number of packages available to us. The author would know best how to package his/her own software, hence it increases quality and also integrity of the package."
He pointed to the example of the C compiler, gcc, which is often updated. If someone were to update their systems and encounter an updated compiler, he or she could well end up breaking those systems. Using the OBS, one can test how packages build and see how things are progressing; this is possible because one can build an entire distribution in less than a day.
"We use it for openSUSE and, internally, for SUSE," says Schröter who works for both. "It tends to define workflow as well, and review mechanisms are present. Mistakes, for example things like licence compliance, are spotted earlier, much before the QA stage."
To run the OBS, six core servers are needed and about 400 build instances. Most of these cater to the x86_64 architecture but one can also build for ARM and PowerPC. Initially, the service, which began in 2006, had very few packages all of which were for openSUSE.
The OBS is now integrated with the code repository, github. It is run by a core team of three people but there is a much larger virtual team. Additionally, there are contributions from partners who also use the service.
Schröter has a number of things planned to improve the service. For one, he wants to clean up the code to make it faster, and improve the integration with git, the source code management system that is used by many projects, including the Linux kernel.
He also wants better support for QA so that breakages can be detected earlier and more test suites to check all packages.
The writer is attending SUSECon as a guest of SUSE.