Sputnick's blog

New Cuties - Quassel 0.11.0

Hi all,

It's that time of the year again for another Quassel release! For 0.11.0, we've focused mainly on full support for Qt 5.2+ (in addition to Qt 4.6+, which will be supported alongside for the time being). Since Qt 4.x has not seen much development for quite some time, and subsequently we've missed out on much work that has been done by the Qt developers, this marks a major improvement in particular for our users on Windows and Mac OSX. Support for both platforms has seen many improvements in Qt 5, and thus our official packages for those platforms are now built against Qt 5. In particular Mac users should be much happier now!

For KDE users it is recommended to still use Quassel built against Qt 4, because KDE integration support has not been ported to the new KDE Frameworks yet. This is something we plan for Quassel 0.12, so stay tuned!

In order to make dual-Qt support easier, we fully revamped the build system, something that was long overdue. The existing build system still came from the dark CMake 2.6 ages, and it was increasingly hard to maintain. So now everything has been rewritten, taking newer CMake features into account. Some build options have changed as a result; in particular, we use package properties now for finding optional dependencies rather than CMake defines. After configuring the build, CMake will output a summary of required and optional packages that could or could not be found, alongside with information on what a particular dependency does and where to find it. The INSTALL file has been updated accordingly.

Starting with 0.11, we also increased the build requirements. A C++11 capable compiler, such as gcc 4.7+, Clang 3.1+, or Visual Studio 2013 (at least the November CTP), is now needed in order to build Quassel from source. In addition, at least CMake 2.8.9 is required. We feel that these are reasonable requirements that should be supported by most current distributions (and there were no objections when we asked around).

