KMail, Akonadi and MariaDB on ArchLinux

ArchLinux recently switched to MariaDB. After the complete system update, followed by the usual full recompile of Qt4 and KDE4, my KMail2 setup became unstable. While reading mails was still possible, I experienced lags when switching from one folder to another (“please wait while retrieving message contents”) and, more problematic, sending mails worked very randomly.  I used the akonadi server configuration tool and it’s “test” feature to check my setup and then, surprise, I got errors with my database. OK, I thought, it’s time now to restart with a fresh home directory, as mine has several years, and configuration from previous setups was left, along my switch to ArchLinux then to custom compiled KDE4.

But with the new, fresh home directory, the “test” function still showed errors:

130605 0:10:50 InnoDB: The InnoDB memory heap is disabled
130605 0:10:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130605 0:10:50 InnoDB: Compressed tables use zlib 1.2.7
130605 0:10:50 InnoDB: Initializing buffer pool, size = 80.0M
130605 0:10:50 InnoDB: Completed initialization of buffer pool
130605 0:10:50 InnoDB: highest supported file format is Barracuda.
130605 0:10:50 InnoDB: Waiting for the background threads to start
130605 0:10:51 Percona XtraDB (http://www.percona.com) 5.5.30-MariaDB-30.1 started; log sequence number 2612486
130605 0:10:51 [Warning] Can't open and lock time zone table: Table 'mysql.time_zone_leap_second' doesn't exist trying to live without them
130605 0:10:51 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_current' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_history' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_history_long' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'setup_consumers' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'setup_instruments' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'setup_timers' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'performance_timers' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'threads' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_thread_by_event_name' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_instance' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'events_waits_summary_global_by_event_name' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'file_summary_by_event_name' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'file_summary_by_instance' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'mutex_instances' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'rwlock_instances' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'cond_instances' has the wrong structure
130605 0:10:51 [ERROR] Native table 'performance_schema'.'file_instances' has the wrong structure
130605 0:10:51 [Note] /usr/bin/mysqld: ready for connections.
Version: '5.5.30-MariaDB' socket: '/home/valentin/.local/share/akonadi/socket-zx.rusu.info/mysql.socket' port: 0 Source distribution

The problem was solved by switching to the external MySQL (more precisely, it’s MariaDB) server I happen to run on the same system. I created a new “akonadi” database, granted full rights to a dedicated “akonadi” user. I also cleared the “options” field, that for an obscure reason specifies a socket connection and now I’m back to a stable configuration after starting the akonadi server.

Oh, I also needed to do the following adjustments:

  • Remove then recreate the local folders, as my previous configuration stored mails in a KMail folder
    • In fact, KMail forced me to do that, as it crashed after the switch to the new database with these errors
kontact(17733)/libakonadi Akonadi::SpecialCollectionsRequestJob::slotResult: Failed SpecialCollectionsRequestJob::slotResult "Failed to fetch the resource collection." 
kontact(17733) MailCommon::Kernel::emergencyExit: "The Email program encountered a fatal error and will terminate now.
The error was:
Failed to fetch the resource collection."
  • Remove then recreate the “mail dispatcher agent” in akonadi console
  • Reconfigure the folders
    • Now, all my old messages are shown as unread, but that’s not really a problem
  • Reconfigure mail filters
    • That’s because removing the local folders left the rules without target folders
  • Reconfigure folder expiration rules

A final word about the performance of KMail. It seems to me that it’s now a lot more responsive. The application is now really fast displaying my mails, be it on my IMAP server or into the local folders. Congrats to the PIM team!

 

Facelifting KWalletManager

As I previously announced on G+, I started some ui refactoring of the KWalletManager tool from kdeutils. This triggered some very helpful comments and suggestions, discussed on the kde-core-devel mailing list. I now proudly announce that the code made it to the master branch, so next time you’ll compile kwallet you’ll get the new, face-lifted, KWalletManager!

Main features are:

  • Use only one main window, based on the KPageWidget
  • Search logic has been improved and now the first item that matches automatically get selected, to help reduce the click count
  • The wallet editor got a new tab that allow you see what applications are currently connected, manage these connections and the associated permissions

Many thanks to Aurélien Gateau for the new design sketches, Till Schäfer for some very helpful suggestions and all the others who discussed this on the mailing list.

Here are the screenshots:

kwalletmanager-walleteditor kwalletmanager-applications

 

Enjoy the new KWalletManager!

Qui a dit que C++ était pour les anciens ?

Jeudi aura lieu la convention global C++ – voir ce lien, par exemple. Sur ce billet, nous aurons la surprise de voir que la moitié des inscrits ont moins de 30 ans et que le plus jeune inscrit n’a que 15 ans ! Cela dit, les nouveautés du nouveau standard C++11 mettent Java et C# dans la confusion, voir l’inutilité (mais c’est bien-sûr mon avis). En tout état de cause, le sentiment que j’avais à l’époque où je me suis tourné vers ces deux derniers langages, d’avoir abandonné quelques chose sans retrouver mieux, est entièrement confirmé par ce nouveau standard. A suivre…

Bientôt une tablette entièrement basée sur Linux / Plasma KDE

L’un des principaux contributeurs de la communauté KDE, jusqu’ici sponsorisé par Nokia/Qt, vient d’annoncer une toute nouvelle tablette, basée sur GNU Linux et plus précisément sur le projet Mer, le successeur de Meego.

Un premier post présente le matériel, puis un deuxième post présente plus en détail la partie logicielle.

Ces deux annonces ont été précédés par 4 autres billets, dans une tentative de monter le suspense parmi ceux qui le suivent. Tout ça parce que nous assistons à un tournant dans la communauté Qt/KDE, depuis que Nokia a décidé de passer le flambeau de la maintenance de Qt à la communauté. Dans la foulée, Aaron a du se construire un nouveau départ et j’espère qu’il aura tout son succès. En tout cas, moi j’achèterai sa nouvelle tablette, quand elle sortira !

Posted in KDE

Watson

Watson, the revolutionary answering machine from IBM that beat a human in TV show Jeopardy! is build on SuSE Linux and uses lots of free software. Take a look to the keynote below. Starting from minute 10:00 a general presentation of Watson starts, then later on Grady Booch describes the architecture of the system.
It’s also described on wikipedia.

ibmrational on livestream.com. Broadcast Live Free

List DBus installed services

If, like me, you’re wondering if the shining new DBus service you written is correctly recognized by the DBus daemon, then issue this command:

> qdbus org.freedesktop.DBus / ListActivatableNames

You’ll get an output like this one:

org.freedesktop.DBus
org.freedesktop.Notifications
org.kde.fontinst
org.gnome.GConf
org.freedesktop.Akonadi.Control
org.gtk.vfs.Metadata
vandenoever.strigi
org.kde.kuiserver
org.gtk.Private.AfcVolumeMonitor
org.gnome.GnomeVFS.Daemon
org.kde.knotify
org.gtk.vfs.Daemon
org.freedesktop.xesam.searcher
org.openobex
org.freedesktop.secrets
org.gtk.Private.GduVolumeMonitor
org.gtk.Private.GPhoto2VolumeMonitor
ca.desrt.dconf
org.kde.krunner

All these names come from the .service files installed on your system and recognized by the dbus-daemon.

git cherry-pick : la cerise sur le gateau

Le nouveau système de gestion des versions créé par Linus n’a plus besoin d’être présenté. Il est très pratique et cela se voit dans sa vitesse d’adoption. Mais la petite commande “cherry-pick” me fait réagir. C’est trop pratique ! Elle permet de reporter un jeu de modifications d’une branche vers une autre sans passer par la case “checkout de la branche cible + fusion”. Cette commande est tellement puissante qu’il est plus long de la décrire que de la mettre à l’oeuvre. Voir l’article (en anglais) que j’ai écrit sur la techbase KDE.

Release party KDE 4.6 à Toulouse

La version 4.6 du bureau KDE va arriver le 26 janvier. Avec elle beaucoup de nouveautés et améliorations. Chaque nouvelle version est présentée par la communauté aux utilisateurs lors des « Release Parties » organisées un peu partout dans le monde. Pour mémoire et exemple, la distribution Linux KUbuntu utilise KDE en tant qu’environnement graphique par défaut.

L’association Toulibre de Toulouse est l’organisatrice de la « Release Party » en France le 18 et le 19 mars et va accueillir quelques membres de choix qui feront des présentations et des démonstrations. Tout le monde est le bienvenu lors de cet évènement. L’association est également à la recherche d’un sponsor pour couvrir une partie des frais – principalement des frais de déplacement (mais pas d’hébergement) des conférenciers et les « goodies ».

Voici le programme :

  • La soirée du vendredi 18 Mars sera consacrée à la découverte de l’environnement Plasma Desktop et d’autres applications produites par la communauté KDE dans leur dernière version et les nouveautés qu’elles apportent,
  • Le samedi 19 Mars dans l’après-midi, des cycles de conférences s’adressant à plusieurs catégories de public (utilisateurs et contributeurs/développeurs) seront tenus en parallèle par diverses personnalités phare de la communauté KDE.

La soirée d’accueil du 18 se déroulera dans un amphithéâtre du centre culturel Bellegarde, et sera accompagnée d’un cocktail et d’une distribution de merchandising pour les participants.

La journée du 19, un étage du centre sera réservé pour le déroulement de l’évènement, permettant ainsi la tenue de plusieurs lignes de conférences en parallèle.