Practical Technology

for practical people.

Building Linux Software the easy way: OpenSUSE Build Service

| 1 Comment

Let’s say you want to write an easy-to-install program for any Linux distribution. That’s a a problem. There is no single, easy way to install software for all versions of Linux OpenSUSE thinks it has an answer: the openSUSE Build Service.

The openSUSE project, the community Linux distribution supported by Novell, announced the release of its openSUSE Build Service 1.0 on July 7th. The first major release of the Build Service provides developers with direct access to the code repositories for the openSUSE Linux distribution.

Access to code is nice, but this is open source, we always have access to code. What’s more interesting is that the build service enables developers to build programs for different hardware platforms without a “compiler farm” of different hardware. It also provides automatic resolving of dependencies to other packages. If a program depends on another package, say a KDE application on a Trolltech Qt library, the KDE application will be rebuilt automatically if its Qt library is changed and rebuilt. That takes a lot of the drudgery out of building Linux applications .

Don’t mistake this for an openSUSE only project. What Adrian Schröter, the openSUSE Build Service project manager, said in a statement, “This will make openSUSE development much more transparent, allow the community to more efficiently and rapidly contribute to the distribution, and expand the number of users who are participating in our project,” is true. But, the openSUSE Build Service also works with other Linux distributions.

OpenSUSE claims that the Build Service will enable developers to create and maintain packages but just for openSUSE, and its commercial big brother SUSE Linux Enterprise, but RHEL (Red Hat Enterprise Linux), CentOS, Debian, Fedora, Mandriva, and Ubuntu as well. According to a statement by Amilcar do Carmo Lucas, member and packager of the KDevelop team, this “will make it even easier for users to get involved in the packaging process,” says. “It allows users and programmers alike to fix downstream issues, speeding even more the process of getting bug fixes and new features to the general public.”

This, in turn, will make all of Linux, and not just the SUSE variants, more attractive to ISVs (independent software vendors). “The openSUSE Build Service enables independent software vendors, like Open-Xchange, [an open-source groupware program and SaaS (Software as a Service) vendor] to more easily and effectively embrace Linux since building and packaging applications for any distribution becomes a one-time effort,” said Juergen Geck, Open-Xchange’s chief technology officer in a statement. “Now, we can configure a package once, reproduce it and test automatically. Using openSUSE helps to create fully tested, ready to run builds for all relevant Linux platforms automatically.”

What this means for users, said openSUSE community manager Joe ‘Zonker’ Brockmeier in an e-mail interview is, besides an eventual increase in Linux end-user applications, is that “they can find packages for popular programs and projects, including newer releases for older distros. For instance, openSUSE 10.3 users can still get packages of Banshee 1.0 [a popular Linux media-player] because it is easy for the Banshee developers to package Banshee for older versions of openSUSE as well as the latest versions that they are already tracking.”

Developers can use most of the Service’s functionality via a Web interface. Getting to some of the functionality will require the use of an openSUSE Build Service clients.

Specifically, the openSUSE Build Service 1.0 offers developers the following features:

– Streamlined package search – Anyone can find a package’s working copy as maintained by the official packager or packaging team. Contributors can submit changes against the working copy.

– Notifications – A submission handling and notification system has been put in place, allowing contributors to request merges of their changes to a project.

– Stronger quality assurance – Quality assurance happens before contributions are merged. Test builds of a suggested change are accessible to anyone.

– Improved branch handling – It is easy to set up a branch of a package. The branch will build in the same way as the original package, but can be modified.

– Better source handling – It is now possible to maintain a branch, and modifications are stored without creating a full copy. This makes it easier to maintain features based on the latest copy of the package. The Build Service builds the latest packages, including modifications, automatically.