Thiago Macieira
Qt
KDE
Posted by Thiago Macieira
 in Qt, KDE
 on Thursday, December 04, 2008 @ 22:56

But in a good way :-)

I remember back in 2006, when I was a brand, new engineer at then-Trolltech AS, I was the only one who still built KDE 3 from sources. Everyone was using distribution-prepared packages: mostly Kubuntu and SuSE, but also source distros like Gentoo, as well as FreeBSD (ports tree). And I remember this fact for one simple reason: being able to run many Qt applications (KDE) with the Qt you’re developing makes you find your issues a lot sooner. In other words, the chances for ugly issues slipping through releases was much less.

But 2006 means we were working on Qt 4.2 already, while KDE hadn’t released 4.0 yet. We had only Qt Designer, Assistant, Linguist, and one other internal application to test with.

Now, the situation is different. Many of the engineers are running KDE 4. Not only that, a few brave souls are actually running — if not compiling — KDE 4 with the current Qt 4.5 from our Git repository. That’s why I say KDE 4 is blocking the release of Qt 4.5. I won’t say it is the only reason, but it’s a very important one.

Three weeks ago, I did a full build of KDE 4 from trunk (to-be-4.2) with the standard Qt 4.4 sources. Then I launched it with Qt 4.5. For one thing, I haven’t detected a single issue related to symbols, so there don’t seem to be any binary- or source-compatibility issues.

However, even though applications started, they were unusable, if they didn’t crash. Three weeks ago, this was the situation of a KDE 4 desktop with Qt 4.5 (with desktop effects enabled):

  • the Plasma panel was 100% transparent
  • moving the mouse over the Panel taskbar had no on-mouse-over effects; worse, the clicks went through the taskbar to the panel, so you couldn’t activate windows with it
  • for a few days, Plasma crashed on startup
  • Plasma looked completely horrible with the raster paint engine
  • Kontact crashed on startup
  • the slideshow screensaver (kslideshow.kss) showed inside a window, occupying half of my left screen only (the rest of the desktop was visible and updating)
  • going to an https website in Konqueror then going to the next would show the wrong certificate
  • Akregator hit an assertion failure and crashed
  • opening any directory with Dolphin would show everything unsorted, until you changed the sort order
  • krunner crashed when you typed “kat” (no e)
  • some threaded applications (like krunner) crashed randomly

I must point out that the same KDE 4 build worked fine with Qt 4.4.

Suffice to say that a release of Qt 4.5 with those issues would be a Brown Paper Bag release.

So we looked at our plans for Qt 4.5 beta and decided: among other criteria, we would make sure KDE 4 was running smoothly on X11 with whatever we released. (Other criteria included Qt Creator running smoothly on all our main platforms, all of our Tier 1 and 2 platforms compiling, etc.)

We then assigned Olivier and Alexis to spearhead the project that would ensure those issues were solved before the release. Of course they couldn’t do everything — for example, the screensaver issue required getting the Graphics Team to add a new flag to Qt 4.5. And some of the issues weren’t Qt issues, but bugs in the KDE code that just happened to get away with it in 4.4.

However, most of the issues I listed above were actual Qt regressions.

And I’m happy to announce that, today, the last visible issue we could see has been fixed! More than that, Qt 4.5 also fixes some issues that I still see in my laptop (which runs 4.4), like kontact randomly crashing when I click a folder, some KIO networking issues, or a race condition in QtDBus code.

By no means we’re done (krunner crashed on me today in QtDBus code), but at least it looks like we’re in good shape for a beta release sometime soon.

Stay tuned!

13 Responses to “How KDE 4 is blocking Qt 4.5”

» Posted by Tom
 on Friday, December 05, 2008 @ 00:11

New KDE tagline:

The biggest testcase there is.

» Posted by Adriaan de Groot
 on Friday, December 05, 2008 @ 00:49

That tagline “biggest testcase there is” is not even overblown. The talks I’ve been giving about KDE4 on Solaris for about a year now have been about KDE4 shaking out bugs in compilers, libraries, buildsystems and OSsen and, conversely, the way those tools show up bugs in KDE4 itself. To the point that, to redefine Solaris as a tier-1 platform also with the Sun compiler (so that WebKit will build) we’ve redefined the C++ STL on Solaris to one that is modern, g++ compatible as far as I can tell and Free Software as well.

