Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 407709 - kde-base/kmail-4.8.1 crashes trying to edit subject/message body with some dictionary languages set in identity properties
Summary: kde-base/kmail-4.8.1 crashes trying to edit subject/message body with some di...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard: Fixed in 4.8.2
Keywords:
Depends on:
Blocks: kde-4.8.1-stable
  Show dependency tree
 
Reported: 2012-03-10 19:01 UTC by Matt Whitlock
Modified: 2012-03-23 09:07 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch to avoid segfault by unconditionally initializing rehighlightRequest timer (sonnet-highlighter-rehighlightRequest.patch,928 bytes, patch)
2012-03-15 00:41 UTC, Matt Whitlock
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Whitlock 2012-03-10 19:01:53 UTC
After installing kde-base/kmail-4.8.1 and rebooting (not necessary, but I wanted to be absolutely sure), KMail's "About" dialog says "Version 4.8.0, Using KDE Development Platform 4.8.1 (4.8.1)." Is it possible that the wrong version of KMail was built?

If so, this may explain the crash I get whenever I press any key while input focus is in a composer window's body text field. (The crash is 100% reproducible and renders KMail 4.8.1 useless for composing email.) I have filed a bug report on the crash at <https://bugs.kde.org/show_bug.cgi?id=295703>, but it may be occurring due to the version mismatch.
Comment 1 Franz Trischberger 2012-03-11 10:13:17 UTC
It is building the correct version:

open kdepim--4.8.1/CMakeLists.txt
line 127:
set(KDEPIM_VERSION "4.8.0")
KDEPIM_VERSION is used for kmail-version, too (as far as i can see).

