Qt Creator build service plug-in

Published Friday January 21st, 2011
6 Comments on Qt Creator build service plug-in
Posted in Community, Qt in use | Tags: , , ,

Since Qt is cross platform, targeting several platforms with your application should be fairly easy. However, from a practical perspective it can be fairly inconvenient if you want to distribute installable packages for multiple Linux distributions like Debian, Fedora and openSUSE. It can be quite time consuming to maintain distro-specific packages for five or six different distributions. Wouldn’t it be nice to offload such work to others, focusing most of the effort on adding value to your actual application?

A community project called “openSUSE build service” (OBS for short) has answered this challenge for many developers. OBS offloads the actual building of the packages for each Linux distribution. With OBS you simply upload your source code to a server, select target distros, and a short while later you can pull down distro-specific binaries of your apps.
Qt Creator community build service plug-in
Over the past few years we have seen a number of requests come in from community groups asking for integration of a package building service into Qt to better support Linux distros. In fact, in 2008 at the annual KDE conference in Belgium, Klass Freitag was asking community developers to use openSUSE build service. Having a ‘click-to-build’ distro packages solution for Qt based apps, integrated in your favourite free software IDE.

Based on feedback from several community groups we agreed to sponsor the creation of a plugin that connected Qt Creator with the OBS, and we are pleased to announce that we are releasing this into beta today.

This first beta release of the plugin is made for Qt creator. Frank Karlitschek is one of the main developers, and he is urging free software developers to test it out, and engage in further development and integration with other IDE’s. Frank suggests Eclipse or Kdevelop as obvious candidates. Maybe someone would integrate the Qt Creator plugin with vim and emacs too, he says.

There are some really interesting aspects to this technology. It includes freedesktop.org services with social media libraries, e.g the Qt Creator plugin uses libAttica, which is an official part of MeeGo platform.

If you want to learn more, you can read about the plug-in and download it from this page:

Beta of the Qt Creator Buildservice Plugin released

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Community, Qt in use | Tags: , , ,

6 comments

M says:

great news, but I think Nokia should provide the service for meego, and it would be better if Intel can contribute its high performance compiler for meego developers.

Stephen Chu says:

Is there anything similar in existence or planned for Windows and Mac platforms? Right now I have to manually find all the DLLs and copy them into the same directory as the Windows executable. Zip them and distribute it for deployment. And the Mac utility to bundle all frameworks works but is hardly integrated. And I think it still have problem packing the right frameworks if you have more than one version of Qt installed.

And I still don’t know how to deploy a Mac console app. 🙁

Aron Kozak says:

Hi Stephen,

We talked about the possibility of sponsoring the extension of the OBS to support other platforms but we wanted to see the response to the “easy win” Linux distros first. So get your friends to make lots of noise about this subject and it might just happen 😉

friesoft says:

@Aron:
Extending OBS to other platforms would be REALLY great!
having to do package management for OBS (which includes for deb and rpm), ArchLinux, Windows and OSX is just tiresome…
allowing easy deployment on all major platforms would be just awesome.
Also integration of the meego community obs would be great (this should really be considered), as well as allowing other obs instances to be configured (e.g. private obs setup or for example the maemo build system (if possible)).

Nonetheless: great work 🙂 I for sure will use this plugin excessively 🙂

Craig says:

FWIW, if you can build your app as LSB-compliant, you only need one package for all the major linux distributions, not one for each distribution. The sticking point for this in the past has been the version of Qt that LSB supports is typically years behind and Qt itself could not be built (without much hacking) as LSB compliant…..

….until now. 🙂 Some patches are needed for the Qt source (affects only implementations, not the public API’s), details of which have been reported in the Qt bug tracker under the following:

http://bugreports.qt.nokia.com/browse/QTBUG-16385

The only Qt module that cannot be included is QtDBus, since Qt requires a more recent library than LSB provides. With the patches provided there, you can build both Qt and your own app with the LSB compilers and produce a single RPM per architecture (eg one for 64-bit intel, another for 32-bit intel, etc.) and have it work on RHEL5 or later, SuSE11 or later (usually earlier too), Ubuntu 7 or later plus many others. This all became possible with Qt 4.7.1 and the LSB 4.0 release.

Note that the openSUSE build service could still be complimentary to this – you could conceivably use it to build your LSB packages I guess. What the LSB would give you though is a much smaller set of builds you’d need to submit. 😉

PS: Vote for QTBUG-16385 if you want the changes to make it into the Qt main line source!

Knut Yrvin says:

Thank you Craig for your interesting report on a LSB regression bug in Qt, and how to limit number of packages developers need to support when targeting several Linux distros.

Commenting closed.

Get started today with Qt Download now