Building packages for multiple distros can be a major pain -- which is why we provide the
Open Build Service. One of the Build Service's many features is the ability to create packages
for many distros -- including openSUSE, SUSE Linux Enterprise, Debian, Fedora, CentOS, and Ubuntu.
One of the projects making the most of the Build Service is KDevelop.
We talked with KDevelop developer Amilcar do Carmo Lucas about
how the KDevelop project is using the build service.
What is KDevelop? KDevelop is a plugin-based Integrated Development Environment (IDE), that's been in
development since 1998. It supports 12 programming languages, five build tools, 11 documentation formats,
four revision control systems, five development toolkits, and dozens of other neat tools.
Most of its features are aimed at C++ development: code completion, fast code navigation, class browsing,
dependency diagrams, documentation lookup, integrated debugger, and so forth. It is written in C++ using
the Qt/KDE libraries, and can be run under any Linux, MacOS, FreeBSD, Solaris or even Microsoft Windows computer.
What is your role in KDevelop development?
I've joined the development team back in 2003,
nowadays I still provide some patches but I mostly
do the webmaster, bugkeeper, support and packager jobs.
How did you get started using the Build Service?
I have been a SUSE user since the 7.1 release, but that was
not the reason that I decided to test it. The main reasons
were that it was free, anyone can join and use it, and that
it provides packages for multiple distros. I started using
it in January 2007, and like everyone else I started by
doing SUSE RPMs only.
How is the Build Service useful for your project, specifically?
It allows us to deliver KDevelop binary packages for many distros
in very little time with very little effort. We can build them every
two weeks, or after an important bug fix. And the nice thing about
it is that we only need to upload a .tar.bz2 file, edit a changelog
file, and wait one hour; after that all binaries are done and spread
throughout all the mirrors around the word.
What distribution(s) do you produce packages for, using the Build Service?
We build packages for all distributions supported by the service,
except SUSE Linux Enterprise 9 and RedHat Enterprise 4 because they do
not provide the requirements needed by KDevelop. That means 34 different
binary packages using a common source and a common changelog file.
Do you have any tips for developers using the service? Anything that might
make it easier, or things to watch out for?
Yes, I do have some tips. I used the web front end provided for more than
a year before I started using "osc" the command-line tool. I would recommend
to people that start with Build Service to do the same, the GUI interface is
easy to use and provides all the essential tools, so there is no need to learn
and use the command line at the beginning.
Your first step should be to import an existing
Spec (.spec) file
adapted to the sources you want to compile, this can be any from CentOS, Fedora,
RedHat, SUSE etc. and then start adding
until you get it to work
for the other distros. Do not start from scratch, otherwise it's going to be hard
to learn all the .spec file commands.
Take a look at:
the Build Service/cross distribution package how to
Any areas where you'd like to see the Build Service improve?
Yes. In the IRC channel #opensuse-buildservice you can always
find someone to point you in the right direction, especially darix,
adrianS, and mls. However, on the mailing list, I've only received
responses to about half of my emails, so I'd say the overall experience
has been good, but the email support could be better.
Anything else you'd like to mention about the Build Service?
Yes. I'd like to recommend it to all developers who want to reach a broader audience.
In the past packaging was done exclusively by the distros, and the developers only
provided .tar.bz2 files or VCS read access. The build service allows developers to
get involved in packaging and distributing, without having to get a build farm
or installing different distros. And it's so easy to use, all you need is a browser
and your source code.
Thanks for taking the time to talk to us!
If you're using the openSUSE build service for your project's packages, drop us a line at email@example.com.
We'd love to hear about it!