For me, this bug does not occur. It seems to happen when doing event-filtering (hitting sonnet::highlighter). Qt-Styles often do this for special purposes. Which Style do you use?
It also would be good to know your qt-version, and of course emerge --info is missing.
Comment 2 Matt Whitlock 2012-03-11 16:52:30 UTC
(In reply to comment #1)
> For me, this bug does not occur. It seems to happen when doing
> event-filtering (hitting sonnet::highlighter). Qt-Styles often do this for
> special purposes. Which Style do you use?
> It also would be good to know your qt-version, and of course emerge --info
> is missing.

I use the default (Oxygen) style.


# emerge --info
Portage 2.2.0_alpha90 (default/linux/amd64/10.0/no-multilib, gcc-4.5.3, glibc-2.14.1-r2, 3.2.1-gentoo-r2 x86_64)
=================================================================
System uname: Linux-3.2.1-gentoo-r2-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.1
Timestamp of tree: Sat, 10 Mar 2012 18:30:01 +0000
app-shells/bash:          4.2_p20
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.2.2
dev-util/cmake:           2.8.7-r5
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          0.9.9.2
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.11.3
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.5.1
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.2-r1 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r2
Repositories: gentoo local java-overlay sunrise vmware lcd-filtering bitcoin kde
Installed sets: 
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O3 -ggdb -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dbus-1 /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O3 -ggdb -pipe"
DISTDIR="/usr/local/portage/distfiles"
FEATURES="assume-digests binpkg-logs candy distlocks ebuild-locks fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS=" ftp://mirror.datapipe.net/gentoo/ http://mirrors.rit.edu/gentoo/ http://mirror.lug.udel.edu/pub/gentoo/ http://mirror.the-best-hosting.net/ http://chi-10g-1-mirror.fastsoft.net/pub/linux/gentoo/gentoo-distfiles/ "
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_US en"
MAKEOPTS="-j5"
PKGDIR="/usr/local/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/overlay /var/lib/layman/java-overlay /var/lib/layman/sunrise /var/lib/layman/vmware /var/lib/layman/lcd-filtering /var/lib/layman/bitcoin /var/lib/layman/kde"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 amr berkdb bzip2 cairo cdparanoia cli consolekit cracklib crypt cups curl cxx dbus dri dvd dvdr dvdread encode exif fam ffmpeg flac gdbm geoip gif git gstreamer gtk iconv ipv6 java java5 java6 jpeg kde lame lirc lzma mad matroska mjpeg mmx mmxext mng modules mp3 mpeg mudflap mysql ncurses nptl nptlonly nsplugin ogg opengl openmp pcre pdf phonon php png ppds pppd qt4 quicktime rdesktop readline sdl semantic-desktop session smp spell sse sse2 sse3 ssl ssse3 startup-notification subversion svg sysfs taglib theora threads tiff truetype unicode usb vnc vorbis webkit x264 xcb xcomposite xml xorg xv xvid yahoo zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US en" LIRC_DEVICES="mceusb" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


# equery list 'qt*'
 * Searching for qt* ...
[IP-] [  ] x11-libs/qt-core-4.8.0-r1:4
[IP-] [  ] x11-libs/qt-dbus-4.8.0:4
[IP-] [  ] x11-libs/qt-declarative-4.8.0-r1:4
[IP-] [  ] x11-libs/qt-gui-4.8.0-r2:4
[IP-] [  ] x11-libs/qt-multimedia-4.8.0:4
[IP-] [  ] x11-libs/qt-opengl-4.8.0-r2:4
[IP-] [  ] x11-libs/qt-qt3support-4.8.0-r1:4
[IP-] [  ] x11-libs/qt-script-4.8.0:4
[IP-] [  ] x11-libs/qt-sql-4.8.0-r1:4
[IP-] [  ] x11-libs/qt-svg-4.8.0:4
[IP-] [  ] x11-libs/qt-test-4.8.0:4
[I--] [??] x11-libs/qt-webkit-4.8.0:4
[IP-] [  ] x11-libs/qt-xmlpatterns-4.8.0-r1:4
[IP-] [  ] x11-libs/qtscriptgenerator-0.1.0-r2:0
Comment 3 Franz Trischberger 2012-03-12 08:18:30 UTC
I tried with Oxygen, and it did not happen (would have wondered).
The backtrace posted at bugs.kde.org is not complete. The last 6 calls (#0-#5) are not listed.
Could you try to do it manually?
Run

gdb kmail
(gdb) run
<make kmail crash>
(gdb) bt <enter enter ..., until you get the (gdb)-prompt, again>

Then post the (hopefully complete) backtrace.
Comment 4 Matt Whitlock 2012-03-12 15:20:06 UTC
(In reply to comment #3)
> Could you try to do it manually?

Sure. Thanks for the instructions. I'll have no problem doing that.

I won't be able to do it until tomorrow, though.
Comment 5 Matt Whitlock 2012-03-13 20:59:25 UTC
I think the "missing" six stack frames belong to the KDE crash handler and are automatically scrubbed from Dr. Konqi's crash report.

Shown below is what I got when I started KMail using --nocrashhandler and attached to it using GDB. (Starting it directly from GDB doesn't work because it apparently launches a child process and exits immediately.)


Program received signal SIGSEGV, Segmentation fault.
0x00007f41cae07a53 in Sonnet::Highlighter::eventFilter (this=0x2cf0760, o=0x202edc0, e=0x7fff25f154c0)
    at /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp:355
355     /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp: No such file or directory.
(gdb) bt
#0  0x00007f41cae07a53 in Sonnet::Highlighter::eventFilter (this=0x2cf0760, o=0x202edc0, e=0x7fff25f154c0)
    at /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp:355
#1  0x00007f41c8f72936 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x202edc0, 
    event=0x7fff25f154c0) at kernel/qcoreapplication.cpp:986
#2  0x00007f41c94a31f1 in QApplicationPrivate::notify_helper (this=0x1c30020, receiver=0x202edc0, e=0x7fff25f154c0)
    at kernel/qapplication.cpp:4546
#3  0x00007f41c94a8697 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fff25f154c0)
    at kernel/qapplication.cpp:3991
#4  0x00007f41cad99716 in KApplication::notify (this=0x7fff25f164c0, receiver=0x202edc0, event=0x7fff25f154c0)
    at /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/kernel/kapplication.cpp:311
#5  0x00007f41c8f727bb in QCoreApplication::notifyInternal (this=0x7fff25f164c0, receiver=0x202edc0, event=0x7fff25f154c0)
    at kernel/qcoreapplication.cpp:876
#6  0x00007f41c95444ca in QKeyMapper::sendKeyEvent (keyWidget=0x202edc0, grab=<optimized out>, type=QEvent::KeyPress, 
    code=16777248, modifiers=..., text=..., autorepeat=false, count=1, nativeScanCode=50, nativeVirtualKey=65505, 
    nativeModifiers=16) at kernel/qkeymapper_x11.cpp:1866
#7  0x00007f41c954491f in QKeyMapperPrivate::translateKeyEvent (this=<optimized out>, keyWidget=0x202edc0, 
    event=<optimized out>, grab=false) at kernel/qkeymapper_x11.cpp:1836
#8  0x00007f41c9520e43 in QApplication::x11ProcessEvent (this=0x7fff25f164c0, event=0x7fff25f16070)
    at kernel/qapplication_x11.cpp:3513
#9  0x00007f41c9548972 in x11EventSourceDispatch (s=0x1c32e00, callback=0, user_data=0x0)
    at kernel/qguieventdispatcher_glib.cpp:146
#10 0x00007f41c0a794f5 in g_main_dispatch (context=0x1c328a0) at gmain.c:2441
#11 g_main_context_dispatch (context=0x1c328a0) at gmain.c:3011
#12 0x00007f41c0a79e38 in g_main_context_iterate (context=0x1c328a0, block=1, dispatch=1, self=<optimized out>)
    at gmain.c:3089
#13 0x00007f41c0a7a021 in g_main_context_iteration (context=0x1c328a0, may_block=1) at gmain.c:3152
#14 0x00007f41c8fa18ff in QEventDispatcherGlib::processEvents (this=0x1bd4ad0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:424
#15 0x00007f41c954861e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...)
    at kernel/qguieventdispatcher_glib.cpp:204
#16 0x00007f41c8f717e2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#17 0x00007f41c8f71a95 in QEventLoop::exec (this=0x7fff25f16390, flags=...) at kernel/qeventloop.cpp:204
#18 0x00007f41c8f7621b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#19 0x00000000004033ae in main (argc=<optimized out>, argv=<optimized out>)
    at /var/tmp/portage/kde-base/kmail-4.8.1/work/kmail-4.8.1/kmail/main.cpp:145
Comment 6 Franz Trischberger 2012-03-14 07:58:31 UTC
Could you post the content of your sonnetrc, and if you have a group [Spelling] inside your kmailrc, this would be interesting, too. Both config files can be found in ~/.kde4/share/config.
Do you have kdelibs built with USE="spell" enabled? (I think so)
Which USE-Flags are enabled for app-text/enchant? Which for hunspell/aspell (enabled by enchant)


Line 355 in highlighter.cpp contains this line:
if (d->rehighlightRequest->isActive())
as "d" lives as long as the Highlighter-object lives, the only possible error could be the rehighlightRequest - pointer to an instance of QTimer.
If you look into the constructor of Highlighter, the rehighlightRequest is instantiated quite at the end (highlighter.cpp:124). Before that instantiation, there is this check in line 111:
    if(!d->spellCheckerFound)
        return;
So, I think your highlighter can't find a SpellChecker, so the constructor returns, leaving rehighlightRequest uninitialised, resulting in this SegFault.
Comment 7 Franz Trischberger 2012-03-14 09:49:11 UTC
You could try to proove my assumption :)
attach to the process (as before), then add a breakpoint. That's quite easy:
(gdb) break Sonn<tab>
completion should work quite nice.
Complete to "Sonnet::Highlighter::eventFilter(QObject*, QEvent*)

