Skip to content

David Faure 

unique_ptr difference between libstdc++ and libc++ crashes your application

Saturday, 20 February 2021
Thanks to the KDE FreeBSD CI, which runs our code on top of libc++, we discovered an interesting difference between libstdc++ and libc++'s implementation of unique_ptr. This is quite unexpected, and the actual result for users is even more unexpected: it can lead to crashes in specific situations. This happens when a widget -- using unique_ptr for its d pointer, as is customary these days -- installs an event filter. That event filter will be triggered during destruction of child widgets (at least for the QEvent::Destroy event, I've also seen it with QEvent::Leave events for instance). And, depending on how the event filter is written, it might use the d pointer of the widget, possibly before checking the event type. That's where it gets interesting: the libc++ implementation of unique_ptr sets it to null before calling the destructor (because it's implemented in terms of reset(nullptr);. In libstdc++ however, unique_ptr's destructor just calls the destructor, its value remains valid during destruction. Read More

News from KDE PIM in July/August 2019

Wednesday, 11 September 2019
Following Volker's last blog on this topic, here are some highlights of the recent work that has been done around Kontact / PIM during this summer. First of all, stats: there were around 1200 commits in the past two months, leading to the new 19.08 release. Read More

2019 Toulouse PIM sprint report

Wednesday, 17 April 2019
Like every year, a number of KDE PIM developers met in Toulouse for a bit of bugfixing. Discussions and decisions There were a number of those, the most important ones being about food, of course. Among the topics of lesser importance: turning some PIM libraries into KF5 frameworks (that's just their way to dump more work on me, clearly... but it also means a lot of cleanup work for Volker, first), outreach to the Plasma Mobile PIM team, how to increase the number of attendees for this kind of sprint, how to make it easier to start contributing to KDE PIM, how to blog more often about progress. Read More

LibreOffice doesn't start if QT_NO_GLIB is set

Thursday, 2 August 2018
That was a surprising find. Libreoffice wouldn't start anymore (just some splash screen with a progressbar, then nothing happens). After some debugging (comparing my normal zsh session where it wouldn't start, with a clean sudo -u dfaure bash session where it worked), I found the culprit. I had QT_NO_GLIB=1 in my environment for some reason, and that's what breaks libreoffice... Read More

2018 Toulouse PIM sprint report

Tuesday, 24 July 2018
Like every year, the PIM developers met in Toulouse for a bit of bugfixing ;) Except for Dan Vratil, we forgot to blog about it, here's a belated blog post with what we did there. Read More

Upgrading to OpenSUSE Leap 15.0

Saturday, 21 July 2018
Upgrading from Leap 42.3 to Leap 15.0... How hard can it be? Well, there was a bit of fighting necessary. One fight due to an encrypted root partition, another one due to NVIDIA and libGL. Read More

Running applications and unittests without "make install"

Tuesday, 15 August 2017
In our Akademy presentation, Kévin and I showed the importance for a better developer story to be able to work on a KDE module without having to install it. Running unittests and running applications without installing the module at all is possible, it turns out, it just needs a bit of effort to set things up correctly. Read More

Icon theme deployment on Windows, Mac OS and mobile platforms

Thursday, 16 June 2016
During the Randa meeting I implemented some magic in KIconThemes to generalize a design initially made by Christoph Cullmann for Kate. On platforms other than Linux/BSD, icon themes are not available as part of the system, and installing 6235 files takes forever. The deployment strategy for applications on those operations systems is now the following: Read More

Unlocking wallet during startup

Friday, 3 June 2016
While setting up plasma5 I found a solution for something that had been bothering me forever. Basically, while session management is restoring all windows, the wallet isn't open yet, so if the wallet is needed to get online (wifi password), all the apps being restored (in my case, about 20 konqueror windows) have no networking yet and just show error pages. I had to be there during startup and type fast to unlock the wallet before the apps needed it. Read More

Compiling all of Qt5, KF5, Plasma5, kdepim5, apps...

Monday, 16 May 2016
I see a very high value in compiling my own Qt, and on top of it all the KDE-made software that I use. This makes it very easy to fix bugs and add improvements to the software I use on a day to day basis. Nowadays I think many developers use distro packages for Qt or KF5 or even the whole environment except for the one app they're working on, but in my opinion this leads to "silo" thinking, with workarounds in upper layers rather than fixing issues at the right place. Read More

Installing OpenSUSE on Thinkpad P50

Tuesday, 3 May 2016
The Lenovo Thinkpad P50 is quite a nifty laptop. However installing Linux required some digging around, so I'm writing this up for others to stumble upon it when looking for answers to similar issues. Read More

Konqueror is looking for a maintainer

Saturday, 16 August 2014
For quite some time now (OK, many years...) I haven't had time for Konqueror. KDE Frameworks 5 and Qt 5 have kept me quite busy. It's time to face the facts: Konqueror needs a new maintainer. Read More

Compiling *all* of KDE SC from svn/git