» Posted by Ckt
 on Friday, December 05, 2008 @ 01:26

Good work!
I am also interested in Qt bug 165162, 204805 and 223215
because they annoy the non-English and Asian users.
Is there any plan against these bugs?
And how about the xft support?
Will Qt4 series implement the feature?
Thank you!

» Posted by Jesús Guerrero
 on Friday, December 05, 2008 @ 03:18

Just a little note about something you said:

Quote:
‘I was the only one who still built KDE 3 from sources. Everyone was using distribution-prepared packages: mostly Kubuntu and SuSE, but also source distros like Gentoo, as well as FreeBSD (ports tree).’

Answer:
Gentoo has *never ever* released binary packages for kde (at least, since 2004 which is when I joined its community, and I doubt they had bins for kde 2.x). While it’s true that the “packages” (ebuilds in Gentoo) were distribution-prepared as you say, it’s also true that ebuilds are nothing but scripts that tell the system how to download and build the sources. So, ALL the Gentoo users were indeed building from source.

There might be unofficial overlays with binary packages for kde (I never knew about that, but anyway…), but there’s no bin kde between the official ebuilds, and has there never been as far as I can tell.

There were the so called grp packages once upon a time, which were some bin packages into a cd so you could install quicker, however once you emerge –sync and update world you get the latest from source again.

Cheers :)

» Reply from Thiago Macieira
 on Friday, December 05, 2008 @ 07:25

I meant the difference between distribution-prepared packages, based on KDE released versions, from building from sources directly from SVN (kdesvn-build).

I know Gentoo and some other distributions have packages that track or build from SVN directly, but no one was using those in 2006.

» Posted by Florian Link
 on Friday, December 05, 2008 @ 08:25

No offence meant, but I wish you would do the same testing on Windows and MacOS X, maybe even by using KDE on Windows?!
Especially doing the testing with non-trivial Applications apart from the unittests is very important!
The update to a new Qt version is always a big step for a non-trivial application because there always are regressions,
I can not remember any Qt update that did not cause us any troubles, especially on the GUI part.

» Posted by Elvis Stansvik
 on Friday, December 05, 2008 @ 09:22

It’s heartwarming to see this mutual strengthening between KDE and Qt. Keep up the good work at Qt Software Thiago, and good luck with the 4.5 release!

» Posted by Boudewijn Rempt
 on Friday, December 05, 2008 @ 09:53

Well, I know of a couple of regressions more… The systray example doesn’t show the systray icon on os x anymore, and inconsistently on KDE. And somehow, a combobox put in statusbar becomes screen-high and empty (at least on OSX). But I’ve already mailed these issues to the qt4-preview mailing list :-)

» Posted by DreaMule
 on Friday, December 05, 2008 @ 10:03

The Qt Windows Needs love too !

» Reply from Thiago Macieira
 on Saturday, December 06, 2008 @ 09:25

Of course other platforms need love too. But it seems you guys failed to consider one aspect: the majority of Qt code is also cross-platform. So when we test KDE on X11, we end up fixing many issues that applied to the other platforms as well.

Of the list above, I think the only X11-specific one was the screensaver issue. Everything else was in cross-platform code.

» Posted by Iuri Fiedoruk
 on Saturday, December 06, 2008 @ 21:12

I would love if there was also a slimmed down version of Qt Creator that fits the eeePC 701 screen. I use it, but can’t use the buttons, and using menu each time takes more time - remember, does not have a mouse but a touchpad - and is boring :)

» Posted by Andreas
 on Saturday, December 06, 2008 @ 21:18

It’s great to see you guys committed to working with KDE on such a practical level. Sure, I’ve seen the statements about collaboration with open source projects; this is an example one can point to.

» Posted by Michael "Spaghetti" Howell
 on Monday, December 22, 2008 @ 07:09

> The biggest testcase there is.
Not just for Qt, either. How about nVidia?



© 2008 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners.