summaryrefslogtreecommitdiffstats
path: root/libtdenetwork/gpgmepp/README.gpgme++
diff options
context:
space:
mode:
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.