KArchive standalone release for Qt4

Due to popular request during my KDE Frameworks 5 presentation, in other words "where can I get KArchive today?", which is also a long-standing request from many developers of Qt applications, I experimented with making a Qt4-based release of the KArchive framework.

The Qt5-based karchive will be a lot thinner, thanks to much of the necessary functionality going into Qt5 (mimetypes, standard paths, safe saving...). For now, the Qt4 package has to come with all that stuff built in.

Here it is:


Updating a git checkout - finally as easy as with svn

git: very powerful, not easy to use for simple tasks.
Especially when coming from svn, where updating a local checkout was simply "svn up", and with git it's "git pull --rebase, and if that fails, stash, pull --rebase, stash pop".

Finally, all this can be automated, so that one can simply keep the good old habits from svn and type "git up"!

Here's the recipe. In your ~/.gitconfig, write
up = !gitup

Then download the script and put it in your $PATH.
(Should have done that years ago...)


kdepim-4.4 with kolab (problem and solution)

My wife's assistant uses KMail (obviously) and KOrganizer (for a Kolab shared calendar).
To spare her from akonadi trouble, I installed OpenSuse-11.4 for her, which comes with KDEPIM 4.4.


A very productive KDEPIM meeting in Osnabrück

After 6 years of absence, I participated again in a KDEPIM meeting, to fix some issues in Akonadi in order to improve my daily life :-)

Here's a report of what I did:

Fixed: "incomplete collection" error in mixedmailresource (bug 285973)
Fixed: mixedmaildir resource can lose email when changing message flags (bug 289428)
Fixed: Assert in imap resource when resuming work after going offline (bug 291810)
Fixed: cancelling mail check doesn't really work (two different bugs)


Linux (and Windows) on a new HP Pavilion laptop

I got a HP Pavilion g6 for my birthday -- this must be the first time I have a personal laptop, all my previous ones having been bought by KDAB (or by IBM as KDE sponsoring, for the very first one).

Main purpose: Windows music software. But also reading KDE email of course. So I installed linux (openSUSE, to try it out for the first time).


config.h is evil

We often need to check for a system function or library availability, like HAVE_XZ_SUPPORT, and we put that into a cmake-generated file like config.h (much better than -DFOO because changing that requires recompiling everything).

That's fine. However a single config.h at the toplevel of kdelibs is not modular; every change requires recompiling everything, and at some point we would like to split up the libraries to make their adoption easier by other people.


Unittests, now with automatic upload of results

As a followup to my previous post: I just added a feature to kdesrc-build which makes it possible to run the tests and upload the result to Just add the line "run-tests upload" in your module definition for kdelibs, and others if wanted.


kdelibs unit tests: all green!

For the first time since end of May, 2010, the kdelibs unittests are all green again, in trunk:

100% tests passed, 0 tests failed out of 171

Thanks to everyone involved in the last round of fixing (Aaron Seigo, Kévin Ottens, Bernhard Beschow, Sébastian Trueg and a few others)!

What does this mean? Well, it means two things:

1) if someone breaks something, I'll be able to find out very quickly and to shout at him/her :)
(well, or at myself, a case which happens often too...)


Mimetypes are out of ksycoca

During the Akademy kde-on-mobile discussion, Kévin Ottens suggested that mimetypes be splitted out from the main sycoca database, in order to reduce the overall time kbuildsycoca takes every time it runs, and to make things more modular. Last monday I had a look and decided to go one step further and not use ksycoca at all for mimetypes. This makes the KMimeType subsystem really independent (usable without having run kbuildsycoca4 before, so no dependency on kdeinit+kded etc). Took me the whole week, but there we are.


No print preview available, due to " undefined reference to qBadAlloc"

If print preview doesn't work (no viewer found for PDF files), then most likely okularpart (from kdegraphics) isn't installed. If this is because your kdegraphics can't find poppler (the test for HAVE_POPPLER_0_12_1 fails) even though you have it installed, look into CMakeFiles/CMakeError.log. If you see "undefined reference to qBadAlloc" while linking, then the problem is that /usr/lib/ was compiled against a Qt with exceptions enabled, and your own Qt (e.g. from kde-qt git) was compiled with -no-exceptions.