New build requirements for the master branch soon!

Manuel Nickschas sputnick at
Fri Mar 14 19:25:44 CET 2014

Hi all,

a while ago I have called for discussion on bumping the build requirements for 
Quassel, starting after the release of 0.10.0. There were no objections either 
on the mailing list nor in the IRC channel, and with the imminent release of 
0.10.0, the time draws nigh for this change to happen.

Shortly we will tag 0.10-rc1 and create the corresponding release branch, 
which means that subsequently the master branch will be free for some 
disruptive changes. High on my list are the following tasks:

* Refactor (basically rewrite) the build system, using the new possibilities 
for doing things that CMake has grown over the past few years, and making it 
much easier to understand and maintain. Much of the current complexity still 
stems from CMake 2.4 times, when things like target properties did not exist 
yet. I will also use that opportunity to get rid of most of the CMake modules 
we still bundle that have been part of upstream CMake for a long time already.

* Enable C++11 in the Quassel codebase and start cleaning up things 
throughout, using new language features where it makes sense. While this part 
is a bit controversial, I really want to make use of some of the cool stuff 
that was added to the language, partly because it makes some things easier and 
safer, but also because it is a learning experience for myself.

* Make Qt5 support a first-class citizen in Quassel. There currently exists a 
patchset mostly contributed by Harald Fernengel, Bas Pape and K. Ernest Lee 
that has been around for a long time and updated over time; this will form the 
base for proper Qt5 support. However, we will still be supporting Qt4 in the 
foreseeable future (i.e. until KDE Frameworks are available widely enough to 
allow us to drop the KDE4-based integration stuff).

These tasks will require updating the build dependencies for Quassel (which 
hasn't happened in a long time). We believe that the following version 
requirements are reasonable (as in, supported in the current versions of the 
mainstream distros, including Debian Stable and the upcoming Ubuntu 14.04 

* GCC 4.7,  Clang 3.2, XCode 4.6 or MSVC 13
* CMake 2.8.9
* Qt 5.2 for Qt5 support

It is not decided yet if there is a need for updating the version requirement 
for Qt4 (which is currently at 4.4 for the core and 4.6 for the client), but I 
would not hesitate to require Qt 4.8 if it makes sense.

We realize that these requirements may be inconvenient for some people stuck 
with older distros and in particular with older versions of MSVC; however, the 
benefits for developers outweigh this downside by far. Other high-profile 
projects such as Amarok and all of KDE Frameworks have similar or even higher 
build requirements these days. End-users should not have to care at all, as 
distros and the Quassel Project itself provide ready-made binaries.

Thanks for your consideration,
~ Sput
Manuel "Sputnick" Nickschas ("Sput" on Freenode)                  |  (o<
Member of the Quassel IRC Project -        |  //\
Come visit us in #quassel!                                        |  V_/_

More information about the quassel-devel mailing list