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!
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 :)
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!
It's that time of the year when we're releasing a new Quassel, and this time we strongly recommend updating your core or monolithic client at least, as in older versions there was an issue with CTCP handling that might allow bad and ugly people to make your core unresponsive. This issue is also the reason for the 0.7.0 release being officially skipped. People still on 0.6.x and not wanting to update to a new feature release should upgrade to version 0.6.3 in which this issue is fixed as well.
Now read on for a short list of the major new features the 0.7 flavour gives you, besides a ton of bugfixes and translation improvements!
In a few days, the master branch (which will become quassel-0.7) will start depending on Qt 4.6 for the client only. Besides giving us some very welcome API additions, and fixing a few bugs we currently have to work around, this also allows us to use Qt Kinetic and the Animation Framework in the future.
Qt 4.6 has been released about half a year ago, and is also required by the current stable KDE release, so we think that most desktop distros should be up to par by now (or don't care enough about staying up-to-date, in which case they shouldn't be expected to ship a bleeding edge Quassel anyway). By the time quassel-0.7 is released, even more time will have gone by (and the next stable Qt release should be out).
The core's dep will remain at Qt 4.4.0 for now, so people running Debian Stable on their server should be ok. The deps for the current stable release 0.6.x won't be changed, so subsequent 0.6.x releases will still be fine with Qt 4.4 for the core and Qt 4.5 for the client.
After doing some more experimenting with translation workflows, our Master of Translation Daniel "al" Albers has agreed to support Transifex as an additional means to create and maintain translations for Quassel. Thus, people not having or wanting a Launchpad account can use the Transifex portal for contributing translations now!
Since we're not dependending on Ubuntu downstream for managing the translations at Transifex, we are a bit more flexible when it comes to working with contributors, and we can sync the codebase with it more easily and more often. Please do check the other system though before starting, in order to not needlessly duplicating work.
al will integrate translations from both systems into Quassel, so we're not abandoning Launchpad/Rosetta, just providing an alternative.
In short, you can now use the following two frontends for helping Quassel be international:
Thanks for listening again, and I'm looking forward to seeing our po/ folder fill up! ;-)
It's that time of the year again, when we proudly do a new feature release of Quassel IRC! You might wonder why we've skipped the announcement for 0.6.0, though. The reason for this is that shortly after tagging, we've discovered two serious bugs in that version. One could make the monolithic client try to select the PostgreSQL backend rather than SQlite; the other would lead to a crash on startup in some setups. Since we usually let some days pass between tagging and announcing a release, those bugs were found and fixed before we'd officially released 0.6.0. Two days later, we tagged 0.6.1.
There are several major features in this release:
- Completely reworked client/core connection featuring the long-awaited reconnection and Solid support as well as a streamlined UI
- Support for the new DBus-based system tray of KDE and, in some distros, Gnome (StatusNotifier spec)
- Improved notification handling
- Support for inputting formatted (colored/bold/...) text
- SASL auth support (replaces NickServ e.g. in Freenode)
- Several new languages and improved translations for alreay existing ones
- Build system improvements
See the ChangeLog for a more exhausting list of new features. Of course, we've also fixed many bugs and optimized some things in this release ;-)
As usual, we'll maintain the 0.6.x branch in feature and string freeze at least until 0.7.0 is released. This means that we'll backport bugfixes where it makes sense, but don't introduce new stuff in 0.6.x versions, in order to make packagers of freeze-loving distros happy.
Following KDE's example, Quassel's master branch (what will become 0.7.x) will require CMake >= 2.6.4 for building starting in May (about two weeks from now). The reason for this is that our KDE integration obviously uses parts of KDE's build system, and we'd like to avoid spurious bugs by something not working as expected in some random script included somewhere, just because your CMake is too old.
CMake 2.6.4 has been out for a long time (we've been at 2.8.x for ages!) and should be included in most, if not all, distros. If it isn't, you can just usea recent binary release for cmake, untar it somewhere, and use that instead of the system installed one.
Quassel 0.6.x will continue to work fine with cmake-2.6.2; this change will only affect the development branch.
As mentioned in the previous article, we've been trying out Launchpad/Rosetta for translations for the past few months. It took us a while to get the workflow right, since Qt still uses its own translation format that nothing else uses, and conversion is shaky; but Daniel "al" Albers with some help from Kubuntu translation expert David "dpm" Planella have gotten it working at last. Thanks!
The results have been encouraging; we have quickly gained several new languages, and existing translations have been improved thanks to the Kubuntu translation teams.
However, we also still have several contributors that prefer using their own tools over having to register at Launchpad, and would like to continue to send in translations as patches. Good news: al is willing to handle those and merge them with the Rosetta contributions! It would be best to send them to <translations at quassel-irc org> as that gets straight to the correct person. Please make clear which branch your translation applies to, so we can make sure to apply it correctly!
After we have merged your translation, it will also be included in Rosetta with the next package upload, overriding whatever was there before. We'd suggest having a look at Launchpad first though, to check which languages are already being translated and avoid duplicating work. Or poke us in IRC and ask beforehand, if it makes sense.
Thanks to all of you helping to make Quassel awesome in many languages!
Update: Fixed the mail address that was eaten by Drupal, and also removed some false information about Rosetta branches (looks like it points to master now, rather than the stable branch).
Update 2: Fixed Rosetta links
This is primarily a message for our current translators.
Daniel "al" Albers has finally managed to figure out a workflow how to correctly handle .po (gettext) files for translating Quassel (a non-trivial problem, since Qt stupidly insists in using its own format). Now that Quassel uses what the rest of the world uses, this also means that we now enable the use of standard tools for translating.
It so happens that Quassel has now been imported into Rosetta, Launchpad's (Ubuntu's) tool for managing translations. Which is cool, because in the two days it's been sitting there, we can already see a ton of new translated strings, plus it looks like we are getting heaps of new languages up to fun things like Colognian or Low German...
But this also means that there will be a change in our current way of handling translations. Until now, various cool people have been sending translations patches directly to us, maintaining a dozen of languages that way. In the future, this probably will have to happen via Launchpad. We are still figuring out a workflow how to get the Rosetta translations back upstream, but it certainly is our intention to do that, rather than letting Ubuntu maintain their own set of language packs.
If you helped with translating Quassel before, please wait with further work until we have put all the pieces together. We wouldn't want you to duplicate work, or do work that gets invalidated later. So far, your existing translations have been imported into Rosetta, so nothing got lost :) I will come up with a follow-up blog as soon as we have figured out how to handle translations in the future.
Let's answer a few Q&A: