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
LTS):
* 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 - http://quassel-irc.org | //\
Come visit us in #quassel! | V_/_