diff options
Diffstat (limited to 'libtdenetwork/gpgmepp/README.gpgme++')
-rw-r--r-- | libtdenetwork/gpgmepp/README.gpgme++ | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/libtdenetwork/gpgmepp/README.gpgme++ b/libtdenetwork/gpgmepp/README.gpgme++ new file mode 100644 index 000000000..ecda2c9ac --- /dev/null +++ b/libtdenetwork/gpgmepp/README.gpgme++ @@ -0,0 +1,82 @@ + GpgME++ - C++ bindings/wrapper for gpgme + ------------------------------------ + Version 0.0.1 + + Copyright (c) 2003, 2004 Klarälvdalens Datakonsult AB + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + + + Overview + -------- + + GpgME++ is a C++ wrapper (or C++ bindings) for the GnuPG project's + gpgme (GnuPG Made Easy) library, version 0.4.4 and later. + + It is fairly complete, with some minor things still missing (in + particular, the key edit interface). It is mostly tested using + external event loops, for which its design is optimised. + + The design principles of this library are as follows: + + 1. A value-based interface (most clases are implicitly shared) + 2. Callbacks are replaced by C++ interfaces (classes with only + abstract methods). + 3. No exceptions are thrown + 4. There is (as yet) no explicit support for multi-threaded use + (other than what gpgme itself provides; most notably the + refcounting for implicit sharing is not thread-safe) + 5. To avoid binary incompatible interface changes, we make + extensive use of the d-pointer pattern and avoid virtual + methods; any polymorphism present is already provided by gpgme + itself, anyway (see e.g. Data). A notable exception of the + no-virtuals rule is the use of abstract classes to cover + C-callbacks. + + The authors hope that once there are more users of this library, + the GnuPG project will include it as the official C++ binding for + gpgme. Currently, this is not the case, since it was felt that C++ + bindings can be provided with different design decisions, and that + it is not clear that the decisions made for GpgME++ are broad + enough to be universally applicable (e.g. a pivotal design + decision was to not use exceptions to wrap gpgme_error_t). + + GpgME++ depends on gpgme, which in turn depends on libgpg-error, both + of which must be installed correctly before GpgME++ is to be + built. Furthermore, GpgME++ should be recompiled if the underlying + gpgme is changed. This is to allow closer integration and to + abstract away possible interface changes. Therefore, once this + libray becomes stable, we intend to follow gpgme's versioning. + + Currently, we use the KDE CVS repository to develop our code, + basically because GpgME++ is used in KMail and Kleopatra. However, + the library is in no way dependant on KDE or Qt libraries, and you + are free to use it in your own projects, provided you follow the + license. If you _do_ want to use GpgME++ in Qt/KDE applications, + have a look at QGpgME, which provides integration with QEventLoop + and some Qt datatypes (e.g. QByteArray). + + + Mailing List + ------------ + + Discussion of this library and questions regarding it's use and + design should happen on gpa-dev@gnupg.org or gnupg-devel@gnupg.org. + + + License + ------- + + This library is licensed under the GNU General Public License + (GPL), just as gpgme is. We feel that using a different license + than the one gpgme itself uses doesn't make sense. OTOH, we shall + relicense this library to the GNU Lesser General Public License + (LGPL) should gpgme itself be made available under this license at + any time in the future. |