Other in KDE-PIM
Port libkleo from using event-loop integrated gpgme (which never was a problem on Unix, but is, on Windows, cf. "gpgme-qt"), to using multi-threaded gpgme. Consequently, link qgpgme against gpgme (vanilla) on Windows, instead of gpgme-qt.
I've given it some smoke testing, and it appears to work (famous last words).
There's two known issues:
- The libkleo-provided passphrase dialog is no longer available (straight-forward porting would have that called in non-GUI threads)
There's not much we can do about it at this point, but gpg-agent should be virtually ubiquous now, so it's much less an issue than 4 years ago, when we implemented that.
- gpgme_cancel isn't yet thread-safe.
Either it is made thread-safe before 1.1.7 is out, or we will implement our own cancelation mechanism based on progress callbacks (which act as keep-alive pings from the backend, and provide safe cancelation points from client code.
We're in contact with the gpgme maintainers to resolve this.
For the time being, don't cancel your crypto operations :)