KDevelop and the Open Build Service
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.
The InterviewJoe: What is your role in KDevelop development?
Amilcar: 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.
Joe: How did you get started using the Build Service?
Amilcar: 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.
Joe: How is the Build Service useful for your project, specifically?
Amilcar: 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.
Joe: What distribution(s) do you produce packages for, using the Build Service? Amilcar: 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.
Joe: Do you have any tips for developers using the service? Anything that might make it easier, or things to watch out for?
Amilcar: 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
%ifsuntil 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 for inspiration.
Joe: Any areas where you'd like to see the Build Service improve?
Amilcar: 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.
Joe: Anything else you'd like to mention about the Build Service?
Amilcar: 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.
Joe: 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 firstname.lastname@example.org. We'd love to hear about it!