Besides these major changes, this release also contains a bunch of bugfixes, most generously provided by our awesome community. Among other things, the handling of database errors has been improved, we now split CTCP lines that are too long (important for role players using /me a lot, I'm told), and some issues with QuasselDroid have been fixed. For those of you who you only want to get those fixes, but not the build system changes, Qt 5 support and the increased build requirements, we tagged Quassel 0.10.1. This bugfix release marks the last of the 0.10.x releases; we will not provide further support for this branch (as usual).

And now, get downloading unless your friendly package maintainer has already done this job for you!

Cheers,
~ Sput

A Bleeding Heart

Hi all,

as you should have heard by now, a major security vulnerability was discovered in OpenSSL. This does affect Quassel as well, as by default the connection between a Quassel client and core is encrypted using SSL (or, rather, TLS); in particular, it affects you if you run a core that supports SSL and is exposed to the public internet (clients, both monolithic and stand-alone, are not affected because they don't offer an SSL-encrypted service).

Into the Double Digits - Quassel 0.10.0 Is Out!

Hi all,

we proudly announce the latest release of Quassel IRC, version 0.10.0! As promised, development has become more active in the past few months (both because we gained several new contributors (thanks a bunch!), and I myself have finally some more time for development), so besides a host of bugfixes that already went into 0.9.x, this development cycle also saw various new features as listed in the ChangeLog. Besides, for example, various improvements related to SSL connections, optional multi-line input field, support for the Snore notification framework, the ability to show backlog messages in the ChatMonitor (beware though; it will slow down your sync!), the possibility to hide inactive networks in your Chat List, more translations, and a new version of the inxi (/sysinfo) script, this release features a new core/client protocol: the DataStream protocol.

This new protocol is one (intermediate) result of the refactoring work that has been going on behind the scenes for several releases now, aiming for separating out protocol-specific code from the rest of the codebase in order to be able to do things like, well, replacing the protocol (and making it easier for third-party client authors to work with it). The DataStream protocol is not much different from the original ("legacy") protocol, but it removes some of the unnecessary overhead. Due to a change to data compression, QuasselDroid can finally use compression when connecting to a 0.10.x quasselcore! You can read more about the protocol changes in the Wiki (work in progress). Note that we kept backwards compatibility, so using a new client with an older core, or vice versa, is fine (but won't get you the new protocol, of course).

That's about it. Go now and grab the newest version from our downloads page, or directly from your friendly distro's repositories once it's there!

One last note for people following development closely and interested in the goings-on in Git: The master branch has seen a revamp of the build system and features full support for Qt5 now (minus some glitches). Soon, we will start using C++11, as announced previously; so make sure to update your toolchain if it's ancient!

Cheers,
~ Sput on behalf of the Quassel Team

Yet Another Important Update: Quassel 0.9.2

Hi all,

the last update in the 0.9.x series has been released only a few weeks ago, and now it's already time for another one. Besides various bugfixes (among those, Phonon notifications play sound again!), and a bunch of new and improved translations, the main reason for this one is, unfortunately, another vulnerability: with a carefully manipulated client, you can retrieve the backlog of other users on the quasselcore you're using. Proper authentication is still needed, so this will only affect people who allow untrusted and malicious users on their shared core. Still, an upgrade is highly recommended.

If you happen to be a distro packager, please be advised to backport (i.e. simply apply) this and, if you haven't done so yet since the release of 0.9.1, this patch to your packages, if you can't bump them to 0.9.2 for release process reasons.

Well, here's hoping that next time we won't have that sense of urgency again :)

Have a nice day, and happy updating,
~ Sput

We Have Mailing Lists!

Hi all,

finally (after years of pushing and prodding for it), we now have mailing lists for Quassel IRC.
While most of user support and discussions happens in our IRC channels (mostly #quassel on
Libera Chat), mailing lists have distinct advantages - in particular, there is an archive, and
people can chime in asynchronously.

So now we offer the following lists:

  • quassel-announce

    This is a read-only list, where the development team will send important announcements
    to. We highly recommend distro packagers to subscribe to this one, as we'll announce
    releases and other important information there.

  • quassel-users

    This list should be used for general user discussion about and around Quassel IRC -
    questions, tips & tricks, that sort of things.

  • quassel-devel

    This list is for discussion about development of Quassel IRC itself. Everything that is related
    to development should go there, and we'll share our plans and ideas there as well.

So, feel free to go ahead and subscribe!

Please note that this is my first time setting up a list server, so if the lists show unexpected
behavior or have configuration issues, feel free to poke me so I can fix it.

~ Sput

Mandatory Upgrade: Quassel 0.9.1

TL;DR: If you're running Quassel Core or the stand-alone, monolithic client with Qt 4.8.5+ and PostgreSQL, you need to upgrade immediately!

Looks like Qt changed the string escaping rules in their PostgreSQL driver for Qt 4.8.5, which unfortunately may cause database corruption or data loss if you're running Quassel Core or the monolithic client with a PostgreSQL database and that Qt version. Older versions of Qt are safe, as are the pre-built packages for Windows, MacOSX and the static core from our website. All other users (and distros!) should upgrade their core or monolithic build to the brand-new 0.9.1 version of Quassel immediately. Thanks in particular to Tucos and brot for finding that issue and its cause!

In addition to the fix for this issue, a number of other fixes went into this release, most notably several ones related to key handling for encrypted channels. Also, you should now see Quassel come up in your preferred UI language on MacOSX again (rather than in Japanese).

Note that because of the urgent nature of this release, we couldn't wait with the announcement until binary packages for 0.9.1 have been provided. Those will be added in the next few days.

That's it for now. Over and out.
~ Sput

Onwards and Upwards - Quassel 0.9.0!

Yes, yes, I know. Again I have been too quiet on this page, while several major changes have happened in my real life. However, things are slowly settling down, and I could spend more time on Quassel again during the past few months. And as usual, the community has been active as well providing patches, fixes and features - thank you all for that!

So without further ado, I present to you Quassel 0.9.0!

A list of the most important changes can be found in the freshly updated ChangeLog - improved certificate handling, improved OSX support, DockManager compatibility, channel-specific highlights just to name a few features that have been contributed by the community (special thanks goes out to Tucos, who is restless indeed).

Meanwhile, I am slowly continuing to refactor the heart of Quassel, which is the communication between the client and the core. My goal is to abstract the protocol, so in the future it will be easier to write third-party clients. Having a clean protocol abstraction is also a prerequisite for getting things like events and scripting going. Expect more news along those lines in the future!

Oh, we've also switched to GitHub as primary means for source code hosting and managing contributions. The main reason for this is that people were unhappy with Gitorious because it was slow, sometimes unreliable, and has a less advanced web interface. So please, if you like to send patches, use pull requests on GitHub - that way, we'll make sure they won't get lost.

For translations, please continue to use Transifex.

And that's it, I think. Thank you all for your patience and continued support of Quassel, and have fun with the new release!

~ Sput

We are back - with Quassel 0.8.0

Has been a while that this page has seen updates, as we, the main developers, are still too busy with real life to get as much done as we would like. So many plans, so little time...

Thankfully, we have some pretty awesome guys from the community (al, Tucos, johu, kode54, Fish-Face, to name but a few) who help out not only with support in our IRC channel, but also with triaging bugs, and especially with sending patches. So we finally managed to clean out our merge request queue and got a new feature release going!

Quassel 0.8.0 brings you the usual slew of bugfixes, a ton of new languages and additional translations for the existing ones, and a few new features such as syslog support, configurable tab completion key, improved desktop integration and more.

Behind the scenes, and hopefully not noticeable for you, we've merged the new event backend into the core. This is more or less a complete rewrite of how the IRC protocol is handled, and the first major step towards full scripting support!

So don't hesitate to grab the new release and get rollin'!

A note for packagers: The Qt 4.8 release introduced an issue with QTreeView handling that causes parts of the nick list (and sometimes the chat lists) not being shown sometimes. For distributions that don't believe in frequent feature upgrades, we've rolled a 0.7.4 release that only contains this and some other bugfixes, but does not introduce new strings or features. If your distribution backports Qt 4.8, we warmly recommend backporting this version of Quassel as well!

That's all.
~ Sput

Quassel IRC v0.7.3

On September 8th, the IRC was in turmoil because someone discovered and actively exploited a bug in Quassel's CTCP handling that would cause the core to crash when processing a specially crafted CTCP message. What followed was masses of users quitting from Freenode, because their cores crashed.

We found and fixed the issue within a few hours, and have issued a new bugfix release. We strongly recommend updating your core or monolithic client as soon as possible to avoid crashes. Client-only builds are not affected.

Tarball and static core are available from the download page; some distros have already bumped their packages, others should follow soon. Packages for other platforms are not done yet, they will follow shortly.

If you cannot update your core right now, you (this means, all users of your core) should add an ignore rule to globally ignore CTCP requests. This will avoid the crash as well.

Sorry for the noise, but bugfree code is a myth :)

~ Sputnick

The State of Quassel (or: Why Are There No Updates?)

Because people keep wondering why our repository has been rather... quiet for the past few months, and not everybody finds his way into our IRC channel to ask us in person what's up, I think it's a good idea to finally blog about this.

I can assure everyone that the project isn't dead or anything. But the main developers are currently quite busy with real life, mainly with thesis writing, and Quassel development needs to suffer for that for the next few months. We intend to get back to development full steam once these rather time-consuming commitments have been dealt with, and we still have some cool plans in store to make Quassel an even better client once we're back!

In other news, we did package up 0.7.2 quite a while ago, but we're still waiting for Windows builds, so it's not up on the download page yet. You can get the tarball at the usual location though, and also find packages for Mac and the static core in the download dir. Some distros (Gentoo, *buntu) have already been shipping 0.7.2 packages for a while as well.

In even further news, some exceptionally cool things are being done by some of our users. For one, there is a native (!) Quassel client for Android devices under development. QuasselDroid is still work in progress, but I'm told it's shaping up really nicely.
For Maemo/MeeGo devices, Sandro Giessl is working on Quassel2Go, which at present is a version of the standard client modified for small touchscreens. We intend to merge this into the upstream codebase at some point in the future, but for now he maintains his own fork.

That's it for now. Stay tuned, while I go back to my thesis writing, and rest assured that Quassel will see more development again in just a few months!

Syndicate content