Saturday, December 17, 2011

kdepimlibs-4.7.3 imap4 regression fix

Attention Gentoo users: If you're running kmail- and kde-4.7.3, and if you have been hit by bug 382411 (problems with local filters, cannot upload unread message on imap; see also here and here), please keyword kde-base/kdepimlibs-4.7.3-r1 and give it a try. (You may want to log out and log back in.) This upgrade seems to fix the problem... If I get some positive feedback, I'll fast-track it for stabilization. Cheers!

Friday, December 9, 2011

Unit tests - a useful thing causing occasional pain

For whoever has never heard that expression, unit tests are a way to test the functionality of a program or library in an automated way, by for example checking the evaluation result of test data. This is a great thing and can help massively in identifying coding mistakes. CMake provides a mechanism, and in many KDE packages test routines are included.
So far, so good, this is the theory, now let's look at reality. In Gentoo, the main KDE distribution is split into 295 (!) packages. Many dont have any tests (oxygen-icons comes to my mind as a nice example). Of those that have, 37 now have all the test routines hard disabled, and I guess a few are missing that I still have to add to the list. Why? Well, first of all, you have to know that compilation usually runs in Gentoo as an unprivileged user detached from any graphical desktop session, and this user also runs the test routines. In addition, tests should also run fine "offline", i.e. without internet connection. One of our developers is running a great thing called a "tinderbox", where build and unit tests in various configurations are automated- in an isolated environment, and possibly even without network access. So, what can go wrong?
  • The tests need X11. Well, actually we can get around this, with a nice hack called virtualx. A background framebuffer X server is started for the test phase only, and the tests are redirected to that display. Works even sometimes. :o)
  • The tests need a dbus session bus. I think we could get around this too, but nobody bothered to do it so far and I'm not a dbus expert. 
  • The tests need an entire KDE desktop to interact with. Yes, that happens, and unfortunately, we have to disable them in this case, see above. 
  • The tests try to download a data set from, say, IMDB, CDDB, or similar. Bad, bad, bad, see above.
  • Next, the tests pop up dialog boxes asking for user interaction. A window asking for a GnuPG passphrase is my personal favourite... 
  • And last, what I particularly like is a unit test that fails... and after digging into the test log, I see a fat comment "This does not work yet and needs to be fixed!"
I guess at least part of the above points is a matter of policy. Test routines requiring user interaction can provide valid information, but of course they are not particularly useful for automated testing... Anyway...

PS. This blog post took slightly longer to write since a libreoffice-3.5 build in the background went berserk... load 65, >180 concurrent compilers... :D

Wednesday, December 7, 2011

Gentoo KDE 4.7.3 going stable now... including KDEPIM

Another KDE version stabilized in Gentoo... x86 is done with KDE 4.7.3 since this morning, amd64 is following right now. For those of you who don't read Portage news items, here's again my message about KDEPIM:
The stable upgrade from KDEPIM to KDEPIM 4.7.3 is a MAJOR upgrade with potential for major breakage. Therefore we will try to keep and support the old, so-far stable KDEPIM as long as possible.
If you don't want to upgrade your KDEPIM yet but keep the old version, please download this mask file and add it into your /etc/portage/package.mask.
If you decide to upgrade, please have a look at the upgrade guide first.
In addition there have been a few reports of problems with the Plasma desktop after upgrade. Usually these are caused by single plasmoids malfunctioning, so what should help is to remove some of the plasmoids from your desktop and add them again... Otherwise the upgrade from 4.6 to 4.7 should be pretty much unproblematic, and bring you a shiny new desktop with quite some new features.
With the new KDE we have finally also been able to stabilize a newer version of digikam and kipi-plugins (both at 2.3.0 now!), and also rekonq gets a big bump to version 0.8.0, which should fix an overdue security bug.
Finally and not related to the stabilization, since yesterday we have a package in the main tree that provides integration of Google calendars / contacts into Akonadi: kde-misc/akonadi-google ... It's a bit experimental still and also not an official release but a packaged snapshot, but anyway, if you are interested, give it a try!