(gdb) continue <enter>

press a key, so the eventFilter gets executed, breakpoint reached.
Now you can inspect the values of the current scope.

(gdb) print d
<should give you value, type, ... of "d">
(gdb) print d->spellCheckerFound

(gdb) print d->rehighlightRequest

Could you post the output? Thx :)
Comment 8 Matt Whitlock 2012-03-14 16:58:40 UTC
(In reply to comment #7)
> You could try to proove my assumption :)
> attach to the process (as before), then add a breakpoint.

The breakpoint is too greedy. It fires for the window focus-in event and mouse events, too.

But when I get the segfault, that does stop the program, and I can print the expressions you wanted:

Program received signal SIGSEGV, Segmentation fault.
0x00007f373e154a53 in Sonnet::Highlighter::eventFilter (this=0x2a7f860, o=0x282f5b0, e=0x7fffa5161280)
    at /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp:355
355     in /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp
(gdb) print d
$1 = (Sonnet::Highlighter::Private * const) 0x3095b20
(gdb) print d->spellCheckerFound
$2 = true
(gdb) print d->rehighlightRequest
$3 = (QTimer *) 0x65

0x65 is unlikely to be a valid pointer, so it's not surprising that dereferencing it causes a segfault.
Comment 9 Franz Trischberger 2012-03-14 19:51:01 UTC
So, who is writing 0x65 to the pointer? You have a debug build, there pointers are initialized to zero. 0x65 is quite sure no valid address in the HEAP. HEAP-Corruption? But where? :/
You could add a watchpoint to Sonnet::Highlighter::Private::rehighlightRequest, but AFAIK that should only get triggerd, when code assigns a value to that variable, not when code overwrites the memory "by accident" :/ But it's worth a try...

As it's reproducable, I think we can say it is NOT a hardware problem (bad RAM or so).
Comment 10 Matt Whitlock 2012-03-14 23:25:36 UTC
(In reply to comment #9)
> So, who is writing 0x65 to the pointer? You have a debug build, there
> pointers are initialized to zero. 0x65 is quite sure no valid address in the
> HEAP. HEAP-Corruption? But where? :/

I don't have a debug build.  I have an -O3 build with -ggdb.  I could rebuild kdelibs, kdepimlibs, and kmail with the "debug" USE flag enabled if that would be helpful in finding the origin of this errant pointer value.

> You could add a watchpoint to
> Sonnet::Highlighter::Private::rehighlightRequest, but AFAIK that should only
> get triggerd, when code assigns a value to that variable, not when code
> overwrites the memory "by accident" :/ But it's worth a try...

I'll give it a shot.

> As it's reproducable, I think we can say it is NOT a hardware problem (bad
> RAM or so).

