Home GnuPG

Clean up the use of gpgme:

Description

(no title)

Clean up the use of gpgme:

  • On Windows, the only way to determine the state of a pipe is to read or write from it. This is a problem, since QSocketNotifier doesn't work on pipes. Therefore, gpgme needs to be adapted to each event loop sepearately, much like on Unix, it needs to be adapted to each threading library separately. This has been done for the glib event loop, but Qt doesn't use that one on Windows, so there needs to be a gpgme-qt (not to be confused with qgpgme) that uses QIODevices instead of int-fd's, much like gpgme-glib uses GIOChannels.

    The changes to gpgme++ incorporate support for these integration mechanisms even though gpgme-qt is still in the works (but it _is_ in the works), and and build the same three flavours of gpgme++ that gpgme is built in.
  • On Unix, gpgme also comes in three flavours: single-threaded, posix-threaded and GNU pth-threaded. We also build three gpgme++ for each of these flavours now.
  • Traditionally, of of KDEPIM used vanilla gpgme, but since Qt uses Posix Threads, we're just crippling the user of qgpgme by not using gpgme-pthread. Likewise, on Windows, for the Qt Event Loop integration to work, we _must_ link to gpgme-qt, once it's out. Therefore, using qgpgme pins down the flavour of gpgme to a single one on each platform (and they're not the same as the one we used so far).
  • The rest of the patch is 'just' dealing with the odds and ends to make this work. GPGME is now as required on Windows as it is on Unix. That's because there _is_ a GPGME on Windows, get it e.g. from www.gnu4win.org in precompiled form. Granted, gpgme-qt is still missing, but it should materialize in one of the next gpgme revisions, and without it, KMail has no chance to work anyway. But feel free to remove the REQUIRED again, all the dependant code seems to deal with the absense of gpgme.

svn path=/trunk/KDE/kdepimlibs/; revision=705226

Details

Provenance
marcAuthored on Aug 27 2007, 4:08 PM
Parents
rGPGMEPPafa8c47e4e9e: HAVE_GPGME_SIG_NOTATION_CLEARADDGET implies HAVE_GPGME_SIG_NOTATION_FLAGS_T…
Branches
Unknown
Tags
Unknown