Tuesday, 18 June 2013
On my desktop machine, I have always tried to compile "everything". At a time it was easy: about 18 SVN modules listed in kdesvn-buildrc, trunk for everything, done. Nowadays there are many more git modules - I currently compile 234 modules, with the help of kdesrc-buildrc (I don't have to list all 234 modules, it expands them for me). Still it's a bit difficult to ensure I really have everything... Read More

KArchive standalone release for Qt4

Thursday, 29 November 2012
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. Read More

Updating a git checkout - finally as easy as with svn

Friday, 19 October 2012
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". Read More

kdepim-4.4 with kolab (problem and solution)

Friday, 5 October 2012
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. No akonadi needed for kmail in that version, but it existed already, for the address book. And due to that, a nasty bug happens at almost every start of kontact: the "starting akonadi" progressbar stays on top of kontact forever, even though everything else indicates that akonadi started properly. I have no idea what causes it, it's obviously been fixed since, but since it actually prevents new emails from coming in (!? makes no sense, since emails are unrelated to akonadi in that version), just ignoring the progressbar isn't an option. Read More

A very productive KDEPIM meeting in Osnabrück

Monday, 13 February 2012
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: Read More

Linux (and Windows) on a new HP Pavilion laptop

Saturday, 11 June 2011
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). Read More

config.h is evil

Monday, 6 June 2011
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). Read More

Unittests, now with automatic upload of results

Friday, 19 November 2010
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 http://my.cdash.org. Just add the line "run-tests upload" in your module definition for kdelibs, and others if wanted. Read More

kdelibs unit tests: all green!

Thursday, 21 October 2010
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)! Read More

Mimetypes are out of ksycoca

Friday, 23 July 2010
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. Read More

No print preview available, due to "libpoppler-qt4.so: undefined reference to qBadAlloc"

Wednesday, 31 March 2010
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/libpoppler-qt4.so was compiled against a Qt with exceptions enabled, and your own Qt (e.g. from kde-qt git) was compiled with -no-exceptions. The solution: recompile Qt with exceptions, or download and recompile libpoppler against your own Qt. Putting this up here so that people googling for the error can find it :) Read More

Burkhard Lück revives KDE documentation efforts

Tuesday, 1 December 2009
I just have to say it, I'm thoroughly impressed by Burkhard Lück's determination to improve the user-documentation of KDE applications (particularly the kdebase ones). This is much needed, a huge undertaking, and probably also not very rewarding work. This being said, I'm sure he would appreciate some help -- if you can speak English (you can, otherwise you wouldn't be reading this) and want to contribute to the KDE documentation, subscribe to the kde-doc-english mailing-list :) Read More

Showing the git branch in the zsh prompt

Tuesday, 18 August 2009
One big risk with git is forgetting which branch you're working in. Several people solve that by putting the git branch in their shell prompt. But often they do that by calling git branch and parsing its output, which is quite slow, especially in big repositories (we strace'd it, and it really opens and reads a lot of files). Read More

More productivity tips

Thursday, 9 July 2009
I learned a number of useful productivity tips during this akademy, so as the self-appointed guy-who-shares-productivity-tips-with-the-rest-of-kde, I thought I would share them here :-) Read more below for yokadi, ack-grep, autojump, and cgdb. Read More

Kubuntu Jaunty (xorg 1.6) doesn't like ATI Radeon cards

Saturday, 25 April 2009
Hearing that kubuntu jaunty was out, I upgraded two machines today. My wife's machine, so she can finally use KDE 4.2, and my own desktop machine. On her machine, NVidia card, no problem at all. On my machine, ATI Radeon X1300, after the upgrade, X would always just show some red dots on the top of the screen, and then the machine would hang (no keyboard, no ssh, nothing except reboot). I tried every possible driver in xorg.conf, no difference. So this isn't a driver problem, but an Xorg problem. Other people on #kubuntu (e.g. "chx") reported the same issue. Read More

Setting things up to get core dumps

Friday, 27 March 2009
Drkonqi is nice and friendly, but some apps (e.g. kded or krunner) have a crash handler so that they restart instead of annoying the user with crash dialogs. As developers, we want to see backtraces of crashes in all cases; and to be in gdb in order to be able to print variables etc. Solution: asking for core dumps. That part is easy: Read More

10 times faster deleting a directory (different use case)

Wednesday, 18 February 2009
Yes, very much like my previous blog post some time ago, but for a slightly different use case. Last time it was about deleting 10000 files viewed in dolphin/konqueror, using "select all", while this time it's about selecting ONE directory and deleting it - the recursive listing involving multiple ioslaves took far too much time. This became the highest-voted bug assigned to me - bug 174144 - so it's fixed now. kio_file implements recursive deletion itself using QDirIterator, and announces this capability (a mechanism that was already in place for kio_trash). Result: from 20 seconds to 2 seconds for deleting 5000 subdirs. Well, that's it. Tell me if that was boring, I'll stop blogging :-) Read More

svn.kde.org down temporarily

Friday, 10 October 2008
Another few hours until it comes back, apparently. You can read more details about it at http://news.opensuse.org/2008/10/10/power-outage-in-area-where-most-opensuse-servers-are-located

32 times faster deleting your home directory

Thursday, 18 September 2008
Yes, KDE-4.2 will be 32 times faster deleting a large number of files compared to KDE-4.1! I was looking at the highest-voted bugs last Monday (yes, voting is useful in bugzilla, some people weren't sure about that), and bug 43356 (260 votes) was about konqueror taking too much time deleting a large number of files (in kde-3.0, but still true in 4.1). Read More

Freedesktop share-mime-info in KDE

Sunday, 4 March 2007
I started a few weeks ago to port the mimetype support in KDE to the "share mime info" standard from freedesktop.org (http://standards.freedesktop.org/shared-mime-info-spec/latest). There are a number of reasons for doing that: Read More

Installed Kubuntu on AMD Athlon 64 Dual Core

Wednesday, 3 May 2006
Since my previous machine heated too much and crashed all the time, my employer (KDAB) got me a new HP Pavillion t3350 machine, with a dual-core Athlon 64 X2 (M) 3800+ 2.0 GHz CPU - very nice :) Read More