Very unlikely. I've been using this same RAM for years, and it passes Memtest86. Also, I see no other random crashes, hangs, or erratic behavior.
Comment 11 Matt Whitlock 2012-03-15 00:01:25 UTC
(In reply to comment #6)
> So, I think your highlighter can't find a SpellChecker, so the constructor
> returns, leaving rehighlightRequest uninitialised, resulting in this
> SegFault.

I think your hypothesis is correct.


(gdb) break Sonnet::Highlighter::Highlighter(QTextEdit*, QString const&, QColor const&) 
Breakpoint 1 at 0x7f2d766b0420: file /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp, line 76.
(gdb) continue
Continuing.

Breakpoint 1, Sonnet::Highlighter::Highlighter (this=0x10a0d00, textEdit=0xf4aef0, configFile=..., _col=...)
    at /var/tmp/portage/kde-base/kdelibs-4.8.1/work/kdelibs-4.8.1/kdeui/sonnet/highlighter.cpp:76
76      Highlighter::Highlighter(QTextEdit *textEdit,
(gdb) next
80            d(new Private)
(gdb) 
82          d->filter = Filter::defaultFilter();
(gdb) 
83          d->edit = textEdit;
(gdb) 
82          d->filter = Filter::defaultFilter();
(gdb) 
83          d->edit = textEdit;
(gdb) 
448     }
(gdb) 
84          d->active = true;
(gdb) 
85          d->automatic = true;
(gdb) 
86          d->wordCount = 0;
(gdb) 
87          d->errorCount = 0;
(gdb) 
88          d->intraWordEditing = false;
(gdb) 
89          d->completeRehighlightRequired = false;
(gdb) 
90          d->spellColor = _col.isValid() ? _col : Qt::red;
(gdb) 
91          d->suggestionListeners = 0;
(gdb) 
93          textEdit->installEventFilter( this );
(gdb) 
91          d->suggestionListeners = 0;
(gdb) 
93          textEdit->installEventFilter( this );
(gdb) 
94          textEdit->viewport()->installEventFilter( this );
(gdb) 
96          d->loader = Loader::openLoader();
(gdb) 
101         if (!configFile.isEmpty()) {
(gdb) 
102             KConfig conf(configFile);
(gdb) 
103             if (conf.hasGroup("Spelling")) {
(gdb) 
102             KConfig conf(configFile);
(gdb) 
109         d->dict = new Sonnet::Speller();
(gdb) 
110         d->spellCheckerFound = d->dict->isValid();
(gdb) 
111         if(!d->spellCheckerFound)
(gdb) 
110         d->spellCheckerFound = d->dict->isValid();
(gdb) 
111         if(!d->spellCheckerFound)
(gdb) 
131     }

The code never initializes d->rehighlightRequest.
Comment 12 Matt Whitlock 2012-03-15 00:14:39 UTC
I bet d->spellCheckerFound is being set to true in Highlighter::setCurrentLanguage(…). That means the check on line 350 is not sufficient to guard access to d->rehighlightRequest on line 355.

I've moved the initialization of d->rehighlightRequest to before the early bailout of the Highlighter constructor on line 112, so the timer will be constructed regardless of whether the spell checker dictionary was valid.  I'm rebuilding kdelibs with that change now.  If it works, I'll post a patch.
Comment 13 Matt Whitlock 2012-03-15 00:41:17 UTC
Created attachment 305403 [details, diff]
patch to avoid segfault by unconditionally initializing rehighlightRequest timer

This patch solves my problem.
Comment 14 Franz Trischberger 2012-03-15 07:39:11 UTC
Great :)
BTW., there is a bugreport at bugs.kde.org:
https://bugs.kde.org/show_bug.cgi?id=295615
I linked pack to this report, so your patch can be found.
Comment 15 Franz Trischberger 2012-03-15 08:56:32 UTC
I think the patch should completely wipe out the "return" in the constructor. That's just bad practice and will potentially introduce similar bugs in the future. changing "if(!d->spellCheckerFound)" into "if(d->spellCheckerFound)" and packing the rest of the constructor into the if-body will show better, what the code intends to tell. But I am not sure yet about the need of the complete rehighlight, if NO spell checker was found (I think, that is not needed, keeping the relevant Code inside the if-body, but before posting another patch, I will wait for the answer of a responsible kdelibs-developer).
Comment 16 Johannes Huber (RETIRED) gentoo-dev 2012-03-23 09:07:48 UTC
Thanks all, patch added in =kde-base/kdelibs-4.8.1-r2.